아이셔팀 백엔드 중간 회고
백엔드를 담당하면서 Spring을 사용하여 프로젝트를 처음으로 직접 만들어보려고 하니 개발파트보다 구성하는데 있어서 시간이 많이 소요되었습니다.
프로젝트의 주제
프로젝트의 주제는 편의점에 있는 다양한 재료들을 조합하여 나만의 조합 레시피를 공유하고 추천받는 서비스입니다.
필요한 요구사항들이 무엇들이 있는지 설계하기 위해서 일단 유스케이스 다이어그램으로 액터에 대한 기능들을 정리해보았습니다.
유스케이스 다이어그램
다음으로는 액터, 권한에 따른 기능들을 수행하기 위해 필요한 테이블에 대해서 ERD 다이어그램으로 작성해보았습니다.
ERD 다이어그램
다음으로는 설계된 ERD 다이어그램에 따른 테이블마다 각 필요한 기능에 대해서 기능을 구현하고, 수행하게 될 API에 대해서 명세서를 작성해보았습니다.
API 명세서
다음으로는 백엔드 파트 개발을 하기 위해 초기세팅 환경설정을 해주었습니다.
개발 환경
파일 구조는 알아보기 쉽고 편리하게 개발하기 위해서 MVC2 패턴을 적용하여 구성하였고,
SQL 인젝션을 방지하기 위해서 JDBC preparedStatement를 편리하게 사용할 수 있는 ORM 기술의 MyBatis를 사용하여 DB 쿼리문서를 작성하였습니다.
API 문서
배포는 도커와 EC2 인스턴스를 사용하여 Spring과 DB 각 이미지를 컨테이너화하여 브릿지 환경의 네트워크를 구축하여 오랜기간 서비스를 보장할 수 있도록 Long time Support 환경인 우분투 리눅스 환경(Ubuntu LTS 20.04.6)에 배포하였습니다.
저희 와플 프로젝트의 API는 현재 배포된 상태이기 때문에 아래 사이트에 접속하여 직접 API를 테스트 해볼 수 있습니다.
Swagger UI (ec2-43-201-12-132.ap-northeast-2.compute.amazonaws.com)
시간이 부족하여 API input값은 제대로 등록해놓지 않았기 때문에
https://documenter.getpostman.com/view/25550859/2s9YknA2n4
Postman 배포 문서를 통해서 자세한 input value에 대해서 확인할 수 있습니다.
추가적으로 작업할 부분
현재 시간이 부족하여 디테일한 서비스에 대해서는 구현을 안한것도 있고, 개인적인 공부를 하면서 JWT를 구현해놓긴 했지만 프로젝트에 직접적으로 옮겨놓진 못했기 때문에 임시로 세션을 사용하여 구현을 해놨습니다.
빌드와 배포를 최소화하기 위하여 CI/CI 자동화 툴인 DevOps -> Jenkins를 구축해야하기도 하고,
유저 밴 서비스나 전화번호 인증 API, 그리고 JWT, 추천, 인기 로직, 검색 서비스(비동기) 로직을 구현해볼 예정입니다!
'waffle' 카테고리의 다른 글
[waffle] 쿠라스트로 팀 중간정리 - Frontend (0) | 2024.03.23 |
---|---|
[waffle] 쿠라스트로 팀 중간정리 - ML (0) | 2024.03.16 |
[waffle] 아이셔팀 중간정리 - Android (0) | 2024.01.07 |
[waffle] 아이셔팀 중간정리 - FrontEnd (1) | 2024.01.07 |
[waffle] Bibs팀 중간정리 - Backend (0) | 2024.01.06 |