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..