최근 수정 시각 : 2025-04-25 01:14:31

관점 지향 프로그래밍

AOP(프로그래밍)에서 넘어옴

이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


1. 개요2. 설명3. 참조

1. 개요

Aspect Oriented Programming(관점 지향 프로그래밍)

개발 분야에서 널리 알려진 객체 지향 프로그래밍(OOP)과 같은 일종의 프로그래밍 패러다임이다. OOP는 객체를 활용한 캡슐화 및 모듈화와 이들의 협력을 중점적으로 다룬다. 비슷하게 AOP는 관점의 측면에서 코드를 구성하는 방법론을 제시한다.

2. 설명

관점 지향 프로그래밍(AOP, Aspect-Oriented Programming)은 프로그램의 핵심 기능(core concern)과 부가 기능(cross-cutting concern)을 분리하여 모듈화하는 프로그래밍 패러다임이다. 부가 기능에는 예시로 로깅, 보안, 트랜잭션 관리 등이 포함되며, 이러한 기능은 여러 모듈에 걸쳐 반복적으로 나타날 수 있다.
  • Aspect (관점): 부가 기능을 모듈화한 단위이다. 로깅, 인증, 예외 처리 등이 이에 해당한다.
  • Join Point (조인 포인트): Aspect가 삽입될 수 있는 지점으로, 메소드 호출, 객체 생성, 예외 발생 등 다양한 실행 시점이 포함된다.
  • Pointcut (포인트컷): Join Point 중에서 Aspect를 적용할 구체적인 지점을 명시하는 규칙 또는 표현식이다.
  • Advice (어드바이스): 실제로 실행되는 부가 기능의 코드이다. 실행 시점에 따라 Before, After, Around로 구분된다.
  • Weaving (위빙): Aspect를 프로그램의 지정된 지점에 삽입하는 과정이다. 위빙은 컴파일 시, 클래스 로딩 시, 또는 런타임에 수행될 수 있다.

3. 참조


https://cseweb.ucsd.edu/~wgg/CSE218/aop-ecoop97.pdf