반응형
모든 컴퓨터 기술이 그러하듯 그 기술을 공부하기에 앞서 그 배경을 아는 것은 매우 중요합니다. 그 배경이 있었기에 그러한 기술이 나온 것이고, 당연히 그 기술은 기 배경을 가장 잘 만족시킬 수 있는 기술인 것입니다.

 ATL/COM의 탄생배경을 이해하는 것은 단순히 왜 만들어졌는가가 아니라, 어떤 부분에 이 기술을 접목하는 것이 가장 효과적인가 하는 것과 어느 용도일때 가장 높은 생산성과 성능을 낼 수가 있을지를 알게되는 것입니다.


 COM(Component Object Model)은 현재 MS(Microsoft)진영에서 가장 크게 내세우고 밀고 있는 기술입니다. 그도 그럴것이 MS에 관련된 컴퓨터 공부를 엑셀정도만 해본 사람이라두 OLE(object linking and embedding )을 알고 있을것이고, 그로부터 이 COM이 나왔으니까요.


 사실 MS진영의 개발자로써 많은 사람들이 사용하고 들어보았을 여러가지 기술들이 모두 이 COM기반으로 이루어져 있습니다. 예를 들면 다음과 같은 것들이 있습니다.

 ADO DB, ActiveX, DirectX, Active Document.....


그러면 왜 MS는 이 기술을 밀고 있을까요? 대형 벤더인 MS의 나아가는 방향을 조금 살펴보면 이를 이해하기 쉽습니다. MS진영에서 최근 내세우고 있는 .net전략을 보면 소프트웨어 통합을 무지 강조한 걸 알 수 있습니다. .net에 대한 발표와 세미나등등에서 MS는 소스레벨에서의 언어들간의 통합이나 윈도우로 대표되는 운영체제로의 여러 기능들의 통합등을 내세우고 있습니다. 여기서 강조하는 것은 단순한 통합이 아니라 MS 제품군으로의 통합이며 MS제품의 독점을 의미합니다. 그리고, 그 독점을 가능하도록 돕는 기술, 및 제품들 - ADODB, DirectX, ActiveX등의 기술의 기반에는 COM이 있습니다.


 여기서 우리는 우리의 목적을 조금이나마 달성할 수 있게 됩니다. 앞으로 우리가 알게될 COM의 세계에서 COM은 MS제품군내에서 활용될때 가장 많은 지원을 받을수 있고, 가장 뛰어난 성능을 발휘할수 있을것이라는 걸요.


 그런데, 음.... COM의 배경에 대해서는 말씀드린바가 없네요. 이제부터 시작해보지요.

COM은 원래는 MS에서 제품들간의 데이터 및 객체 전송을 자유롭게 하기위해 개발되었던 OLE1.0,2.0으로부터 발전한 개념입니다. 소프트웨어 세상을 이끌었던 Object가 등장하고, 곧 이를 넘어선 Component와 Interface가 MS의 강력한 경쟁자인 SUN의 JAVA에 추가되고, OMG그룹의 CORBA가 등장하면서부터 MS는 이전의 단순 데이터 공유에 불과했던 OLE와 DDE등의 기술을 과감히 버리고 이를 한데 묶어서 COM과 DCOM을 내놓게 됩니다.


 여기서 우리는 또 한가지르 발견할 수 있습니다. COM은 자바와 CORBA와의 경쟁을 위해 보다 강력히 통합되고 관리되었으므로 당연히 그 기능을 담고 있으며 당연히 상당히 많은 부분이 그 개념이 포함되어 있습니다. Interface및 IDL(Interface Definition Language)가 포함되었고, Distributed Computing의 개념이 포함되어 있습니다.


다음시간에는 강력한 ATL/COM의 장점에 대해 이해해보겠습니다.

반응형

+ Recent posts