코딩/sparta TIL

알림 서버 코드가 다른 모든 도메인들의 서비스 코드에 포함되는 구조가 맞는 구조인가에 대한 고찰

americanoallday 2025. 6. 11. 22:23

알림 서버 코드가 모든 도메인 서비스 코드 내부에 이런식으로 추가 됨

그래서 아래와 같은 의문점이 발생함.

  1. 알림 발송 코드가 현재 각각의 도메인(게시판, 클럽, 젬(포인트) 등등) 서비스 코드에 추가됐는데, 해당 추가된 코드가 변경이 되면 서비스마다 다시 코드를 바꿔주어야 하는데 이런 방식이 맞는 구조인가?
  2. 원초적으로 타서버 또는 타모듈의 코드를 건드는 것이 맞는가
    1. 추가된 코드에서 예시로 보자면, 추가된 도메인에서 사용하는 dto정보를 사용함. 그럴경우 해당 도메인 담당자가 그 dto 구조를 바꾼다면 ? 예를들어, 채팅서버 담당자가 ChatRequestDto 구조를 바꾼다면? 그 dto를 사용한 알림 발송 코드에서 충돌 문제가 나지 않겠는가? 채팅 서버 담당자가 작성한 코드가 아닌데 이런 부분 해결은 어떻게 하는가?

 

 

이 부분에 대해 튜터님에게 조언을 구하러 감

결론

  1. 어쩔수 없다. rabbitMQ를 쓰려면 발송을 하는 프로듀서와 관련된 코드가 위와 같은 구조로 있어야 한다.
  2. 위의 우려사항은 발생할 가능성이 있고 그때마다 충돌을 해결하면서 작업을 해야한다.
    1. 그래서 보통은 누가 고쳐야 하는가로 보통 실무에서도 이야기를 많이 한다고 함.
    2. 그리고 뭔가 먼저 머지한 사람이 승자라고도 함
      1. 여기서 의문이 그럼 채팅 서버 담당자는 알림 서버 구조를 알고 있어야 하는게 아닌가? 그래야 충돌나도 고칠 수 있는게 아닌가?
        1. 실제 겪으시면 우려한 것 만큼 충돌 문제 해결이 쉽다. 그정도까지는 아닐 것이다.

추가로, 아래와 같은 예시 구조를 설명 듣던 중 공통 모듈 이야기가 나왔는데,

그러면 현재 알림 프로듀서와 알림 이벤트를 발송하는 코드가 각 도메인 서비스 코드마다 중복되어서 삽입되어 있는데 이것을 공통 모듈로 빼서 하는건 어떤지 여쭤봄

→ 좋지 않다. 나중에 알림 서버의 경우 확장되거나 분리될 수 있고, 모듈 마다 다른 알림 서버를 갖을 수도 있는데, 공통으로 뺄 경우 그부분이 제어가 맞지 않다고 함.

→ 나중에 서버 분리는 공통 모듈 + 분리할 모듈 이런식으로 묶어서 JAR 파일로 만들고 서버를 올린다고 함.