StratCraft

인터랙티브 Q&A

아키텍처, 성능, C++23 기법, 프로젝트 로드맵을 다루는 182개의 전문가 답변.

자주 묻는 질문

NexusFIX를 만든 동기는 무엇인가요? 그냥 QuickFIX를 사용하지 않은 이유는?
QuickFIX는 C++98/03 관용어를 중심으로 설계되었습니다: 가상 디스패치, 메시지당 힙 할당, 문자열 기반 필드 저장. 이러한 패턴은 서브마이크로초 지연 요구사항과 근본적으로 양립할 수 없습니다. 저희는 QuickFIX가 설계될 당시 존재하지 않았던 C++23 기능을 활용하여 처음부터 설계했습니다.
NexusFIX의 대상 사용자는 누구인가요?
결정론적인 서브마이크로초 FIX 메시지 처리가 필요한 퀀트 트레이딩 회사와 인프라 팀. 구체적으로: 코로케이션 전략을 운영하는 회사, 맞춤형 트레이딩 게이트웨이를 구축하는 팀, 현대 성능 기법을 연구하는 C++ 엔지니어.
NexusFIX는 어떻게 힙 할당 제로를 달성하나요?
원본 버퍼의 std::span<const char> 뷰가 std::string 복사를 대체합니다. 사전 인덱싱된 배열이 std::map을 대체합니다. std::pmr::monotonic_buffer_resource가 아레나 할당을 제공합니다. 결과: 핫 패스에서 malloc 호출 제로, 맞춤형 할당기 계측으로 검증됨.
NexusFIX가 사용하는 C++23 기능은 무엇인가요?
오류 처리를 위한 std::expected (핫 패스에서 예외 없음), 제로 카피 데이터 뷰를 위한 std::span, 컴파일 타임 인터페이스 검증을 위한 concepts, 컴파일 타임 연산을 위한 consteval, 분기 힌트를 위한 [[likely]]/[[unlikely]].
SIMD 파싱은 어떻게 작동하나요?
AVX2 명령어가 32바이트를 한 번에 로드하고 벡터화 비교로 SOH(\\x01) 구분자를 병렬로 찾습니다. 이는 바이트 단위 스캔보다 약 13배 빠릅니다. 이 기법은 simdjson에서 영감을 받아 FIX 프로토콜 의미론에 맞게 조정되었습니다.
지원하는 FIX 버전은 무엇인가요?
FIX 4.4는 완전히 지원되며 프로덕션에서 가장 일반적입니다. FIX 5.0 + FIXT 1.1도 4.4 대비 2% 오버헤드만으로 완전히 지원됩니다. 구조 인덱스는 버전에 독립적 — 필드 스캔은 FIX 버전 전반에서 동일하게 작동합니다.
NexusFIX는 프로덕션 준비가 되었나요?
NexusFIX는 활발하게 개발 중이며 아직 프로덕션 트레이딩 환경에 배포되지 않았습니다. 벤치마크는 CPU 고정 및 캐시 워밍이 된 통제 환경에서 측정되었습니다. 프로덕션 강화는 별도의 엔지니어링 작업입니다.
NexusFIX와 Fix8의 차이점은 무엇인가요?
Fix8(C++11)은 객체 풀과 제로 카피 기법을 사용합니다. NexusFIX는 커스텀 구현 대신 C++23 표준 라이브러리 기능(PMR, std::span, std::expected)을 활용하고, Fix8에 없는 SIMD 가속 파싱을 추가했다는 점에서 다릅니다.