🗓️ 주제 : JPA 와 QueryDSL 로 복잡한 조회 기능 만들기! 🗓️
아웃소싱 프로젝트 활용 과제
최대한 QueryDSL 를 사용하여 구현해주세요 nativeQuery 사용은 최대한 지양 해주시고 QueryDSL 을 적극적으로 사용해서 가독성과 코드 재사용성을 높여주세요!
⚠️ Pageable 꼭 사용하기 목록 조회는 기본적으로 페이징 조회가 기본입니다. 쿼리를 수행하실때 꼭 Pageable 을 사용하셔서 페이징 조회가 가능하도록 해주세요. PageRequest.of() 메서드를 사용해서 손쉽게 만들어보실 수 있습니다.
⚠️ TestCode 꼭 작성하기 쿼리와 기능이 복잡할수록 TestCode 의 역할 더 중요해집니다! 각 기능의 상황별 TestCode 를 정의함으로써 기능이 잘 동작하는 것을 보장해주세요. 슬라이싱 테스트로 작성하는걸 추천드립니다.
✔️ 좋아요 추가하기
- 게시글 및 댓글 좋아요 / 좋아요 취소 기능
- (지난번 명예의 전당 좋아요 기능과 동일합니다.)
- 사용자가 게시물이나 댓글에 좋아요를 남기거나 취소할 수 있습니다.
- 본인이 작성한 게시물과 댓글에 좋아요를 남길 수 없습니다.
- 같은 게시물에는 사용자당 한 번만 좋아요가 가능합니다.
- 게시글 및 댓글 단건조회 응답에 좋아요 개수 추가
- 게시글 단건 정보 조회시 게시글의 좋아요 개수필드를 추가합니다.
- 댓글 단건 정보 조회시 댓글의 좋아요 개수필드를 추가합니다.
✔️ 내가 좋아하는 게시글 목록 조회기능 추가하기
-
- 좋아요 한 게시글 목록 조회 기능
- 사용자가 좋아요 했던 게시글 목록을 조회할 수 있습니다.
- 응답정보는 기존 게시글 목록 조회기능 응답정보와 동일합니다.
- 기본 정렬은 생성일자 기준으로 최신순으로 정렬합니다.
- 페이지네이션
- 페이지네이션하여 각 페이지 당 게시물 데이터가 5개씩 나오게 합니다.
- 좋아요 한 게시글 목록 조회 기능
✔️ 내가 좋아하는 댓글 목록 조회기능 추가하기
- 좋아요 한 댓글 목록 조회 기능
- 사용자가 좋아요 했던 게시글 목록을 조회할 수 있습니다.
- 응답정보는 기존 댓글의 단건 조회기능 응답정보를 목록으로 응답합니다.
- 기본 정렬은 생성일자 기준으로 최신순으로 정렬합니다.
- 페이지네이션
- 페이지네이션하여 각 페이지 당 게시물 데이터가 5개씩 나오게 합니다.
✔️ 프로필에 내가 좋아요한 게시글 수/댓글 수 응답필드 추가하기
- 프로필 조회응답에 필드 추가
- 프로필 조회시 응답필드에 내가 좋아요한 게시글 수 필드를 추가합니다.
- 프로필 조회시 응답필드에 내가 좋아요한 댓글 수 필드를 추가합니다.
<참고>
🎯 각각의 기능에 대한 테스트 코드를 짜 놓아야 버그를 빨리 찾을 수 있습니다!
기능이 복잡할수록 TestCode 의 역할 더 중요해집니다!
그 이유는 우리가 복잡한 기능에 버그가 발생했을때 버그를 찾기가 더 어렵기 때문입니다.
테스트 코드를 여러 케이스 별로 잘 짜 놓으면 예상치 못한 버그를 예방 할 수 있습니다.