레거시 Win32/MFC 트레이딩 시스템은 왜 장 시작 9시에 멈추는가?
20년 넘게 진화해 온 대규모 Win32/MFC 데스크톱 트레이딩 플랫폼에서 개장 직후 초당 수만 건의 시세 폭주 시 발생하는 UI 프리징의 근본 원인을 아키텍처 레벨에서 해부합니다.
C++ 섹션에 발행된 전체 아티클 및 엔지니어링 노트 아카이브입니다.
20년 넘게 진화해 온 대규모 Win32/MFC 데스크톱 트레이딩 플랫폼에서 개장 직후 초당 수만 건의 시세 폭주 시 발생하는 UI 프리징의 근본 원인을 아키텍처 레벨에서 해부합니다.
HTS(홈트레이딩시스템)와 같은 초고속 금융 소프트웨어에서 장 시작 직후나 급격한 시세 변동이 일어나는 '장 폭발' 순간, 초당 수천 건 이상의 실시간 패킷이 쏟아져 들어옵니다. 이때 수신부에서 매 패킷마다 화면 UI에 PostMessage를 날리면 윈도우 메시지 큐가 포화 상…
증권사 HTS/MTS, 금융 트레이딩 시스템 및 실시간 대용량 패킷 처리 엔진에서는 세미콜론(;)이나 쉼표(,)로 구분된 수백~수만 개의 종목 코드(Codes) 문자열을 1초에도 수십~수백 번씩 분리해야 하는 상황이 빈번합니다. 하지만 레거시 MFC 환경에서 무심코 사용하는 A…
2026년 8월 23일 일요일, 웹 기술의 발전 속도는 눈부시지만 대용량 실시간 데이터 시각화, 복잡한 3D 그래픽 엔진, 고빈도 금융 차트 연산, 브라우저 내 AI 추론 같은 극한의 고성능 작업에서는 여전히 순수 자바스크립트(JS)만으로는 명확한 한계에 부딪힌다. 최근 주요 …
2026년 8월 22일 토요일, 최근 C++ 생태계에서 가장 뜨거운 기술적 변화를 꼽으라면 단연 C++26 정적 리플렉션(Static Reflection, P2996)의 도구 체인 상용화 소식이다. GCC 16의 실험적 지원에 이어, 최근 JetBrains의 대표적인 C++ I…
2026년 8월 22일 토요일, 대규모 C++ 프로젝트(HTS 클라이언트, 게임 서버/엔진, 금융 트레이딩 시스템 등)를 운영하다 보면 누구나 한 번쯤 마주하는 악몽 같은 상황이 있다. 운영 배포 후 며칠 뒤 고객사나 사용자로부터 긴급 크래시 덤프(Crash Dump, .dmp…
금융/증권 HTS 시스템이나 초고속 메시징 애플리케이션처럼 단 한 번의 예외 상황도 허용되지 않는 견고한 C++ 시스템을 구축할 때 가장 중요한 요소 중 하나는 프로세스 간 통신(IPC, Inter-Process Communication)과 OS 레벨의 메모리 수명 관리 원리입…
지난 글에서는 HTS 데이터 파이프라인의 병목 현상을 해결하기 위해 std::shared_ptr의 커스텀 디리터와 오브젝트 풀(Object Pool)을 결합한 Lock-free 아키텍처의 뼈대를 설계했습니다. 하지만 실제 증권사 실무 환경에서는 이보다 훨씬 복잡한 예외 상황들을…
최근 사내 HTS 프로그램의 아키텍처를 Direct2D와 멀티코어 병렬 처리 기반으로 모더나이징하는 작업을 구상하면서, 가장 깊게 고민했던 부분은 '데이터 파이프라인의 병목 현상'이었습니다. 실시간으로 수신되는 방대한 양의 시세 데이터를 여러 화면 컴포넌트들이 동시에 받아가서 …
24시간 무중단으로 수많은 주문과 시세 데이터를 처리해야 하는 증권사 HTS/MTS 서버나 클라이언트 시스템에서 메모리 누수(Memory Leak)는 단순한 버그를 넘어 서비스 중단으로 이어질 수 있는 치명적인 결함입니다. 과거 C++03 시절에는 new로 동적 할당한 후 예외…