[Spring] 김밥천국 배달앱 프로젝트 -4

JunWoo An·2023년 12월 11일
0

스파르타코딩클럽

목록 보기
33/46

일주일간의 팀프로젝트가 끝이났다. 여러모로 아쉬운점, 만족스러운 점이있었지만 앞으로 내가 뭘해야할지 알게된 팀프로젝트였다.

언제나 그렇듯 당초 계획과는 다른 결과의 ERD가 되었다. 어느부분과 달라졌는지 살펴보면 우선 처음 설계당시 우리는 한 가게에서의 메뉴 및 장바구니 주문시스템을 구축하는것을 목표로 하였지만 설계하면서 배달앱이라는것이 한가게 뿐만아니라 여러가게를 보여주고 사용자가 선택을하여 해당가게에 주문을하는 좀더 더 넓은 범위의 배달앱이 아닐까라는 생각을 가지고 토의를 나눈끝에 restaurant 엔티티를 추가하고 권한을 Manager role을 하나더추가하여 일반사용자(User), 가게사장(Managaer), 앱관리자(admin)으로 나뉘었다.

또한 인증,인가 에서도 RefreshToken을 사용하기위해 따로 DB를 나누는것이 아닌 소규모 로그인시스템이기 때문에 토큰 저장소를 추가하여 로그인시 등록되고 로그아웃시 삭제되는 토큰저장소를 구현했다. 추가적으로 모든 유저들이 로그아웃버튼을 반드시 누르고 로그아웃하는것은 아니기때문에 일정시간 혹은 토큰이 만료됬을경우 삭제하는 스케줄러를 구현하였다. 또한 내 정보 수정에서 비밀번호 수정시 최근사용한 3번의 비밀번호재사용을 막기위해 해당 비밀번호를 저장하는 userpassword저장소를 추가하여 해당 데이터를 저장하였다.

추가로 선택요구사항인 좋아요기능을 구현하기위해 likes 저장소를 추가하여 가게 좋아요 기능을 구현하였다.

처음 설계단계에서 이것저것 면밀히 살펴보고 ERD와 API명세서를 작성하였지만 완벽한 설계는 없듯이 부족한부분을 여러가지 채우면서 설계를 변경하였지만 최초 설계에서 틀은 거의다 잡아놔 당초 목표했던 기능 구현은 상당히 빨리 끝나 선택사항 기능구현또한 시도할수있었다.

다만 아쉬운점이 백오피스프로젝트라는 이름의 프로젝트인데 최초 설계시 유저와 관리자의 엔티티 분리를 하지않아 상당 부분의 백오피스 기능구현이 어려움이 발생하였다. 이 경험을 토대로 유저와 관리자가 역할이 구분되있고 해당 관리자의 기능구현을 해야하는 서비스의 경우 유저와 관리자의 엔티티를 분리하여 설계해야한다는 교훈을 얻게되었다.

profile
도전하는 사람

0개의 댓글