알림 서버 코드가 모든 도메인 서비스 코드 내부에 이런식으로 추가 됨
그래서 아래와 같은 의문점이 발생함.
- 알림 발송 코드가 현재 각각의 도메인(게시판, 클럽, 젬(포인트) 등등) 서비스 코드에 추가됐는데, 해당 추가된 코드가 변경이 되면 서비스마다 다시 코드를 바꿔주어야 하는데 이런 방식이 맞는 구조인가?
- 원초적으로 타서버 또는 타모듈의 코드를 건드는 것이 맞는가
- 추가된 코드에서 예시로 보자면, 추가된 도메인에서 사용하는 dto정보를 사용함. 그럴경우 해당 도메인 담당자가 그 dto 구조를 바꾼다면 ? 예를들어, 채팅서버 담당자가 ChatRequestDto 구조를 바꾼다면? 그 dto를 사용한 알림 발송 코드에서 충돌 문제가 나지 않겠는가? 채팅 서버 담당자가 작성한 코드가 아닌데 이런 부분 해결은 어떻게 하는가?
이 부분에 대해 튜터님에게 조언을 구하러 감
결론
- 어쩔수 없다. rabbitMQ를 쓰려면 발송을 하는 프로듀서와 관련된 코드가 위와 같은 구조로 있어야 한다.
- 위의 우려사항은 발생할 가능성이 있고 그때마다 충돌을 해결하면서 작업을 해야한다.
- 그래서 보통은 누가 고쳐야 하는가로 보통 실무에서도 이야기를 많이 한다고 함.
- 그리고 뭔가 먼저 머지한 사람이 승자라고도 함
- 여기서 의문이 그럼 채팅 서버 담당자는 알림 서버 구조를 알고 있어야 하는게 아닌가? 그래야 충돌나도 고칠 수 있는게 아닌가?
- 실제 겪으시면 우려한 것 만큼 충돌 문제 해결이 쉽다. 그정도까지는 아닐 것이다.
- 여기서 의문이 그럼 채팅 서버 담당자는 알림 서버 구조를 알고 있어야 하는게 아닌가? 그래야 충돌나도 고칠 수 있는게 아닌가?
추가로, 아래와 같은 예시 구조를 설명 듣던 중 공통 모듈 이야기가 나왔는데,
그러면 현재 알림 프로듀서와 알림 이벤트를 발송하는 코드가 각 도메인 서비스 코드마다 중복되어서 삽입되어 있는데 이것을 공통 모듈로 빼서 하는건 어떤지 여쭤봄
→ 좋지 않다. 나중에 알림 서버의 경우 확장되거나 분리될 수 있고, 모듈 마다 다른 알림 서버를 갖을 수도 있는데, 공통으로 뺄 경우 그부분이 제어가 맞지 않다고 함.
→ 나중에 서버 분리는 공통 모듈 + 분리할 모듈 이런식으로 묶어서 JAR 파일로 만들고 서버를 올린다고 함.
'코딩 > sparta TIL' 카테고리의 다른 글
채팅 서버 만들기 : 통신 구조 파악하기 (0) | 2025.06.13 |
---|---|
채팅 서버 만들기 : Redis, Kafka 연동 후 chat 모듈만 따로 docker 로 돌리고 테스트 (0) | 2025.06.12 |
채팅 서버 만들기 : 브로커 종류 (2) | 2025.06.09 |
채팅 서버 만들기 : WebSocket, WebSocketMessageBrokerConfigurer (1) | 2025.06.09 |
채팅 서버 만들기 : WebMvcConfigurer 설정 (1) | 2025.06.09 |