1. 들어가며
- 기존 대신증권 Creon API 활용한 트레이딩 시스템 개발 보유
- 실시간 시세 데이터와 주문 처리를 한 시스템에서 처리하는 것이 목표였음
2. 문제 상황 및 초기 해결방안
3. 새로운 도전과제
- VM에서 수집한 시세 데이터를 실시간으로 Host에 전송 필요
- 최소한의 지연시간으로 안정적인 데이터 전송이 핵심 과제
4. Hyper-V 아키텍처 이해
기본 구조

파티션 구조
통신 구조
- VMBus (Virtual Machine Bus)
- 파티션 간 고속 통신 채널
- 메모리 공유 방식 사용
- VSP/VSC 구조
- VSP: 부모 파티션의 자원 제공자
- VSC: 자식 파티션의 자원 소비자
- VMBus를 통한 요청/응답 처리
5. 시도한 통신 방식들
1. Hyper-V Socket
- VMBus 기반의 고속 통신 방식
- MS에서 제공하는 공식 API
- 커널 모드 접근 없이 VMBus 기능 활용 가능
- 가장 효율적인 통신 방식으로 확인
2. TCP/IP & UDP
- 기본적인 네트워크 통신
- 구현은 쉬우나 상대적으로 느림
3. Memory Mapping File
- 직접적인 공유 메모리 사용 불가
- 각 파티션이 격리된 메모리 공간 사용
- 하이퍼바이저가 직접 접근 제한
- 우회 방법 구현
- Host에서 네트워크 공유 폴더 생성
- 공유 폴더에 Memory Mapping File 생성
- VM에서 네트워크 경로로 접근
4. Named Pipe
- 직접 연결 불가 (보안 격리)
- COM 포트 통한 우회 구현
- Hyper-V 가상 COM 포트 활용
- COM 포트 내부적으로 Named Pipe 사용
5. VMBus Direct
- 커널 모드 접근 필요
- 높은 특권 수준(ring 0) 요구
- 커널 드라이버 개발 필요
- 일반 개발자 접근 어려움
6. KVP (Key Value Pair)
- Hyper-V Data Exchange Service 활용
- 문자열 형태의 키-값 데이터 교환
- VMBus 통한 기본 통신 방식
- 네트워크 연결 불필요
6. 성능 비교


Note : named pipe 관련 코드에는 오류가 있어 해당 결과는 참고하지 마시기 바랍니다.
7. 결론 및 향후 계획
- 테스트 결과 Hyper-V Socket이 가장 빠른 성능 보여줌
- 그러나 새로운 발견
- 전 종목 데이터 수집의 현실적 한계 인식
- 이베스트 증권의 xing API 발견
- 실시간 시세 제한 없음
- VM 구성 없이 직접 처리 가능
- 향후 xing API 기반으로 시스템 재구성 예정
8. 시사점
- 기술적 우회 방법을 찾는 것도 중요하지만
- 근본적인 해결책을 위한 대안 탐색도 필요
- 때로는 복잡한 구조보다 단순한 해결책이 더 효과적