본문 바로가기
Study

[STUDY] 기본기 (Study) - 관점지향 프로그래밍(AOP, Aspect Oriented Programming)

by 물코더 2021. 10. 2.

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) 단위 구현이 가능 (유지보수 및 생산성 용이)

반응형

댓글