오늘의 활동
- 프론트와 알림 연동 테스트
- 최종 연동 테스트
- 최종 배포
느낀 점
- 오늘은 하루종일 프론트와 연동 테스트하는 데에 시간을 거의 다 썼다. 하지만 결론은 아주 잘 작동해서 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