^(코딩캣)^ = @"코딩"하는 고양이;

COM의 소개(파트 2) - COM 서버의 이면 (1)

API/COM
2020. 10. 7. 17:00

COM의 소개(파트 2) – COM 서버의 이면

본 게시물은 ‘codeproject.com’에 게시된 글 ‘Introduction to COM Part II - Behind the Scenes of a COM Server’을 번역한 것입니다.

원 게시물은 https://www.codeproject.com/Articles/901/Introduction-to-COM-Part-II-Behind-the-Scenes-of-a에 게재되어 있습니다. 최대한 원문에 적힌 의도를 반영하고자 하였으나, 우리말로 읽었을 때 보다 자연스럽게 하고자 부득이 어순과 어휘를 조정한 부분도 있음을 양해 바랍니다.

또한 본 게시물에서 언급하고 있는 예제 소스 코드는 Visual C++ 6.0을 기준으로 작성되어 있기 때문에 후속 버전의 Visual Studio(또는 Visual Studio .NET)에서 자동 생성되는 COM 코드와는 다소 차이가 있음을 감안하고 읽으시기 바랍니다.

  1. COM의 소개(파트 2) – COM 서버의 이면 (1)
  2. COM의 소개(파트 2) – COM 서버의 이면 (2)
  3. COM의 소개(파트 2) – COM 서버의 이면 (3)
  4. COM의 소개(파트 2) – COM 서버의 이면 (4)
  5. COM의 소개(파트 2) – COM 서버의 이면 (5)
  6. COM의 소개(파트 2) – COM 서버의 이면 (6)
  7. COM의 소개(파트 2) – COM 서버의 이면 (7)
  8. COM의 소개(파트 2) – COM 서버의 이면 (8)
  9. COM의 소개(파트 2) – COM 서버의 이면 (9) [完]

COMIntro2_src.zip
0.02MB

COMIntro2_demo.zip
0.04MB

 

본 게시글의 목적

필자의 첫 번째 COM 소개 글로써, 필자는 COM을 이제 막 배우기 시작하였거나, 기초를 이해하고자 하는 프로그래머들을 위한 튜토리얼을 작성하였습니다. 본 게시글에서는 서버 사이드 측면에서 COM을 살펴보고, 여러분이 직접 COM 인터페이스와 COM 서버를 작성하기 위해 필요한 단계들에 대해 설명할 것입니다. 물론 COM 라이브러리에서 호출했을 때 COM 서버에서 어떤 일들이 일어나는지도 자세히 살펴볼 것입니다.

 

도입

독자 여러분이 이미 필자의 이전 글을 읽어 보셨다면, 여러분은 클라이언트로서 COM을 사용할 때 어떤 것들이 포함되어야 하는지에 대해 정통할 것입니다.

이제 COM을 다른 측면에서 접근해 볼 차례입니다. 이미 컴파일되어 숨어있는 COM 서버입니다. 필자는 이제 아무 클래스 라이브러리도 포함되어 있지 않은 백지 상태의 C++ 언어 프로젝트에서부터 어떻게 COM 서버를 작성하는지에 대해 차근차근 설명하겠습니다.

물론 요즘에는 이러한 접근법이 큰 필요성은 없습니다만, 컴파일되어 숨게 되는 COM 서버를 만드는데 있어 전체적인 코드를 살펴보는 것은, COM 서버에서 일어나는 모든 일들을 확실히 이해하는데 가장 좋은 방법입니다.

본 글에서는 여러분이 C++ 언어를 습득하였다고 보고, 또한 필자가 앞서 적은 글을 통해 COM에서 사용하는 용어와 개념들을 숙지하였다고 보고 내용을 작성하겠습니다. 본 글은 다음과 같은 절(section)으로 구성되어 있습니다.

 

《COM 서버 훑어보기》

COM 서버에 필요한 기초 요구 사항들을 설명합니다.

 

《서버 수명 관리》

COM 서버가 메모리에 적재되는 기간이 어떻게 제어되는지에 대해 설명합니다.

 

《IUnknown으로부터 인터페이스 구현하기》

C++ 클래스에서 인터페이스의 구현을 어떻게 작성하는지 보여주고, IUnknown에 포함된 메소드들의 목적에 대해 설명합니다.

 

《CoCreateInstance의 내부》

독자 여러분이 CoCreateInstance를 호출하면 어떤 일들이 일어나는지에 대해 살펴보겠습니다.

 

《COM 객체를 만드는 클래스팩토리》

여러분의 클라이언트 프로그램이 사용할 수 있도록 COM 객체가 생성되는 과정에 대해 설명합니다.

 

《간단한 사용자 인터페이스》

이전 절들에서 설명한 개념들을 활용하는 예제 코드입니다.

 

《우리가 만든 COM 서버를 사용하는 COM 클라이언트》

우리가 만든 COM 서버를 테스트할 수 있는 간단한 COM 클라이언트 예제입니다.

 

《기타 세부 사항》

소스코드와 디버깅에 대한 참고 사항입니다.

 

카테고리 “API/COM”
more...