feat : 반례게시판 이슈 해결 및 정렬을 위한 분기 param 추가 - #404
Conversation
Test Results 27 files 27 suites 7s ⏱️ Results for commit af59698. ♻️ This comment has been updated with latest results. |
|
제가 해야 할 부분들인데, 시험기간이라 보질 못해서 대신해주셨네요.. 감사드려요..! |
rladmstn
left a comment
There was a problem hiding this comment.
고생하셨습니다!!
문제는 딱히 없어보여요!
본문에 올려주신 count vs 필드 에 대한 답변이랑 코멘트만 달아두었습니담
| if (problemNumber == null) { | ||
| switch (sort) { | ||
| case LIKE: | ||
| edgeCaseList = edgeCaseRepository.findAllByOrderByLikeCountDesc(); | ||
| break; | ||
| case OLD: | ||
| edgeCaseList = edgeCaseRepository.findAllByOrderByCreatedAtAsc(); | ||
| break; | ||
| case RECENT: | ||
| default: | ||
| edgeCaseList = edgeCaseRepository.findAllByOrderByCreatedAtDesc(); | ||
| break; | ||
| } | ||
| } else { |
There was a problem hiding this comment.
이 분기처리들은 QueryDsl 사용해서 동적 쿼리 생성했어도 좋았겠단 생각이 드네요..!
하지만 지금은 기능 구현이 우선이니 넘어갑시다!
There was a problem hiding this comment.
이후 리팩토링할때 참고하도록 하겠습니다 :) 제안 감사드려요 ㅎㅎ
| public void increaseLikeCount() { | ||
| this.likeCount++; | ||
| } | ||
|
|
||
| public void decreaseLikeCount() { | ||
| if (this.likeCount > 0) { | ||
| this.likeCount--; | ||
| } | ||
| } |
There was a problem hiding this comment.
저는 count보다 현재 방식 좋은 것 같습니다!
동시성 문제가 좀 우려되는 방식이긴 하지만, 이건 나중에 발생하면 @Modifying + update 쿼리로 해결할 수 있을 것 같아요!
There was a problem hiding this comment.
동시성 문제가 터지는 트래픽이 발생하는 경우에 도입을 한번 고려해보면 좋을 것 같아요 ㅎㅎ
좋은 의견 감사드립니다 :)
s-hwan
left a comment
There was a problem hiding this comment.
저도 지금 방식이 좋은 것 같아요 ! 고생하셨습니다
- EdgeCase 엔티티 생성자에 createdAt 자동 할당 로직 추가 (최신순 정렬 버그 해결) - EdgeCase 엔티티에 likeCount 증감 헬퍼 메서드 (increase/decrease) 추가
- 정렬 옵션을 관리하기 위한 EdgeCaseSortType ENUM (RECENT, LIKE, OLD) 생성 - EdgeCaseRepository에 좋아요순(LikeCountDesc), 오래된순(CreatedAtAsc) 정렬 메서드 추가 - EdgeCaseController의 getEdgeCaseList에 `sort` 파라미터 추가 (기본값 RECENT) - EdgeCaseService의 getEdgeCaseList가 `sort` 값에 따라 분기 처리하도록 로직 구현
- setUp: 정렬 순서(createdAt, likeCount) 검증을 위한 테스트 데이터 상세 설정 - `createEdgeCase` 테스트: createdAt 할당 여부 검증 추가 - `togleEdgeCaseLike` 테스트: likeCount 증감 여부 검증 로직 추가 - `getEdgeCaseList` 테스트: RECENT, LIKE, OLD 각 정렬 옵션별 조회 결과 순서 검증 케이스 추가
Co-authored-by: sh0723 <pshpark12345@naver.com>
📌 Related Issue
BE-50
🚀 Description
정렬 기능 파라미터 추가: 반례 리스트 조회 API(GET /api/edge-case/list)에 sort 파라미터를 추가했습니다.
RECENT(최신순, 기본값),LIKE(좋아요순),OLD(오래된순) 3가지 옵션으로 분기하도록 Enum 클래스를 추가했습니다!📢 Review Point
이슈가 발생한 부분이 있어 클라측에서 요청한 급한 안건을 먼저 해결하게 되었습니다..! (원래 상혁님 테스크인데 본의 아니게 제가 처리하게 된 점 죄송합니다 ㅠㅠ)
likeCount 관리를 위해 EdgeCase 엔티티에 컬럼을 두고, 토글 시마다 UPDATE 쿼리가 발생하도록 했습니다. 이 방식이 괜찮은지, 아니면 COUNT 쿼리를 사용하는 방식이 나을지 의견 주시면 감사하겠습니다.
📚Etc (선택)
테스트 코드 결과