검색 상세

AOP 기반 Log Framework 설계 및 구현

Design and Implementation of Log Framework based on AOP

초록/요약

기술이 발전함에 따라 하드웨어의 성능은 급격히 향상 되었지만 소프트웨어의 성능 향상은 이에 미치지 못하고 있다. 또한 각종 언어와 개발방법론들이 프로젝트를 완벽하고 빠르게 완수하기 위하여 저마다의 장점을 내세우며 사용되고 있지만 지금도 많은 프로젝트들은 일정이 지연되고 있으며, 이를 만회하기 위하여 개발자들은 오늘도 밤늦도록 일하고 있는 것이 작금의 현실이다. 이는 사용자들의 요구사항이 더 다양해 지고 복잡해짐에 따라서 프로그램도 이에 상응하여 함께 대형화되고 복잡해지고 있기 때문이다. 이러한 복잡성을 감소시키는 방법으로 OOD나 CBD등은 관심사를 분리하여 모듈 화함으로써 프로그램 개발 및 유지보수를 용이하도록 발전해 왔다. 하지만, 에러 처리나 로깅과 같이 여러 모듈에 산재되어 실행되는 횡단 관심사는 기존의 방법으로 해결하기 어려웠다. 그래서 이를 해결하고자 새롭게 등장한 패러다임이 바로 관점지향 프로그래밍(Aspect oriented programming. 이하 AOP)이다. AOP는 비즈니스 로직에 해당하는 핵심 관심사(Core concerns)와 비기능적 기능인 횡단 관심사(Crosscutting concerns)를 분리하여 각각의 모듈로 개발 할 수 있는 방법을 제공한다. 이를 통해 각 모듈들이 서로 밀접한 관계를 맺는 것을 방지하여 프로그램의 복잡도 감소 및 재사용성의 증가로 프로그램의 개발 생산성을 향상시키는 방법을 제공한다. 본 연구에서는 웹 어플리케이션에서 사용 가능한 AOP 기반 Log Framework를 제안하고 이를 설계 및 구현한다. 또한 제안한 Framework의 성능을 측정하기 위하여 예제 어플리케이션인 도서관관리 프로그램에 AOP 기반 Log Framework 와 일반 Log Framework를 각각 적용하여 프로그램의 복잡도를 측정한다. 그리고 이를 비교 평가하여 제안한 Framework이 프로그램의 복잡도 감소에 효과가 있음을 확인한다.

more

초록/요약

As technology develops, the performance of hardware has been dramatically improved; however, that of software does not come up to that degree. In order to complete a project rapidly as well as perfectly, various languages and development methodologies are being utilized with their own merits, but the completion of many projects is still delayed even now. As a measure for the retrieving, numerous developers are working late at night even today; this is the reality. As user demands become more diversified and complex, programs are also getting larger and more complex corresponding to that. As a method to reduce such complexity, OOD or CBD has been developed to divide and modularize concerns so that the development and maintenance of a program can be easier. However, crosscutting concerns such as error processing and logging that are operated as dispersed in several modules have been difficult to be treated with the previous methods. Thereby, a new paradigm appeared to solve it; that is the Aspect-oriented Programming (hereunder called as “AOP”). AOP separates core concerns belonging to business logic from crosscutting concerns, the nonfunctional functions, and provides ways to develop them in individual modules. This prevents modules from having close relationships with one another and provides ways to improve the developmental productivity of programs by reducing the complexity and increasing the reusability of them. This study suggests an AOP-based log framework that is usable in web applications and designs and realizes it as well. Moreover, in order to evaluate the performance of the proposed framework, this study measures the complexity of the program through applying the AOP-based log framework and general log framework separately to an example application, the library management program. Evaluating them comparatively, this article verifies if the suggested framework helps reduce the complexity of the program.

more