아래는 '마이크로소프트웨어' 에서 발췌한 내용이다. 저자와 기사명이 없다.

프레임워크 종류 
일반적으로 프레임워크는 애플리케이션 프레임워크를 말한다.

아래는 이 애플리케이션 프레임워크의 범주아래에 몇가지 기준에 따라 분류해 보기도 한다.

"System Infrastructure Framework"

시스템의 인프라스트럭쳐의 효과적 개발을 위한 프레임워크. OS 나 커뮤니케니션 인프라, 사용자 인터페이스, 언어처리 툴과 같은 애플리케이션을 이식성 좋고 효과적으로 개발하게 해준다. TAO 나 프레임워크로 제공되지는 않는다. 자바 기본 패키지가 여기에 속한다.

"Middleware Integrated Framework"

분산된 애플리케이션이나 컴포넌트들의 통합에 사용되는 프레임워크.프레그래머들이 동일한 단일 환경에서 작업하는것과 같은 S/W 인프라스트럭쳐 제공함으로써 프로그램 제작 편이하게.ORB 나 MOM 이 있다.

"Enterprise Application Framework"

비즈니스 도메인(통신,항공,금융등)에서 사용할 애플리케이션을 개발하기 위한 프레임워크. 대형 비즈니스 어플리케이션이 이 Application Framework 기반으로 작성된다. CMS 나 ERP 프로임워크가 대표적 예이다.

패턴

특정 도메인 영역에서 자주 발생하는 문제와 이에 대한 해결책을 형식을 가지고 정리한것.

아키텍처 패턴, 분석 패턴, 설계 패턴 등 적용 분야 다양.

패턴이 추상화된 구조나 설계등에 대한 개념 모델이다. 디자인의 재사용을 제공하고

반면에 F/W는 실제 구현된 무엇이라는 점에서 차이. F/W는 구현 코드의 재사용을 제공

즉, 어떤 문제 영역에 대해 잘 설계된 재사용 가능한 디자인인 패턴을 구현하는 모듈이 프레임워크이며 여기에 대입하게 된다.

F/W 는 디자인 패턴 실제로 구현한 결과물이며, F/W 는 패턴을 통해 기술하면서 문서화 된다.

즉, 잘 만들어지 F/W 는 내부에 유명한 잘 구현된 패턴이 있고, F/W 설명할때 디자인 패턴들을 소개하는 경우 많다. 즉 J2EE 아키텍처, JUnit 설명서 등이 있다.

그러나, 패턴은 다음 3가지 점에서 F/W 와 다르다.

1. 패턴은 추상적 무엇이며, F/W는 실제 구현된 어떤것. F/W 는 코드로 구현되며, 패턴은 추상화된 디자인이다. 즉 패턴은 샘플코드 정도가 있을뿐

2. 디자인 패턴은 F/W보다 훨씬 작은 개념. 통상 하나의 F/W는 여러 패턴으로 구성된다

3. 디자인 패턴은 보다 일반적이고, F/W는 대부분 특정 애플리케이션 도메인 영역에 특화된다.

클래스 라이브러리

애플리케이션은 여러 클래스의 상호작용으로 그 기능이 수행되는데, 특정 기능들을 수행하는 클래스를 클래스 라이브러리, 툴킷이라 한다. 볌용으로 사용할 수있으며, 재사용가능한 연관된 클래스 묶음.

리스트, 테이블 스택 드으이 자료구조를 구현한 Collection Library, STL, IO 스트림 라이브러리 가 그 예이다.

일반적인 기능만 제공하므로, F/W 와 다르다. 즉, 잘 만들어진 클래스 라이브러리를 사용함으로 F/W 가 만들어진다.

또한, 큰 차이는 제어권한의 위치다. Class Library 는 사용자 코드에 의해 필요시 호출되고, F/W 는 "Flow" 가 시작하여 사용자 등록한 핫 스팟 모듈을 호출한다. 이를 역제어 (Inversion of Control) 라 한다.

컴포넌트

표준 정의된 컨테이너 규약하에서 독립적으로 사용가능한 소프트웨어 모듈.

기능은 인터페이스로 정의되며, 내부 구현은 감추어져 있다. F/W 가 애플리케이션 기반 구조에 초점이라면, 컴포넌트는 컨테이너 라하는 기반 구조에서 작동한는 모듈에 촛점을 맞춘 개념.

F/W 와 Component 의 Container 는 애플리케이션을 이루는 기반 구조라는 점에서 유사. F/W 또한 등록한 사용자 정의 확장 모듈을 F/W에서 재사용 가능하기 때문에 Conponent 와 형태가 유사

이때문에 이 둘을 혼용하거나 분류하기 어려워짐.

컴포넌트도 Container-Component 관계 구조나 Container, Component 각각의 내부 구조 구현하는데 F/W를 사용하기도 함. F/W는 핫스팟, 콜드스팟 구현단위나 핫 스팟의 인터페이스 설정에 Component 개념을 사용

이런 관계로 일반적으로 F/W 가 오래 사용되어 기반 구조가 안정화되고, 그 F/W 를 확장해서 구현한 모듈이 많아지면, 그 자체가 컴포넌트와 컨테이너가 된다.

by 용보더 2011. 7. 13. 09:03