본문 바로가기

AOP2

[Spring] AOP 실제 적용 예시 예시 시나리오: 로그인 시도 로깅 및 인증 처리(Spring Boot @AspectJ 애노테이션 기반 AOP 방식)- 이 방식은 런타임 위빙과 프록시 기반 동작(JDK 동적 프록시 또는 CGLIB)을 사용하며, 횡단 관심사(로그인 로깅 및 인증 처리)를 효과적으로 분리합니다. 상황 설명 온라인 쇼핑몰 애플리케이션을 개발한다고 가정해보겠습니다. 사용자 인증은 애플리케이션의 핵심 기능 중 하나이며, 모든 로그인 시도에 대해 다음과 같은 작업을 수행하고자 합니다:  1. 로그인 시도 기록: 사용자가 로그인할 때마다 시도 시간을 로그에 남깁니다. 2. 권한 검사: 로그인 시도 시 사용자의 계정이 잠겨 있거나 비활성화되어 있는지 검사합니다. 3. 실패한 로그인 시도 제한: 일정 횟수 이상의 로그인 실패 시 계정을.. 2024. 11. 29.
[Spring] AOP(Aspect-Oriented Programming) 1. AOP(관점 지향 프로그래밍)란 무엇인가? 1.1 정의 **AOP(Aspect-Oriented Programming)**는 소프트웨어 개발 패러다임 중 하나로, 프로그램의 핵심 비즈니스 로직과는 별도로 여러 모듈에 공통적으로 적용되는 **횡단 관심사(Cross-Cutting Concerns)**를 분리하여 모듈화 하는 방법입니다.  • 횡단 관심사: 애플리케이션의 여러 부분에 걸쳐 공통적으로 사용되는 기능으로, 예를 들면 로깅(logging), 보안(security), 트랜잭션 관리(transaction management) 등이 있습니다. • 핵심 관심사: 애플리케이션의 주요 비즈니스 로직이나 기능을 담당하는 부분입니다. 1.2 필요성  • 코드 모듈화 향상: 횡단 관심사를 별도의 모듈로 분리함으.. 2024. 11. 29.