피드로 돌아가기
Dev.toInfrastructure
원문 읽기
COM의 시스템 전역 객체 관리 메커니즘 ROT 분석
Inside the Running Object Table: COM's Hidden Registry of Live Objects
AI 요약
Context
COM 인터페이스와 Reference Counting 중심의 공개 API만으로는 해결 불가능한 프로세스 간 객체 공유 문제 존재. 개별 객체 인스턴스에 대한 시스템 전역적인 식별 및 접근 체계의 부재로 인한 통신 오버헤드 발생.
Technical Solution
- 시스템 전역 Registry 역할을 수행하는 Running Object Table(ROT) 도입을 통한 Live Object 관리
- Class 정보나 Factory가 아닌 실제 Instantiated Object의 참조값만 저장하는 고효율 구조 설계
- Moniker 기반의 객체 식별 체계를 통해 이름 기반의 객체 검색 및 연결 메커니즘 구현
- GetObject()와 같은 고수준 API의 하부 기반이 되는 객체 위치 확인 로직 제공
- Socket이나 Named Pipe 없이 Windows 환경에서 IPC 패턴을 지원하는 가벼운 통신 경로 확보
- 클라이언트가 신규 객체를 생성하기 전 ROT를 선제적으로 확인하여 중복 인스턴스 생성 방지
실천 포인트
- 프로세스 간 공유가 필요한 싱글톤 성격의 객체 설계 시 전역 레지스트리 패턴 검토 - 객체 생성 비용이 높은 경우, 기존 활성 인스턴스를 조회하는 Lookup 메커니즘 우선 적용 - 외부 스크립트나 자동화 모델 노출이 필요한 시스템의 경우 Moniker 기반 식별자 설계 고려