Thinking Different





1. COM (Component Object Model)

COM은 클라이언트 프로그램과 오브젝 서버 프로그램간의 상호통신 방식을 정의한 모델입니다. 컴포넌트 객체 모델(COM)은 컴포넌트(코드의 조각들)의 생성 또는 다른 컴포넌트 및 애플리케이션과 상호작용 하는 기존 컴포넌트의 사용을 쉽게 만들어준다.

이들 컴포넌트가 다양한 컴퓨터 언어로 작성될 수 있다는 데도 이점이 있다. 최근에는 툴을 사용해 COM 객체를 생성하는 일이 간단해졌다.

 

2. DCOM (Distributed Component Object Model)

DCOM은 인터넷이나 LAN환경에서 서로 다른 컴퓨터끼리의 통신을 지원하는 분산확장형 COM 이다. 분산 COM(DCOM)은 간단히 말해서 네트워크 상에 있는 COM 이다.

다중 네트워크 트랜스포트(network transport)를 사용하면 다양한 인트라넷 상에서 DCOM을 사용할 수 있다. 네트워크 트랜스포트는 웹 브라우저에서 사용되는 HTTP처럼 네트워크가 말하는 언어다.

DCOM은 네트워크 상에 있는 어떤 컴퓨터에서도 운영할 수 있으며 거기에 있는 모든 다른 컴포넌트와 상호 작용할 수 있는 그런 컴포넌트를 생성할 수 있다.

 

3. COM+ (Component Object Model+)

COM+는 ...좀더 사용자의 편의를 더한 프로그램이고 언어 중립적이다. 다시 말해, 어떤 프로그래밍 언어도 사용할 수 있다.

예를 들어, MFC나 ATL로 작성된 COM 객체와 상호작용하는 Visual Basic 코드를 작성할 수 있다. COM을 확장한 기술 중 가장 최근의 것인 COM+는 개발자들이 COM을 좀더 쉽게 사용하게 할 목적으로 지난해 샌디에고에서 개최된 마이크로소프트 개발자 회의에서 처음 소개됐다. 

 

4. ATL (Active Template Library)

ATL은 C++ 또는 비쥬얼 C++를 이용하여 ASP코드나 AxtiveX프로그램 컴포넌트를 만들 때 사용되는 프로그램의 라이브러리이다. 마이크로소프트사는 이러한 컴포넌트 개발을 위해 ATL(Active Template Library)이라는 새로운 개발환경을 제공하는 데, 이러한 개발환경은 Visual C++ 5.0 이후부터 MFC(Microsoft Foundation Class)와 결합되어 본격적으로 사용되기 시작했다.

ATL(Active Template Library)이란 각종 컴포넌트를 제작할 때 필요한 여러 종류의 클래스들을 모아놓은 클래스 라이브러리(Class Library)로서, 라이브러리에 있는 모든 클래스들은 클래스 템플레이트(Template)로 구현되어 있다. 따라서 컴포넌트 제작할 때 ATL 개발환경을 사용하면 제작되는 컴포넌트는 이러한 클래스 템플레이트들을 상속받게 되는 데, 이러한 템플레이트들은 작고 빠르고 그리고 확장성을 갖는 COM 기반 컴포넌트들을 효과적으로 개발할 수 있게 해준다. 

 

5. ATL Server

ATL Server는 웹 어플리케이션과 웹 서비스를 만들 수 있는 ATL 클래스이다. 개발 언어는 C++를 사용하며 CLR을 대상으로 하지 않는 Unmanaged Code 형태이다. Unmanaged Code에 대해서는 .NET의 CLR이 garbage collection 작업을 하지 않기 때문에 개발자는 메모리 할당 후 반환 작업까지 책임을 져야 한다. 이러한 부담을 가지면서까지 Unmanaged Code를 사용해야 하는 경우가 있다. 우리가 지금까지 알아본 웹 어플리케이션이나 웹 서비스의 성능을 능가하는 서버 모듈이 필요할 때이다. ATL Server를 사용하면 초고성능의 서버 모듈을 만들 수 있다.