ApplicationEventPublisher의 @Async 사용 시 주의점
·
개발/SpringBoot
매번 글의 서두에 글을 쓰지만 이 글이 Spring Boot ApplicationEventPublisher 에 모든 정보를 담고 있지는 않습니다. 제가 실제 개발 경험을 바탕으로 주의해야할 점에 대해서 작성하였으니 이러한 문제점이 발생할 수 도 있구나 하는정도의정보를 공유하는 글로 읽어주시면 좋을것 같습니다.앞의 글에서 소개한 바와 같이 Spring Boot에서 ApplicationEventPublisher를 @Async와 함께 사용하는 것은 비즈니스 로직을 깔끔하게 분리하고 애플리케이션 성능을 최적화하는데 좋은 방법입니다. 하지만 비동기 이벤트 처리의 특성상 간과하기 쉬운 몇 가지 주의사항이 존재하며, 잘못 사용하면 예상치 못한 문제에 직면할 수 있습니다. 지난 글에 이어서 이번 글에서는 실제 프로젝트..
SpringBoot의 ApplicationEventPublisher 를 활용한 비즈니스 분리
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이 글은 Spring Boot ApplicationEventPublisher 에 대한 공식적인 정의를 다루기보다는, 제가 실제 개발 경험을 바탕으로 ApplicationEventPublisher을 어떻게 활용하고 있는지 '이런 방식으로도 사용할 수 있구나!' 하고 생각의 확장을 공유하는 글로 가볍게 읽어주시면 좋을 것 같습니다.비지니스 로직 분리란?AOP와 유사하게 비즈니스 로직을 분리할 수 있는 Spring의 기능 중 하나로 ApplicationEventPublisher가 자주 활용됩니다.실제 사례를 통해 비지니스 로직 분리에 대한 Refactoring을 확인해 보겠습니다.회원가입 처리 로직과 memberId를 기반으로 메일을 보내는 모듈이 존재하고 있는 상태에서 만약 회원 ..
SpringBoot AOP 의 아이러니
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이글은 Spring AOP 를 정의하는 글이 아닌그 동안의 경험을 바탕으로 Spring AOP를 이해하기 위해 실제 구동원리를 바탕으로 이렇게도 생각하는구나 또는 이렇게 이해를 하는구나라고 생각을 확장하는 의미로 봐주시면 좋을 것 같습니다.1. AOP의 본질: 횡단 관심사의 분리와 프록시 패턴- Aspect Oriented Programming 으로 사전적 정의를 찾아보면 "횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임" 관점형 프로그래밍이라고 설명을 하며 대표적으로 설명되는 그림이 프로그램 로직의 가로 flow 에 세로로 뭔가를 수행하는 이미지를 많이 참고하는데 관점형으로 실제 비지니스..
Springboot Custom Annotation
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이 글은 Spring Boot Custom Annotation에 대한 공식적인 정의를 다루기보다는,제가 실제 개발 경험을 바탕으로 Custom Annotation을 어떻게 활용하고 있는지 그 활용법과 생각의 확장을 공유하는 글입니다.'이런 방식으로도 사용할 수 있구나!' 하고 가볍게 읽어주시면 좋을 것 같습니다.1. Custom Annotation이란? 그리고 왜 사용할까요?Spring에서 공식적으로 제공하는 Annotation 이외에 개발자가 특정 목적을 위해 직접 정의하여 사용하는 Annotation을 말하여 아래와 같이 작성해서 사용할 수 있습니다.@Description("Service Method 관리 Custom Annotation")@Retention(Retention..