ipc-implementation

메인 인덱스 | bob-yamong | GitHub

이 문서는 ipc-implementation 레포를 실제 디렉터리 구조 기준으로 다시 읽은 노트입니다. 이 레포는 하나의 IPC를 깊게 구현한 프로젝트라기보다, C sender와 Python receiver 조합으로 여러 IPC 방식을 나란히 시험해 보는 비교용 저장소에 가깝습니다.

한 줄 소개

ipc-implementation은 Socket, POSIX Message Queue, Shared Memory, Pipe, Named Pipe, Signal, Semaphore, Memory Map을 C/Python 조합으로 비교하는 IPC 실험 레포입니다.

기술 스택

  • Python
  • C
  • POSIX IPC
  • Unix/TCP Socket
  • posix-ipc, sysv-ipc

코드 기준으로 확인한 구조

  • 루트 아래에 Message Queue, Socket, Shared Memory, Pipe, Named Pipe, Signal, Semaphore, Memory Map 디렉터리가 따로 나뉘어 있습니다.
  • 각 디렉터리에는 보통 ipc_sender.cipc_receiver.py가 쌍으로 들어 있어 동일한 인터페이스를 방식별로 비교해 볼 수 있습니다.
  • 별도 패키지인 ipc_receiver/에는 IPCReceiver 추상 클래스, IPCHandler, 그리고 구체 receiver 구현이 모여 있습니다.
  • ipc_receiver/ipc_receiver.pyIPCHandler는 callback 등록과 receive_forever() 루프를 공통화해, 방식이 달라도 수신 측 사용 패턴을 맞추는 구조입니다.
  • README 예제도 IPCHandlerPosixMQReceiver를 조합해 콜백 기반 수신을 보여 줍니다.
  • requirements.txt에는 posix-ipc, sysv-ipc가 명시돼 있어 Python 쪽이 단순 스크립트가 아니라 실제 IPC 바인딩을 사용하는 실험이라는 점이 드러납니다.

주요 파일과 흐름

  • README.md: 환경 준비와 기본 사용 예시
  • ipc_receiver/ipc_receiver.py: 공통 추상화와 handler
  • ipc_receiver/posix_msg_receiver.py, socket_receiver.py, unix_socket_receiver.py: 방식별 Python receiver
  • 각 IPC 디렉터리의 ipc_sender.c: C sender
  • 각 IPC 디렉터리의 ipc_receiver.py: 방식별 수신 예시

포트폴리오 메모

이 레포는 제품 코드라기보다, 사용자 공간 통신 방식들을 비교하고 공통 수신 추상화를 시험해 보는 실험 저장소로 설명하는 편이 정확합니다. container-lifecycle-manager.md 같은 실제 런타임 관찰 도구와는 다르게, 여기서는 IPC 메커니즘 자체를 나눠 보는 것이 중심입니다.