정리

[Win32] IPC - #1 정의

저장소/VC++
[출처] 윈도우즈 API 정복, 김상형 지음

두 프로그램이 상호 통신하며 정보를 교환하는 방법을 IPC(InterProcess Comunication)라고 한다. 문자 그대로 프로세스간의 통신 방법이다.

IPC 방법을 선택하기 위해 고려해야 할 요소는 다음과 같은 여러 가지가 있다.

1. 네트워크 지원이 필요한가? 곧 컴퓨터의 경계를 넘어서는 통신인가?
2. 통신 대상이 다른 운영체제에서 실행되는 프로그램인가? 곧 플랫폼 경계를 넘어야 하는가?
3. 통신 대상이 고정되어있는가 아니면 불특정 다수와 통신해야 하는가?
4. 통신 속도가 중요한가 아니면 느려고 상관없는가?
5. 일회적인 교환인가 지속적인 교환인가?
6. 양방향 통신인가 아니면 단방향 통신인가?
7. 통신의 신뢰성 및 보안성이 요구되는가?

이런 요소들을 모두 고려하여 적절한 방법을 선택하기 위해서는 각 방법의 원리와 장단점을 잘 이해하고 있어야 한다.
Win32 환경에서 사용가능한 IPC 방법에는 다음과 같은 것들이 있다.

메시지
사용자 정의 메시지로 정보 교환. 길이에 제약이 있다.
클립보드
중앙 저장소를 통한 대량의 정보 교환. 일반적인 용도로는 쓸 수 없다.
DDE
DDE 메시지를 사용한 지속적인 정보 교환.
파일 맵핑
파일 맵핑을 이용한 메모리 공유. 번거롭다.
메일슬롯
메일슬롯 사용
파이프
파이프 사용
윈속
윈속 사용
RPC
원격 함수 호출 사용
COM
컴포넌트 오브젝트 모델

IPC는 프로세스간에 정보를 교환하기만 하면 되는 것이므로 이 목적을 이룰 수만 있다면 무엇이든지 IPC라고 할 수 있다. 예를 들어 IPC.txt파일에 교환할 정보를 쓰고 읽는 다던가 약속된 레지스트리, 또는 INI 파일을 사용하는 방법도 IPC라고 할 수 있다.

'저장소 > VC++' 카테고리의 다른 글

[Win32] Service - #4 서비스 제어  (0) 2009.05.13
[Win32] Service - #3 서비스 설치  (0) 2009.05.13
[Win32] Service - #2 서비스 생성  (0) 2009.05.13
[Win32] Service - #1 정의  (0) 2009.05.13
[Win32] IPC - #2 Message(메시지)  (0) 2009.05.12