오늘의 활동
- 프론트와 알림 연동 테스트
- 최종 연동 테스트
- 최종 배포
느낀 점
- 오늘은 하루종일 프론트와 연동 테스트하는 데에 시간을 거의 다 썼다. 하지만 결론은 아주 잘 작동해서 7주간의 고생이 싹 내려간 느낌이었다.
- 알림 연동 테스트를 하려면 채팅을 먼저 연동을 해야 했는데, 아직 완성이 되지 않아서 프론트 로컬 테스트로 진행했다. 이 과정에서 자잘한 코드를 수정하게 됐다.
- nginx HTTP 1.1
- 원래는 nginx HTTP 1.0 버전이어서 프론트에서 오류 발생
nginx-release.conf 파일에서 proxy_http_version 1.1; 추가 후 해결
- SseEmitter 반환
- 이걸 반환하지 않으면
content-type이 잘못되었다는 에러가 계속 발생
- 반환 타입을
void에서 SseEmitter로 변경 후 해결
- 순환 참조 에러
chatMessageService의 isAnyoneInChatRoom() 메서드를 활용하기 위해 MessageSubscriber 안에 chatMessageService를 참조하게 되었는데, 이 과정에서 순환 참조가 발생
chatMessageRepository를 직접적으로 참조하게 변경 후 해결
- 채팅방에 둘 다 들어와 있을 때는 알림을 보내지 않도록 수정
- 위에서 언급한
isAnyoneInChatRoom() 메서드가 true라면 return 하게끔 함
- 쿼리 수정
- ChatRoom을 가져오는
ChatRoomRepository의 findChatroomFetchById() 메서드에서 @Query문이 ChatRoom인 c를 참조해야 하는데 그것을 참조하지 않아서 생긴 문제
c.product, c.user로 수정 후 해결
- Receiver에게는 알림이 안 가는 문제
ChatRoom의 getReceiver() 메서드에서 User 객체인 seller와 sender를 if (seller == sender)와 같은 형식으로 주솟값 비교를 했기 때문에 이 if문을 통과하지를 못 했었음
- 이는
if (seller.getUserId().equals(sender.getUserId()))와 같이 userId를 가지고 비교하여 해결
- 이제 정말로 내일 발표만 끝난다면, 코드스쿼드에서의 프로젝트는 4주짜리 프로젝트 하나만 남게 된다. 12월에 마스터즈 합격해서 좋아하던 게 저번주 같은데 시간이 정말 빠른 것 같다. 마지막 프로젝트는 짧긴 해도 더더욱 열심히 해서 앞으로의 공부에 도움이 될 수 있도록 하자.
내일 할 일
Leave a comment