| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 백트래킹
- 깊이우선탐색
- 너비우선탐색
- DFS
- 프로그래머스
- 이분탐색
- Network
- dynamic programming
- DP
- programmers
- ReactiveProgramming
- 브루트포스
- 백준
- Java
- Algorithm
- greedy
- 그리디
- 네트워크
- BFS
- 스프링
- boj
- 우선순위큐
- 알고리즘
- JPA
- 구현
- 부분수열의합
- 동적계획법
- DynamicProgramming
- Spring
- Backtracking
- Today
- Total
목록AOP (2)
옌의 로그
최근 실무에서(이 포스팅의 연장선이다 ㅎㅋㅋ), 아래와 같은 이벤트 리스너 코드를 작성했는데 이상한 현상을 발견했다.@Slf4j@RequiredArgsConstructor@Componentpublic class MessageEventHandler { private final MessageRepository messageRepository; @Transactional @TransactionalEventListener( phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = true ) public void handleCreateTemplateMessageEvent(MessageByTemplateReques..
(ApplicationEventPublisher에 대한 고찰 글에서 다루지 않았던, Async, Transactional 관련 AOP 얘기를 더 해보자 한다,,) 운영 서비스에서 핵심 비즈니스 로직 이후에 알림, 로그 저장, 외부 연동 같은 부가 작업들을 처리해야 하는 경우가 많은데, 이런 부가 작업은 서비스 응답 속도나 안정성에 영향을 주지 않도록 비동기 + 트랜잭션 분리로 처리하는 것이 이상적이다. 그렇다면 어떻게 사용하는게 맞는걸까 ? AOP(Aspect-Oriented Programming)란?AOP는 관점 지향 프로그래밍이라고 하며, 로깅, 보안, 트랜잭션 같은 공통 기능(횡단 관심사)을 핵심 비즈니스 로직과 분리해서 관리할 수 있도록 도와주는 개념이다. (예시: 실행시간 측정 코드)@Aro..