개발 일기

[Spring Boot] Spring ApplicationEventPublisher 본문

Back-End/Spring

[Spring Boot] Spring ApplicationEventPublisher

개발 일기장 주인 2024. 12. 24. 14:58

회원 가입을 하면 쿠폰을 제공하고 있는 로직의 코드를 보자.

package 관점에서 볼 때 멤버에서는 쿠폰 서비스를 사용하기 때문에 멤버에서 쿠폰으로 의존성이 발생하고 있고 쿠폰 서비스는 인자로 인해 쿠폰에서 멤버로의 의존성이 발생하고 있다.

→ 즉, 이로 인해 "의존성 사이클 발생", 이를 해결하기 위해서는?

  • 인터페이스를 통한 의존성 역전
  • 이벤트 처리

등을 통해 해결할 수 있는데 이때 이벤트에 조금 더 집중해 보겠다.


멤버에서 회원 가입을 하면 다이렉트로 쿠폰 서비스를 호출하는 것이 아니라 멤버가 회원가입했다는 이벤트만 발행한다.

그러면 쿠폰 패키지 내부의 리스너가 이 발행된 이벤트를 듣고 이를 처리하는 코드를 작성하면 된다.

그렇게되면 위에서와 같이 의존성 사이클이 해결된다.

 

이를 통해 해결 가능


그렇다면 인터페이스는?