카우치 코딩 2주차 스터디는 API 명세서 작성과, DB 명세서 작성을 진행하였다.
현재 camp-us 프로젝트의 도메인은 총 3개로 회원(member), 캠핑장(camp), 리뷰이다.(review)
method: (POST)
end point: /members
method: (GET)
end point: /members/me
method: (PATCH)
end point: /members/me
method: (GET)
end point: /members/me/reviews
method: (GET)
end point: /members/me/notifications
method: (PATCH)
end point: /members/me/notifications
method: (DELETE)
end point: /members/me/notifications
method: (PATCH)
end point: /camps/{campId}/likes
method: (GET)
end point: /camps
method: (GET)
end point: /camps/{campId}
method: (GET)
end point: /camps/{campId}/reviews
method: (DELETE)
end point: /camps/{campId}/reviews/{reveiewId}
method: (PATCH)
end point: /camps/{campId}/reviews/{reveiewId}
method: (POST)
end point: /camps/{campId}/reviews
method: (PATCH)
end point: /reviews/{reviewsId}/likes
method: (GET)
end point: /reviews/best
도메인을 참고해 엔티티를 설계한 결과 테이블이 총 6개가 나왔다.
member, camp, camp_like, review, review_like, notification
JPA 를 사용하여 데이터베이스와 연동을 할 것이기 때문에, 객체상에서의 양방향 연관관계를 사용하지 않고, 다대다를 사용하지 않았다.
또한, camp_like, review_like 등 좋아요와 관련된 테이블을 하나의 like 라는 테이블로 묶으려 했지만, 그럴경우 어떤 테이블의 PK 를 매핑했는지 모르기 때문에 테이블을 분리하였다.
이번주차는 API, DB 명세서를 작성하였다. 다음 주차는 두개의 명세서를 기반으로 JPA 셋업과, JPA 엔티티 개발이 이뤄진다.