AOP 3

[Spring] AOP를 이용한 Request 로깅

AOP(Aspect-Oriented Programming)를 이용하여 HTTP 요청과 응답을 로깅했습니다. package contest.collectingbox.global.config;import jakarta.servlet.http.HttpServletRequest;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Comp..

BACK/SPRING 2024.05.05

[Spring] AOP란

Spring AOP 관점 지향 프로그래밍(AOP-Aspect Oriented Programming) AOP는 관점을 기준으로 묶어 개발하는 방식을 말한다. 관점(aspect)이란, 어떤 기능을 구현할 때 그 기능을 핵심 기능과 부가 기능으로 구분해 각각을 하나의 관점으로 보는 것을 의미한다. 핵심 기능은 주로 핵심 비지니스 로직이고, 부가 기능은 핵심 로직을 실행하기 위한 데이터베이스 연결, 로깅, 파일 입출력 등이 있다. 여러 비지니스 로직에서 반복되는 부가 기능을 하나의 공통 로직으로 처리하도록 모듈화해 삽입하는 방식을 AOP라고 한다. => 흩어져 있는 부분들을 Aspect를 이용해 모듈화 시킨 것을 볼 수 있다. 모듈화 시킨 Aspect를 어느 곳에 사용해야 하는지 정의해주면 된다. 스프링 AOP..

BACK/SPRING 2023.01.02

[Spring] AOP란? 용어 정리, 사용 방법

AOP란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. OOP를 보완하는 수단으로,여러 곳에서 쓰이는 공통 기능을 모듈화하고, 쓰이는 곳에 필요할 때 연결함으로써, 유지 보수 혹은 재사용에 용이하도록 프로그래밍 하는 것이다. 중복되는 코드 제거, 효율적인 유지보수, 높은 생산성, 재활용성 극대화, 변화 수용이 용이하다는 장점들이 있다. 여러 concerns들과 여러 모듈들이 뒤섞여 있는데, 모듈끼리, concerns끼리 분리한다. 이렇게 분리해 독립된 클래스로 만든 부가기능을 aspect라고 한다. 프로그램에서 비즈니스 로직을 분리하고, spring framework에서 런타임시 필요한 기능을 주입시킨다. 이전에는 Caller가 app funct..

BACK/SPRING 2021.10.18