AOP와 비AOP의 비교 고찰
- 전문가 제언
-
○ 프로그래밍 언어는 개발 효율성을 위해 고유한 관심사 분리(separation of concerns) 패러다임을 갖는다. 즉, FORTRAN이나 C 같은 언어를 사용하는 절차적/구조적 프로그래밍은 상태 값을 갖지 않는 연속된 함수들의 실행을 프로그램으로 이해하고 모듈을 주요 분리 단위로 정의한다.
○ C++ 및 Java 같은 OOP(객체 지향 프로그래밍)는 일련의 함수 실행이 아닌 상호 작용 객체들의 집합으로서 클래스를 주요 단위로 한다. 그러나 객체지향 프로그래밍은 다수의 객체들에 분산되어 중복적으로 존재하는 공통 관심사가 존재한다. 이들은 프로그램을 복잡하게 만들고, 코드의 변경을 어렵게 하는 단점이 있다.
○ AOP(관점 지향 프로그래밍)는 OOP의 문제점을 보완하기 위해 관심사를 핵심 비즈니스 기능과 보조적 기능으로 분리하여 프로그램 모듈화를 향상시키는 기능이 있다. 즉, AOP는 객체를 핵심 관심사와 횡단 관심사로 분리하여 횡단 관심사를 관점(Aspect)이라는 모듈로 정의하고 핵심 관심사와 결합하여 처리할 수 있는 방법을 제공한다.
○ 국내에서는 아직 다소 생소하나 AOP가 등장하면서 기존의 정통적인 비AOP 프로그래밍 언어와 비교하여 많은 찬반 논란이 있어왔다. 그러나 그 논란들을 뒷받침하는 유효한 증거를 제시하는 시도는 많지 않았다. 이 연구는 최근 선정된 AOP 관련 논문들을 체계적으로 검토하여 수행 능력, 코드 크기, 모듈화 정도 및 발전성 측면에서 다소 긍정적인 결과를 제시하고 있다.
○ AOP에 관한 많은 사례연구를 보면 서로 상이한 결과를 나타내고 있다. 이는 AOP의 유효성 면에서 아직 많은 논란이 있음을 시사하고 있다. 향후 AOP 경험적 연구는 방법론 면에서 엄정성과 아울러 양, 질 및 다양성을 보다 향상시킬 필요가 있다.
- 저자
- Muhammad Sarmad Ali, Muhammad Ali Babar, Lianping Chen, Klaas-Jan Stol
- 자료유형
- 학술정보
- 원문언어
- 영어
- 기업산업분류
- 정보통신
- 연도
- 2010
- 권(호)
- 52(9)
- 잡지명
- Information and Software Technology
- 과학기술
표준분류 - 정보통신
- 페이지
- 871~887
- 분석자
- 김*홍
- 분석물
-