소프트웨어 재사용과 Framework
http://www.frameworkslab.com/library/soft_reuse.htm
|
. Software 재 사용(Reuse) 기술과 Framework |
|
|
|
프레임워크의 정의를 이해하기 위해서는 Software Reuse 기술을 먼저 이해해야 한다. Software의 Reuse 기술은 90년대초 객체 지향 시대에서부터 형성되어서 현재까지도 많은 개발 패러다임에서 주요한 기술로 자리잡고 있다. 초기 Copy & Paste level의 재사용에서 상속(inheritance)과 다형성(polymorphism)등 객체(Object)의 시대로, 그리고 점차 software 시스템의 복잡도와 크기, 통합의 요구가 증가하게 됨에 따라 이제는 하나의 Black Box 단위로 재사용하는 Component 기반의 소프트웨어 개발 방법이 패러다임의 메인 흐름으로 자리잡고 있다. |
|
|
|
|
|
그림. Paradigm of Software Development |
|
위 그림에서 볼 수 있듯이 Framework 기술은 Software Reuse 분야에서 발전하고 있는 기술이다. 하나의 단일 Application을 개발하는 것이 아니고 다수의 Application을 제작하는 것에 목적을 두고 여기에 소요되는 생산성과 품질을 높이기 위해서 Application 마다 들어가는 필수적인 코드와 알고리즘, Object 와 Common Component를 가지고 어느 정도 이미 구성을 해서 Semi Application 레벨로 혹은 완성도를 높여서 Application Generator에 가깝게 만든 것을 프레임워크(Application Framework)라 부른다. 이러한 패러다임의 변화에 따라 프로그래밍 언어도 계속 해서 옷을 바꾸어서 서비스 하고 있다. 예를 들어 구조적 분석 설계 기법이 주된 시대에서는 C나 Pascal 등의 언어가 이의 개념을 서비스 하고 객체의 시대 에서는 추상화, 상속, 다형성 등을 지원하기 위한 C++이나 Java, Eiffel 같은 언어가 등장 하였다. SW Reuse에 대한 요구가 높아지면서 C++에서 발전된 Microsoft사의 COM/DCOM 기술, Java 진영에서는 프로그램 내에서 재 사용 가능한 Java Beans나 분산 환경에서 재 사용 가능한 EJB 기술이 등장 하게 되었다. 그렇다면 Framework의 구현체는 무엇이 있을까. 거의 Product Platform에 유사한 Microsoft사의 .NET Framework와 Java 에서는 Struts와 Turbine등 Open과 상용을 합친다면 Web Application Frameworks만 하더라도 50여개 이상이 존재한다. |
|
|
|
2. Frameworks 정의와 구성 요소 |
|
“A framework is a set of cooperating classes that make up a reusable design for a specific class of software.”- R. Johnson Framework의 정의는 GoF Pattern으로 유명한 Ralph Johnson교수의 정의가 많이 인용된다. Software의 구체적인 부분에 해당하는 설계와 구현을 재 사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것이 프레임워크다 라고 밝히고 있다. Framework은 semi-application이다 보다 더 명확한 정의를 위해서Framework이 아닌 것을 들어 보자면, |
|
|
|
그림. Component Framework의Conceptual Diagram |
|
위 에서도 언급했듯이 프레임워크의 구성요소는 최종 타겟이 되는 애플리케이션의 유형에 따라서 그 구성 클래스와 컴포넌트가 다양하다. 대부분의 차세대 애플리케이션이 엔터프라이즈 환경의Web Architecture를 가지고 가기 때문에 현재 주로 나오고 있는Framework은 Enterprise(분산) 환경의 Web Application Frameworks이 대 부분이며 기본적인 구성 컴포넌트가 다음과 같다. |
|
|
|
그림. General Framework의 구성 패키지 |
|
|
|
|
|
그림. J2EE 기반의Component Architecture |
|
|
|
3. Application Framework의 분류 체계 |
|
프레임워크를 분류하는 기준은 크게 application의 유형에 따라서 나뉠수 있고, 기타 특정 기능들에 국한된 유틸리티 형태의 프레임워크와 전체 플랫폼을 구성하는 Enterprise Framework 으로도 다양한 관점으로 분류가 가능하다. ㄱ. Application Specific Frameworks |
|
|
|
4. Reference |
|
- Struts |
History
Last edited on 11/05/2007 14:14 by benelog


Comments (0)