관점 지향 프로그래밍이란?

관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)은 프로그래밍에서 다양한 관점을 분리하여 모듈화하고, 각 과점에 맞게 모듈을 조합하는 것을 강조하는 프로그래밍 패러다임입니다

이것은 소프트웨어 개발에서 반복되는 공통 관심사(예: 로깅, 트랜잭션 관리, 보안 등)을 캡슐화하고 분리함으로써 코드의 가독성, 유지보수성, 재사용성을 향상시킵니다

핵심 개념

  • 관점(Aspect)
    관점은 어플리케이션에서 수행되는 여러 작업들의 모듈화된 관심사를 나타냅니다
    예를 들어, 로깅은 하나의 관점일 수 있습니다
  • 조인 포인트(Join Point)
    관점이 적용된 수 있는 어플리케이션 실행 중의 특정 지점을 가리킵니다
    메서드 호출, 예외 발생 등이 조인 포인트의 예시입니다
  • 어드바이스(Advice)
    관점이 어떻게 적용되는지를 나타냅니다
    어드바이스는 조인 포인트에서 실행되는 코드 조각으로, 예를 들어 특정 메서드 호출 이전에 로그를 출력하는 등의 동작을 수행할 수 있습니다
  • 포인트컷(Pointcut)
    어떤 조인 포인트에 어드바이스를 적용할지를 결정하는 규칙입니다
    이는 특정 메서드 호출이나 패키지 내의 모든 클래스 등을 포함할 수 있습니다

관점 지향 프로그래밍의 장점

  1. 모듈화와 재사용성
    공통 관심사를 분리함으로써 모듈화되어 코드의 재사용성을 향상시킵니다
  2. 가독성과 유지보수성
    각 관점이 분리되어 있기 때문에 코드의 가독성과 유지보수성을 향상시킵니다
    예를 들어, 로깅 관점은 각 메서드에 로그 출력 코드를 추가하는 대신 로깅 관점만 수정하여 변경할 수 있습니다
  3. 비즈니스 로직 분리
    핵심 비즈니스 로직과 다양한 관점(예: 보안, 트랜잭션 관리)을 분리하여 관리할 수 있습니다

+ Recent posts