작성날짜 : 2011-03-15 |
Component 란?
Binary Level 로써 동일한 방식으로 실행되고, 상호 운영이 가능하며, 위치에 구애됨이 없이, 이진 코드로서 독립적으로 구성된 실행파일 또는 DLL이다.
Binary Level이 안되면, 결합이 불가능하다.
- Component는 Complie된 Binary 파일
- Component를 구성하고 사용하려면 특별한 추가 구현이 요구됨.
- 한 덩어리의 소프트 웨어를 분리했을 때 개념상의 추상적 단위
-> 하나의 COM 객체 = Component
다수의 COM 개체 = Component
(소프트 웨어를 기능별로 분리했을 때 하나의 기능을 다 수의 COM 객체로 구현할 수 있기 때문)
Component Library
- 컴포넌트 라이브러리에서 컴포넌트를 선택하여 개발 가능.
레고 조립의 개념과 동일.
1) 동적 링크
- Application이 실행하는 동안 EndUser가 Application에서 사용하는 Component를
대체하도록 함.
- 정적 링크시 재 컴파일 및 배포 문제 발생
- 내부적으로 DLL 사용이유
2) 캡슐화
- 새로운 컴포넌트는 기존의 컴포넌트와 같은 방법으로 연결되어야 함.
- 컴포넌트를 새로이 작성하고, 컴파일하고, 링크해야 하는 문제 발생.
COM에서의 Client와 Server
- Client : Component를 사용하는 프로세스, Service를 제공받는다.
- Server : exe 파일 또는 DLL로 구현된 Component, Service를 제공한다.
COM
MS사 기술들의 근간의 기술을 제공한다.
Component를 만드는 방법에 대한 구체적인 명세.
Active X Control
HTML에서는 할 수 없는 Client PC를 제어 할 목적으로 만들어짐.
Windows Application(Rich Client 라고도 함)
Monolithic Application
속도가 빠른 대신에, 변화에 대처하기가 힘들다.
- Application의 변화 문제
한 덩어리의 Application을 컴포넌트로 분리시키면 사용자의 변화를 수용하는
것이 한결 수월해진다.
Component Application
여러 덩어리로 나누어 질수록 속도는 느려짐.
하지만 패치나 새로운 기능들 추가하는 건 더 쉬움.
Component Programming
한 덩어리의 소프트웨어를 여러 개의 작은 덩어리로 나누어 Programming.
'Programming > COM' 카테고리의 다른 글
[COM] Registry (0) | 2015.05.11 |
---|---|
[COM] Create GUID (0) | 2015.05.11 |
[COM] 재정의(overriding) (0) | 2015.05.11 |
[COM] 가상 함수 테이블(virtual function table) (0) | 2015.05.11 |
순수 가상 함수(pure virtual function) (0) | 2015.05.11 |