AOP(Aspect Oriented Programming) 개념정리
I. 개요
AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)은 소프트웨어 개발에서 공통된 횡단 관심사(Cross-Cutting Concern)를 모듈화하여 핵심 비즈니스 로직과 분리하는 프로그래밍 패러다임이다. 기존의 객체지향(OOP)이 기능 단위의 모듈화에 집중한다면, AOP는 로깅·보안·트랜잭션 관리와 같은 부가 기능을 횡단적으로 분리하여 재사용성과 유지보수성을 극대화한다.
II. 특징
- 모듈화 강화 : 중복되는 코드(로깅, 예외 처리 등)를 별도의 관점 모듈로 정의 가능
- 관심사 분리 : 핵심 로직(비즈니스)과 부가 로직(보안, 성능 모니터링 등)을 명확히 구분
- 유지보수 용이성 : 수정 시 관점 모듈만 변경하면 전체 시스템에 반영
- 생산성 향상 : 코드 간결화, 중복 제거로 개발 속도 향상
III. 주요 개념 및 구성요소
| 구성요소 | 설명 |
|---|---|
| Aspect | 횡단 관심사를 모듈화한 단위 (예: 로깅, 보안) |
| Join Point | Aspect가 적용될 수 있는 실행 지점 (메서드 호출, 객체 생성 등) |
| Advice | 실제 실행될 부가 기능 코드 (Before, After, Around 등) |
| Pointcut | Join Point 중 Aspect가 적용될 구체적 조건 지정 |
| Weaving | Aspect를 핵심 코드에 적용(결합)하는 과정 (컴파일 시, 로드 시, 런타임) |
IV. 적용 절차
- 횡단 관심사 식별 (예: 인증, 로깅, 트랜잭션 관리)
- Aspect 정의 (공통 기능 코드 작성)
- Pointcut 설계 (적용할 Join Point 선택)
- Advice 구현 및 적용
- Weaving을 통해 실제 시스템에 반영
V. 적용 사례
- Spring Framework AOP : 트랜잭션 관리, 로깅, 보안 적용
- Enterprise Application : 공통 정책(감사 로그, 접근 제어) 처리
- 분산 시스템 : 모니터링 및 장애 감지 모듈 분리
VI. 결론
AOP는 객체지향의 한계를 보완하는 프로그래밍 패러다임으로, 관심사의 분리(Separation of Concerns)를 실현하여 시스템의 품질을 향상시킨다. 정보관리기술사 관점에서는 AOP를 통해 소프트웨어 아키텍처의 확장성, 유지보수성, 생산성을 높이는 핵심 기법으로 설명할 수 있다.
728x90
반응형
'공부 > 정보관리기술사' 카테고리의 다른 글
| [정보관리기술사] 모놀리식 아키텍처 vs 마이크로서비스 아키텍처 비교 (0) | 2025.09.14 |
|---|---|
| [정보관리기술사] 요구공학: 요구사항 개발과 요구사항 관리 정리 (0) | 2025.09.14 |
| [정보관리기술사]객체지향 설계 원칙 SOLID 5가지 (0) | 2025.09.14 |
| [정보관리가술사] 객체지향 성질: 추상화·캡슐화·정보은닉·상속·다형성 (0) | 2025.09.14 |
| [정보관리기술사]폭포수 개발방법론과 애자일 개발방법론 비교 (0) | 2025.09.14 |