[Chapter 07] 카프카 프로듀서 로깅 중복코드를 AOP로 #77
-
질문이라기 보다는 이번 챕터를 통해 작업 중인 프로젝트의 중복 코드들을 AOP를 이용해 리팩토링한 내용을 공유하고자 합니다. 이전 상황
문제점try {
비즈니스 로직 서비스 --> 각 서비스 메서드에 producer.send(완료되면 완료 내용)
비즈니스 로직 서비스 --> 각 서비스 메서드에 producer.send(완료되면 완료 내용)
} catch(Exception e) {
producer.send(에러내용)
producer.send(중단)
} 카프카 컨슈머 통해 로깅을 보내는 코드가 비즈니스 로직 코드내에 들어가 있으며, 각 비즈니스 코드마다 컨슈머를 통해 로깅을 보내는 코드가 중복되고 있었음 이러한 중복된 코드들을 AOP를 통해 관점으로 분리하였고 상황에 맞는 에너테이션을 만들어 포인트 컷 명시하였음 @After("@annotation(~~)")
@AfterThrowing("@annotation(~~)") 따라서 핵심 관심사가 아닌 아닌 계속 반복되는 공통 비기능적 요구 사항인 로깅을 분리하여 중복코드를 제거할 수 있었고 구체적인 코드를 공유드릴 순 없지만 조금 더 좋은 방향이 보인다던지, 비슷한 경험을 공유해주시면 더욱 감사할 것 같습니다. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
코드 스니펫 보면 전부 컨슈머로 로깅을 처리하는 것처럼 보이는데 |
Beta Was this translation helpful? Give feedback.
-
금주 CheckPoint
|
Beta Was this translation helpful? Give feedback.
코드 스니펫 보면 전부 컨슈머로 로깅을 처리하는 것처럼 보이는데
아직 안 배우긴 했지만 스프링 이벤트로 보내서 리스너로 처리하는 방법도 있을 것 같습니다.