
/user)DELETE /user/:uuid: 사용자 삭제GET /user/nickname/:nickName: 닉네임 중복 체크GET /user/profile: 사용자 프로필 조회GET /user/submit: 사용자의 제출 기록 조회GET /user/review: 사용자의 리뷰 목록 조회GET /user/wishlist: 사용자의 위시리스트 조회
/shop)GET /shop/: 1km 이내의 상점 조회GET /shop/search: 키워드로 상점 검색GET /shop/region: 모든 상점 지역 조회GET /shop/temp: 임시 상점 목록 조회GET /shop/:shopId: 특정 상점 상세 정보 조회
/submit)POST /submit/: 새로운 상점 제출POST /submit/operating: 상점 운영 시간 제출POST /submit/products: 상품 정보 제출
/report)POST /report/review: 리뷰 신고POST /report/shop: 상점 신고
/wishlist)POST /wishlist/: 위시리스트 추가
/recent-search)GET /recent-search/: 최근 검색어 조회DELETE /recent-search/: 특정 최근 검색어 삭제DELETE /recent-search/all: 모든 최근 검색어 삭제
/notice)GET /notice/: 공지사항 목록 조회
/feedback)POST /feedback/: 피드백 저장
/users)GET /users/me 프로필 정보 불러오기 PATCH /users/me 프로필 정보 수정하기 DELETE /users/me 회원탈퇴 GET /users/duplicate-check 닉네임 중복 체크GET /users/me/shop-submissions 사용자가 등록/제안한 소품샵 목록 DELETE /users/me/shop-submissions/{submitId} 제보한 데이터 삭제 GET /users/me/reviews 사용자가 등록한 리뷰 목록 GET /users/me/wishlist 사용자가 찜한 소품샵 리스트 POST /users/me/wishlist 소품샵 찜하기 GET /users/me/recent-searches 최근 검색 기록 조회 DELETE /users/me/recent-searches 최근 검색 기록 전체 삭제 DELETE /users/me/recent-searches/{recentSearchId} 최근 검색 기록 개별 삭제 
/shops)GET /shops 1km 반경 내 소품샵 조회POST /shops 새로운 소품샵 제보GET /shops/search 키워드로 소품샵 검색GET /shops/temp 임시 소품샵 목록 조회GET /shops/{shopId} 소품샵 상세 정보 조회POST /shops/{shopId}/operating 소품샵 운영정보 제보POST /shops/{shopId}/products 소품샵 판매 목록 제보POST /shops/{shopId}/reviews 리뷰 작성PATCH /shops/{shopId}/reviews/{reviewId} 리뷰 수정DELETE /shops/{shopId}/reviews/{reviewId} 리뷰 삭제POST /shops/{shopId}/shop/report 소품샵 신고POST /shops/{shopId}/reviews/{reviewId}/report 리뷰 신고
일단 Users와 Shops 도메인에 너무 많은 코드가 몰렸다.
코드 리팩토링할 때 힘들 것 같다.
수정이 생기거나, 추가해야 되는 부분이 있을 경우 힘들 것 같다.
나는 엔드포인트를 도메인별(Review, Report 등)로 분리하는 것이 더 효율적이라고 생각한다.
그 이유는, 도메인 단위로 구분하면 유지보수가 용이하고 코드가 한곳에 과도하게 몰리지 않아 수정 시에도 훨씬 수월하기 때문이다.
OpenAPI와 스웨거를 활용한 실전 API 설계 책: https://product.kyobobook.co.kr/detail/S000211655004
을 읽고 RESTFul에 대한 공부를 더 한 뒤 추가적으로 글을 쓸 예정이다!