
RabbitMQ를 사용하여 알림 발송하기 1편 Spring Boot - RabbitMQ를 사용하여 알림 발송 1편 ApplicationEventPublisher란? 이벤트 리스너는 발생된 event에 반응하고 이벤트 리스너는 발생된 event를 전달받아 이벤트에 담긴 데이터를 기반으로 특정한 기능을 수행합니다. 🤔 왜 ApplicationEventPublishe kdg-is.tistory.com 지난 이야기 지난 이야기에서는 RabbitMQ를 사용하여 특정 클라이언트가 회원가입을 완료했을 경우 알림을 보냈습니다. 하지만 알림을 데이터 베이스에 저장하는 상황에서 예외가 발생하다면 어떻게 대처할 것인가에 대해서는 설명하지 않았습니다. 이번 편에서는 어떻게 대처할 수 있을까에대해 알아보겠습니다. 필자가 설명하..

ApplicationEventPublisher란? 이벤트 리스너는 발생된 event에 반응하고 이벤트 리스너는 발생된 event를 전달받아 이벤트에 담긴 데이터를 기반으로 특정한 기능을 수행합니다. 🤔 왜 ApplicationEventPublisher를 사용해야할까? 아래는 회원가입 상황입니다. 클라이언트가 회원가입을 완료하면 가입 축하 알림 발송과 축하 할인 쿠폰을 발송하고 있습니다. 이는 절차지향적 관점에서는 당연한 순서이지만 몇가지 문제점을 가지고 있습니다. @Service @Transactional @RequiredArgsConstructor public class MemberService { private final MemberCouponService memberCouponService; pri..

서론 상속의 첫 번째 용도는 타입 계층을 구현하는 것입니다. 타입 계층의 관점에서 부모 클래스는 자식 클래스의 일반화이고 자식 클래스는 부모 클래스의 특수화입니다. 상속의 두 번째 용도는 코드 재사용입니다. 상속을 사용하면 점진적으로 기능을 확장해나갈 수 있습니다. 다만 부모 클래스와 자식 클래스 간에 강하게 결합되기 때문에 변경이 어려워집니다. 우리는 상속을 코드 재사용의 목적이 아닌 타입 계층을 구현하기 위해서 상속을 사용해야 합니다. 타입 객체지향 프로그래밍 언어에서 타입을 이해하기 위해서는 프로그래밍 언어 관점에서의 타입과 개념 관점에서의 타입을 살펴봐야합니다. 타입은 적용 가능한 오퍼레이션의 종류와 의미를 정의함으로써 코드의 의미를 명확하게 전달하고 개발자의 실수를 방지하기 위해서 사용합니다. ..
- Total
- Today
- Yesterday
- spring boot poi excel download
- transactional outbox pattern
- spring boot redisson destributed lock
- JDK Dynamic Proxy와 CGLIB의 차이
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- pipe and filter architecture
- spring boot 엑셀 다운로드
- spring boot redis 대기열 구현
- java ThreadLocal
- redis sorted set
- @ControllerAdvice
- transactional outbox pattern spring boot
- 람다 표현식
- 트랜잭셔널 아웃박스 패턴 스프링부트
- pipeline architecture
- space based architecture
- microkernel architecture
- redis sorted set으로 대기열 구현
- spring boot excel download oom
- spring boot redisson 분산락 구현
- spring boot redisson sorted set
- 자바 백엔드 개발자 추천 도서
- redis 대기열 구현
- polling publisher spring boot
- service based architecture
- java userThread와 DaemonThread
- 공간 기반 아키텍처
- 레이어드 아키텍처란
- 서비스 기반 아키텍처
- spring boot excel download paging
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |