AOP와 OOP

지원·2026년 3월 2일

SpringBoot

목록 보기
11/17
post-thumbnail

OOP

프로그램을 객체 중심으로 설계하고 개발하는 방식

AOP

프로그램의 공통 관심사(부가 기능)를 따로 분리해서 관리하는 방식

  • Aspect
    공통 관심사를 모아놓은 모듈
    즉, 여러 곳에서 반복해서 사용하는 부가 기능(로그, 트랜잭션, 실행 시간 측정 등)을 하나로 묶어놓은 것이다.
  • Advice
    언제 어떤 부가 기능을 수행할지 정의한 코드이다.
    예를 들어 메서드 실행 전, 실행 후, 예외 발생 시 등에 동작하는 로직을 말한다.
  • PointCut
    부가 기능을 적용할 대상이나 위치를 지정하는 조건이다.
    즉, 어떤 클래스나 어떤 메서드에 Advice를 적용할지 정해주는 역할을 한다.
  • Weaving
    Aspect를 실제 대상 객체에 연결하여 적용하는 과정이다.
    즉, 공통 기능이 원래의 비즈니스 로직에 삽입되는 과정을 의미한다.
  • Target Object
    부가 기능이 적용되는 실제 객체이다. (=Proxy 객체)
    즉, 핵심 비즈니스 로직을 가지고 있으며, AOP가 적용되는 대상이 되는 객체를 말한다.

AOP 어노테이션

  • @Aspect : Aspect 클래스 지정하기 위한 어노테이션

<Advice 기능의 메소드>

  • @Before : 메소드 실행 전
  • @After : 메소드 실행 후
  • @Afterreturning : 메소드 정상 종료 후
  • @AfterThrowing : 메소드 예외 발생 후
  • @Around : 메소드 실행 전과 후 모두
profile
개발 공부하는 김지원

0개의 댓글