생각정리/항해99
[주특기 3주차] Spring 4일차
생각중임
2023. 9. 13. 00:14
Spring 과제 Level 5
레벨 5 과제를 진행하는데 이미 시큐리티 검증과 예외처리 부분은 앞선 과제들에서 이미 같이 구현을 했어서 기본적으로 주어진 부분은 게시글과 댓글의 좋아요를 구현하는 부분이라 빨리 끝내고 추가적으로 더 나아가기로 회원탈퇴, 대댓글, 페이징, 정렬, 게시글 카테고리, RefreshToken을 구현하는 부분이 있어 추가로 진행하였다.
회원탈퇴의 경우에는 처음에 cascade를 이용해서 영속성 전이를 이용해서 데이터를 삭제처리를 했는데, 여러개의 아이디에서 게시글과 댓글을 섞어서 사용한 뒤 삭제를 하니 오류가 나서 직접 repository들을 이용해서 순차적으로 삭제를 하는 것으로 수정을 하려고 했는데, 코치님에게 데이터처리 관련으로 물어보니 DB에서 직접 삭제처리 하는 부분은 인덱스의 성능을 떨어뜨릴 수 도있다고 하여 삭제 시 체크를 해서 데이터는 살아있고 사용하지 않는 데이터로 남겨두는 방식으로 수정을 하면서 그에 따라 검색에도 삭제에 대한 처리를 해주었다.
대댓글의 경우는 자신을 참조하는 방식으로 처리를 하면서 순환참조는 이전에 한번 겪어봤던 경우라 @JsonIgnore을 사용해서 사전에 처리를 해주었다.
페이징과 정렬은 page인터페이스를 이용해서 적용을 시켰다.
게시글 카테고리를 구현을 하는데 처음에 잘못 생각을 해서 게시글이 여러개의 카테고리를 가지는 줄 알고 다대다의 관계로 구현을 하다가 보니 먼가 이상해서 다시 생각을 해보니 게시글은 하나의 카테고리만 가지고 있는 게 맞는 거 같고 아예 카테고리를 따로 구현을 할지 아니면 게시글의 컬럼으로만으로 사용할지 다시 먼저 계획을 짜고 구현을 해보도록 해야겠다.