관점 지향 프로그래밍이란?
관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)은 프로그래밍에서 다양한 관점을 분리하여 모듈화하고, 각 과점에 맞게 모듈을 조합하는 것을 강조하는 프로그래밍 패러다임입니다
이것은 소프트웨어 개발에서 반복되는 공통 관심사(예: 로깅, 트랜잭션 관리, 보안 등)을 캡슐화하고 분리함으로써 코드의 가독성, 유지보수성, 재사용성을 향상시킵니다
핵심 개념
- 관점(Aspect)
관점은 어플리케이션에서 수행되는 여러 작업들의 모듈화된 관심사를 나타냅니다
예를 들어, 로깅은 하나의 관점일 수 있습니다 - 조인 포인트(Join Point)
관점이 적용된 수 있는 어플리케이션 실행 중의 특정 지점을 가리킵니다
메서드 호출, 예외 발생 등이 조인 포인트의 예시입니다 - 어드바이스(Advice)
관점이 어떻게 적용되는지를 나타냅니다
어드바이스는 조인 포인트에서 실행되는 코드 조각으로, 예를 들어 특정 메서드 호출 이전에 로그를 출력하는 등의 동작을 수행할 수 있습니다 - 포인트컷(Pointcut)
어떤 조인 포인트에 어드바이스를 적용할지를 결정하는 규칙입니다
이는 특정 메서드 호출이나 패키지 내의 모든 클래스 등을 포함할 수 있습니다
관점 지향 프로그래밍의 장점
- 모듈화와 재사용성
공통 관심사를 분리함으로써 모듈화되어 코드의 재사용성을 향상시킵니다 - 가독성과 유지보수성
각 관점이 분리되어 있기 때문에 코드의 가독성과 유지보수성을 향상시킵니다
예를 들어, 로깅 관점은 각 메서드에 로그 출력 코드를 추가하는 대신 로깅 관점만 수정하여 변경할 수 있습니다 - 비즈니스 로직 분리
핵심 비즈니스 로직과 다양한 관점(예: 보안, 트랜잭션 관리)을 분리하여 관리할 수 있습니다
'-- 기타 -- > 일반 개념' 카테고리의 다른 글
설정 값 저장 방식에 따른 장단점(config 파일, DB, arg 변수, 환경변수, 소스 코드) (0) | 2024.03.15 |
---|---|
Dependency Injection(의존성 주입, DI)란? (0) | 2024.03.14 |
[디자인 패턴] 싱글톤 패턴 (0) | 2024.01.22 |
[디자인 패턴] 팩토리 패턴(Factory Pattern) (0) | 2024.01.21 |
[CDN] Content Delivery Network(콘텐츠 전송 네트워크) (0) | 2024.01.18 |