[Spring boot] AOP 개념 01/02

jjade·2026년 1월 1일

AOP (Aspect Oriented Programming)

개요

  • 관점: 개발에 있어 관심사(Concern)를 의미
  • 효과:
    • 코드 중복 감소
    • 핵심 로직과 주변 로직을 분리하여 관리 가능

핵심 로직 vs 주변 로직

  • 주변 로직 체크리스트
    • 파라미터가 잘 전달 되었는가?
    • 로직에서 발생할 수 있는 예외가 무엇인가?
  • 정의: 핵심 로직은 아니지만 반복적으로 개발에 필요한 관심사
  • AOP의 역할:
    • 주변 로직 ➡ 횡단 관심사로 분리
    • 핵심 비즈니스 로직 ➡ 종단 관심사만 작성하도록 유도

예시) 나눗셈 프로그램 개발

  • 핵심: 두 개의 숫자를 나누는 연산
  • 주변: 0으로 나누는지 검사 (유효성 체크)

특징

  • 반복적으로 나타나는 횡단 관심사를 모듈로 분리 후 적절한 시점에 주입
  • 스프링의 중요 특징 중 하나 (별도의 복잡한 설정 없이 간편하게 기능 구현 가능)

AOP 적용 시점 (Advice)

  • Around (전 구역): 가장 많이 사용됨 (재정의)
  • Before: 대상 메서드 실행 전
  • After: 대상 메서드 실행 후 (정상 종료/예외 발생 무관하게 무조건 실행, final과 동일)
  • AfterReturning: 메소드 정상 리턴 후
  • AfterThrowing: 메소드 예외 발생 후

AOP 설계 순서

  1. 구현할 횡단 관심사를 의미하는 어노테이션 생성
  2. 어노테이션을 AOP로 등록 (@Aspect 어노테이션 사용)
  3. 종단 관심사에 등록된 어노테이션 사용 (프록시 생성 및 동작)
profile
끊임없는 에너지를 공유하는 핫스팟 같은 개발자 최준서입니다!

0개의 댓글