항해 10주차 회고

Lee·2022년 3월 20일
0

항해99

목록 보기
42/50

실전 프로젝트 3주차

개요

2주차에 백엔드 MVC가 대부분 완성되었기 때문에 이번 주차에는 테스트 시 발생하는 트러블을 해결하거나 코드를 리팩토링하는 과정을 진행하기로 결정했다.

진행사항

검색기능 개선

무한 스크롤 구현이 예정되어 있어서 GET요청 시 조회하는 부분을 다시 확인하는 도중 검색 기능에 문제점을 발견했다. 기존의 검색기능은 챌린지 조회 시 모든 챌린지를 조회한 후 조건문을 이용해 제목, 태그, 카테고리에 검색어가 포함되는 지 구분하여 결과를 반환했다. 그 결과 중복된 글 판별이 불가능한 상황이었다.
이를 해결하기 위해 검색 로직을 변경하기로 결정했고 repository에서 JPQL을 사용해 distict를 사용해 중복을 제거하고 join을 이용해 tag 테이블을 join해서 검색어가 포함된 챌린지를 조회하도록 변경했다.

날짜 형식 문제

인증 게시글 및 댓글의 작성 날짜를 반환 시 LocalDateTime 형식을 toString 메서드를 이용해 String으로 변환 후 substring을 사용해 yyyy.MM.dd HH:mm:ss 형식으로 변환하여 반환했었다. 그런데 테스트시에 날짜에서 예외가 발생했고 이를 분석한 결과 초가 00초 일 경우 toString 변환 시에 생략되는 것을 발견했다.
이를 해결하기 위해 DateTimeFommater를 사용해 yyyy.MM.dd HH:mm:ss 형식을 지정하여 String 형식으로 변환하였고 테스트 결과 00초가 생략되지 않아 정확하게 표현되는 것을 확인했다.

채팅 코드 리팩토링

채팅 기능은 잘 동작했으나 제작 과정에서 변경사항이 생겨 코드 수정시 중복된 코드가 많게 되었다. 따라서 채팅 기능의 리팩토링을 하기로 결정했다.
채팅 메세지 부분의 코드는 DB 저장 및 채팅 메세지를 send하는 것이 중요한 부분으로 이 부분에서 눈에 띄게 중복된 부분이 많아 이 부분의 메서드를 분리하여 필요없는 코드를 삭제하고 역할을 분리하여 200줄 이상의 코드를 줄이고 가독성을 높이는 결과를 가져왔다.

profile
발전하고 싶은 백엔드 개발자

0개의 댓글