Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- Spring
- CS
- CI/CD
- 컨테이너
- 자바
- 스프링
- 영속성 컨텍스트
- spring batch
- Spring Security
- spring boot
- mysql
- Container
- 웹 서버
- 배포
- vm
- JPA
- HTTP
- 스프링 부트
- 데이터베이스
- 가상화
- ORM
- Java
- computer science
- 스프링 배치
- 백엔드
- virtualization
- 스프링 시큐리티
- web server
- 도커
- spring cloud
Archives
- Today
- Total
개발 일기
[Spring Boot] Spring ApplicationEventPublisher 본문
회원 가입을 하면 쿠폰을 제공하고 있는 로직의 코드를 보자.
package 관점에서 볼 때 멤버에서는 쿠폰 서비스를 사용하기 때문에 멤버에서 쿠폰으로 의존성이 발생하고 있고 쿠폰 서비스는 인자로 인해 쿠폰에서 멤버로의 의존성이 발생하고 있다.
→ 즉, 이로 인해 "의존성 사이클 발생", 이를 해결하기 위해서는?
- 인터페이스를 통한 의존성 역전
- 이벤트 처리
등을 통해 해결할 수 있는데 이때 이벤트에 조금 더 집중해 보겠다.
멤버에서 회원 가입을 하면 다이렉트로 쿠폰 서비스를 호출하는 것이 아니라 멤버가 회원가입했다는 이벤트만 발행한다.
그러면 쿠폰 패키지 내부의 리스너가 이 발행된 이벤트를 듣고 이를 처리하는 코드를 작성하면 된다.
그렇게되면 위에서와 같이 의존성 사이클이 해결된다.
이를 통해 해결 가능
그렇다면 인터페이스는?