항해 11주차 회고

Lee·2022년 3월 30일
0

항해99

목록 보기
46/50

개요

가능한 이번주에 서비스 배포를 시작하는 것으로 팀에서 결정한 상태였기 때문에 오류 테스트 및 최적화하는 것을 목표로 하였고 후순위로 미뤄두었던 추가 기능들을 구현하는 것도 목표에 포함되었다.

진행사항

무한 스크롤

저번 주에 페이징 처리만 했던 무한 스크롤 기능을 본격적으로 구현을 시작했다. 첫 회의 때는 백엔드에서 size를 결정하기로 했으나 디자인 변경에 따른 적합한 size가 변경될 수 있으므로 size를 프론트에서 넘겨주기로 변경하였다.
다음으로 인증 게시글의 상세 페이지 조회가 API가 존재하지 않는 문제가 발생해 코드 최적화를 위해 API를 추가하고 댓글의 무한 스크롤 최적화를 진행했다.
결정된 사항을 바탕으로 pageRequest를 이용해 page 및 size를 받아서 그에 맞는 적절한 페이지 및 다음 페이지 유무를 반환하여 무한스크롤을 구현했다.

알림기능

이번 주 회의에서 추가해야 할 기능들 중 알림기능을 담당하게 되었다. 첫 주차 기획 회의에서는 소켓을 이용한 실시간 알림을 구현하려고 했으나 회의 결과 실시간으로 알려주는 의미가 없다고 판단해 스케줄러를 이용한 알림을 구현하는 것으로 변경했다.

배포 준비 및 테스트

서비스 배포 준비를 위한 최종 점검에 들어갔다. 운영 서버에서 모든 기능이 제대로 동작하는지 확인하는 작업을 거쳤다. 테스트 중 채팅기능에서 소켓 연결이 제대로 되지 않는 문제를 발견했다. 원인은 nginx에서 소켓과 관련된 추가적인 설정을 해 주지 않아서 생겼던 것으로 기억한다.
채팅방 입장 메시지가 간헐적으로 표시되지 않는 문제가 채팅기능 구현 후 계속 발생했는데 이 문제는 입장 비동기적으로 메시지가 전송되어 입장 및 퇴장이 완료되기 전에 메시지가 전송될 경우 표시되지 않는 것이었다. 따라서 입장을 한 이후에 pub로 메시지를 전송하는 것으로 문제를 해결했다.

배포 및 실시간 오류 수정

3/26일 저녁 9:30 정도에 서비스 배포를 시작했다. 아무 일도 발생하지 않기를 빌면서 내가 구현한 알림기능 동작확인을 위해 자정까지 대기하였다. 그러나 자정에 중요한 기능 중 하나인 챌린지 레포트 부분이 표시되지 않는 치명적인 오류가 발생했다.
네트워크 창을 통해 확인한 결과 500에러가 발생했고 서버 확인 결과 query did not return a unique result 로 쿼리를 리턴 시 unique하지 않은 복수의 값을 리턴하면서 발생하는 문제로 확인되었다. 코드 분석결과 레포트 저장 post 및 레포트 호출의 get 요청에서 일요일 레포트를 중복으로 생성되어 발생되는 문제를 확인하여 이를 수정했다.

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

0개의 댓글