issues
search
Turing-mentos
/
Turing-BE
과외 수업의 부담감은 내리고 효율성은 올리는 과외 알리미
0
stars
1
forks
source link
[Feat] 알림장 CRUD 구현
#19
Closed
beomzun
closed
3 months ago
beomzun
commented
3 months ago
📄 Description
close : #9
📌 구현 내용
알림장 한 건 조회 - 간편 템플릿 / 현재 / 과거
지난 알림장 전체 조회
이번주 숙제현황 조회
알림장 생성
알림장 삭제
알림장 수정(마감일자)
숙제 완료여부 수정(#10)
알림장 엔티티 필드 추가 - 마감일자(deadline - Timestamp)(#10)
숙제 엔티티 필드 추가 - 완료여부(isDone - Boolean)(#10)
✅ PR 포인트
현재 DetailedHomeworkDto와 HomeworkDto 는 필드 하나 차이입니다
필드명 변경 시 수정이 편리하기에 상속을 사용할까도 고민했으나, Dto 관계에서 상속을 사용하는 것은 추후 혼란을 야기할 것 같아 사용하지 않았습니다.
알림장 조회 시 서브쿼리 내에서 Dto 생성이 불가하여 두 번의 쿼리로 메서드를 구성하였습니다.
알림장과 숙제의 정렬 순서를 동일하게 하여 각 알림장에 속하는 숙제들을 판별 시, homeworkList를 반복하지 않고 한 번의 순회로 결과를 얻을 수 있도록 구현하였습니다.
무한스크롤 구현을 Slice가 아닌 List를 사용하였습니다.
사유 : UI상에서 더보기 버튼 사용되지 않기에 다음 페이지 존재 여부 응답 불필요 & 사용되지 않는 메타데이터 많음
구현 방법
Slice와 동일하게 +1 개의 데이터를 조회하여 다음 페이지의 여부를 프론트에서 판단
가장 마지막 알림장 id를 통해 no-offset 방식으로 조회
db의 데이터와 응답 결과 데이터 간의 Timezone이 상이하여 Asia/Seoul로 통일하였습니다.
📋 To Do List
추후 리팩토링 시 Query Dsl 학습해서 적용해보면 좋을 것 같습니다
📄 Description
📌 구현 내용
알림장 수정(마감일자)
✅ PR 포인트
📋 To Do List