Study
[STUDY] 기본기 (Study) - 관점지향 프로그래밍(AOP, Aspect Oriented Programming)
물코더
2021. 10. 2. 18:48
1. AOP 란
· 기능(메소드)을 핵심 관심사(core concerns)와 횡단 관심사(Cross-cutting Concerns)에 대한 '관점'으로 분리하여 모듈화를 극대화하여 기존의 기능을 분리없이 하나의 객체에 모아놓는 OOP의 변경과 재사용 한계를 극복하기 위한 프로그래밍 기법
2. AOP 구현
1) 관심사 (concerns) : 기능
· 핵심 관심사(core concerns) : 단일 주요 핵심 기능
· 횡단 관심사(cross-cutting concerns) : 여러 모듈에서 공통적으로 사용되는 부가 기능
2) 어드바이스(Advice)
· 횡단 관심사를 모아 놓은 모듈(aspect)에서, 기능을 사용할 수 있도록 설정한 인터페이스
· 프로그램 코드의 "Joint point" 에 삽입
3) Point cut, Joint point
· Point Cut : "joint point" 를 정의
· Joint Point : 어드바이스(advice)가 삽입 되는 부분
4) 엮음(Weaving)
· 코드에 어드바이스(advice)를 적용하고 조립하는 과정
5) 응용 프로그램 실행 (Application)
3. AOP 특성
· 핵심관심사에서 횡단 관심사를 직접 호출하는 것이 아닌 횡단 관심사 모듈 → 어드바이스(advice)를 통해 호출
· 횡단 관심사는 독립적인 모듈(aspect) 단위 구현이 가능 (유지보수 및 생산성 용이)
반응형