화면이 꺼져도, 앱을 강제 종료해도 멈추지 않는 타이머 — Android Doze·iOS 무음 루프와 워치 양방향 실시간 동기화 정복기
절대 목표 시각(targetEndEpochMs) 영속화 아키텍처, iOS 인메모리 무음 PCM WAV 백그라운드 루프, Android PARTIAL_WAKE_LOCK, 그리고 Apple Watch(WCSession)와 Galaxy Watch(Wearable Data Layer)…
DevLog 섹션에 발행된 전체 아티클 및 엔지니어링 노트 아카이브입니다.
절대 목표 시각(targetEndEpochMs) 영속화 아키텍처, iOS 인메모리 무음 PCM WAV 백그라운드 루프, Android PARTIAL_WAKE_LOCK, 그리고 Apple Watch(WCSession)와 Galaxy Watch(Wearable Data Layer)…
증권사 대규모 HTS(홈트레이딩시스템)는 20년 이상 누적된 C++/MFC 코드베이스 위에서 작동합니다. 최근 실시간 시세 데이터 처리를 위해 도입한 신규 캐시 모듈을 탑재한 후, "화면을 아무것도 열지 않고 HTS 메인 창을 닫았는데도 작업 관리자에 프로세스가 영구 잔류하는 …
C++에서 객체를 파일이나 네트워크 패킷, JSON 포맷으로 변환하는 직렬화(Serialization) 작업은 언제나 고통스러운 타협의 연속이었습니다. 복잡한 매크로를 클래스 내부에 강제 삽입(Intrusive)하거나, 별도의 외부 스키마 파일(.proto, .fbs)을 작성해…
금융 HTS 및 고빈도 트레이딩(HFT) 시스템에서 시세 및 호가창 데이터는 나노초(ns) 단위로 읽히는 초저지연(Low-Latency)의 핵심 경로입니다. 기존의 std::map은 노드 기반 Red-Black Tree 구조로 인해 메모리 파편화와 잦은 캐시 미스(Cache M…
C++에서 비동기 및 병렬 처리는 오랫동안 개발자들을 괴롭혀온 난제였습니다. std::thread, std::future, std::promise는 힙 메모리 할당 강제, 비동기 작업의 합성(Composition) 불가, 스레드 블로킹, 취소(Cancellation) 메커니즘의…
초저지연(Low-Latency)과 무결성이 생명인 금융 HTS(홈트레이딩시스템) 및 고빈도 트레이딩(HFT) 인프라에서 C++26은 가장 혁신적인 전환점을 제시합니다. 특히 언어 차원에서 표준화된 계약(Contracts - P2900)과 정적 리플렉션(Static Reflect…
HTS(홈트레이딩시스템)와 같은 초고속 금융 소프트웨어에서 장 시작 직후나 급격한 시세 변동이 일어나는 '장 폭발' 순간, 초당 수천 건 이상의 실시간 패킷이 쏟아져 들어옵니다. 이때 수신부에서 매 패킷마다 화면 UI에 PostMessage를 날리면 윈도우 메시지 큐가 포화 상…
증권사 HTS/MTS, 금융 트레이딩 시스템 및 실시간 대용량 패킷 처리 엔진에서는 세미콜론(;)이나 쉼표(,)로 구분된 수백~수만 개의 종목 코드(Codes) 문자열을 1초에도 수십~수백 번씩 분리해야 하는 상황이 빈번합니다. 하지만 레거시 MFC 환경에서 무심코 사용하는 A…
2026년 8월 22일 토요일, 대규모 C++ 프로젝트(HTS 클라이언트, 게임 서버/엔진, 금융 트레이딩 시스템 등)를 운영하다 보면 누구나 한 번쯤 마주하는 악몽 같은 상황이 있다. 운영 배포 후 며칠 뒤 고객사나 사용자로부터 긴급 크래시 덤프(Crash Dump, .dmp…
새 맥북을 사서 마이그레이션 어시스턴트로 기존 맥의 데이터를 그대로 옮겼습니다. 겉보기엔 모든 게 멀쩡한데, 사진 앱에서 사진 한 장을 편집하려고 하니 다운로드 진행 원이 거의 다 찬 상태로 몇 분째 멈춰 있습니다. 회전 한 번 하려고 했을 뿐인데 사진을 회전시키는 중... 진…