닷넷 프레임워크에서 클래스 최적화를 위한 추상구조트리 생성 및 크로스커팅 위빙 메커니즘

AST Creating and Crosscutting Concern Weaving Mechanism for Class Optimization in .NET Framework

  • 이승형 (경희대학교 컴퓨터공학과) ;
  • 박제연 (경희대학교 컴퓨터공학과) ;
  • 송영재 (경희대학교 컴퓨터공학과)
  • 발행 : 2010.02.28


엔터프라이즈 시스템은 점점 복잡해지고 대형화되고 있다. 시대적 흐름에 따라 재사용에 초점을 맞춘 객체지향 프로그래밍 방법으로 시스템을 개발하고 있다. 하지만, 객체지향 방법에서는 core class에 중복되는 코드가 삽입되기 때문에, 생산성 저하, 새로운 요구사항을 적용하기 어려운 문제가 발생한다. 이 단점을 해결하기 위하여, 메타데이터와 크로스커팅 개념을 적용하는 위빙 메카니즘을 제안한다. 클래스 최적화와 다른 언어사이의 통합을 위하여 다음의 방법을 사용한다. 리플렉션을 이용한 메타데이타 생성, 추상구조트리로의 변환, 그리고 XML로 명세된 크로스커팅 정보를 통한 매핑을 이용한다. 제안하는 방법을 이용하여, 기능의 분산과 코드의 혼란을 해결함으로서 클래스를 최적화 할 수 있다.

The enterprise system is becoming more complex and larger. With the changes of the times, the system is developing to object-oriented programming method(OOP). However, the same code inserts to the core class repetitiously in the OOP, that causes a decrease in productivity and a trouble of application of another requirement. To solve this weak point, we propose a weaving mechanism what applies to metadata and crosscutting concern. For a class optimization and an integration between different languages, we take the following way. This paper uses three ways, those are, metadata generation using reflection, transformation to Abstract Syntax Tree, and mapping through crosscutting information specified XML. Through the proposed theory, class optimization can be accomplished by solving a functional decentralization and a confusion of codes.



  1. R. Awais, G. Alessandro, and M. Ana, “Aspect-oriented software development beyond programming,” Proceedings of the 28th international conference on Software engineering, pp.1061-1062, 2006.
  2. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, and W. G. Griswold, “Getting started with aspectJ,” Commun. ACM, Vol.44, No.10, pp.59-65, 2001.
  3. H. Erik and H. Jim, “Advice weaving in AspectJ,” Proceedings of the 3rd international conference on Aspect-oriented software development, pp.26-35, 2004.
  4. H. Youssef and Constantinos A. Constantinides, “The development of generic definitions of hyperslice packages in Hyper/J,” ETAPS 2003 Workshop on Software Composition, pp.127-134, 2003.
  5. B. Jonas, “What are the key issues for commercial AOP use,” How does AspectWerkz address them&quest, Proceedings of the 3rd international conference on Aspect-oriented software development, pp.22-24, 2004(3).
  6. J. Nico, T. Eddy, S. Frans, and J. Wouter, “Adding dynamic reconfiguration support to JBoss AOP,” Proceedings of the 1st workshop on Middleware-application interaction in conjunction with Euro-Sys 2007, pp.1-8, 2007.
  7. L. John, "Cross-Language Load-Time Aspect Weaving on Microsoft’s Common Language Runtime,” Demonstration at the 1st International Conference on Aspect-Oriented Software Development, 2002(4).
  8. V. Safonov, “Aspect.NET- a Framework for Aspect-Oriented Programming for .Net platform and C# language,” .NET Developer's Journal, pp.28-33, 2005(7).
  9. W. Schult and A. Polze, “Aspect-Oriented Programming with C# and .NET," In 5th IEEE International Symposium on Object-oriented Real-time Distributed Computing, pp.241-248, 2002.