반응형
한동안 글을 올리지 못했습니다.

요즘 다른 일로 인해서 이쪽에 별로 관심을 두지 못하다보니^^.


장점중에 위치 독립성에 대해 쓰기로 했던거 같은데.....


뭐 형식없이 두서없이 아는대로 쓰는거니까.....


뭐 보시는 분이 가져갈만큼 가져 가십시오.....


저번에 언어 독립성에 대해 얘기했던거 같은데,


실용적인 측면에서 가장 큰 장점은 언어 독립성과 위치 독립성이라는 겁니다.


ATL/COM으로 완성된 파일은 다음과 같은 확장자를 갖게 됩니다.


DLL,EXE 그리고, 가끔 COM규약을 따르는 것으로 VBX의 뒤를 이어 나온 OCX형태도 있습니다.


이들은 기능을 수행할수 있는 바이너리고, 바이너리가 되었기 때문에 언어 독립성을 갖는 것은


당연한 것이죠. 또한 만들어진 DLL,EXE에는 포함된 COM객체의 인터페이스 정보를 포함하기


때문에 같은 바이너리라 해도 일반 DLL보다 사용하기가 용이한 것이지요.


위치 독립성에 대해 얘기해보도록 하지요.


위치 독립성이란 것은 말 그대로 완성된 DLL및 EXE가 어느 위치에 있어도 그 객체를 사용할 수


있다는 겁니다. 어느정도냐면 다른 컴퓨터에 있는 경우에도 그 서비스를 사용할 수가 있습니다.


정규 DLL과 같은 일반적인 경우 이를 참조하는 실행파일과 같은 경로에 있거나


윈도우가 정한 특정한 폴더(ex,C:\Windows\system32)에 있어야만 포함된 서비스를 사용할


수 있습니다. 그런데 ATL/COM은 아니라는 겁니다. 신기하죠?


어떻게 이런 일이 가능할까요? 바로 레지스트리에 그 정보를 기록하기 때문입니다.


어떻게 그것을 기록하고 어떠한 종류가 있는지는 나중에 설명하겠습니다.


어찌됐던간에 프로그램은 레지스트리에서 관련 ATL/COM객체를 찾아서 그 서비스를 사용하도록


되어있습니다. 이런 분들이 있겠지요.


 그게 왜 장점이야?


사실 뭐 일반적인 DLL처럼 같은 폴더에 넣으면 해결될 문제이긴 합니다만, 여러가지 경우에 이


기능은 매우 강력한 기능일 수 있습니다.


단순히 내가 원하는 폴더에 ATL/COM객체를 정리해서 넣을 수 있다는 단순한 것부터 해서


ATL/COM이 분산 컴퓨팅을 실현할때 매우 중요한 역할을 하는 기능입니다.


분산 컴퓨팅이란 개념은 쉽게 말해서 여러대가 일을 나누어서 한다는 의미입니다.


어떤 프로세스가 어떠한 서비스를 요청할때 그 서비스가 다른 컴퓨터에 있다면


다른 컴퓨터가 연산하여 그 결과만을 처음의 프로세스에게 전달합니다.


ATL/COM객체는 다른 컴퓨터에 있더라도 그 서비스를 사용할 수 있기 떄문에


이것이 가능해 지는 것입니다.


 저의 경우에도 낮은 사양의 여러대의 피씨를 이용하여 프로젝트를 수행해야 할 경우가 있었는데,


이에 대해 ATL/COM객체를 사용했었습니다.


오늘은 여기까지 하고요. 다음에는 본격적으로 COM에 대한 개념에 대해 설명하겠습니다.


아 그리고, COM에 대한 개념에 대한 이해를 위해 객체지향 프로그래밍 개념과 인터페이스 기반의


프로그래밍 개념에 대한 이해는 필수 입니다.

반응형

+ Recent posts