피드로 돌아가기
Dev.toInfrastructure
원문 읽기
웹 스택 제거를 통한 IPC 지연시간 150만 배 단축 및 30MB 초경량 IDE 구현
V.E.L.O.C.I.T.Y.-OS: Ditching the Web Stack & The 30MB Standalone IDE (Part 3)
AI 요약
Context
VS Code 확장 프로그램 구조의 TypeScript 기반 JSON-RPC 직렬화와 Electron의 과도한 메모리 점유로 인한 성능 병목 발생. 특히 Agent 핫 패스 내 JSON 텍스트 파싱으로 인한 마이크로초 단위의 사이클 낭비가 심각한 제약 사항으로 작용함.
Technical Solution
- JSON 직렬화를 대체하는 Neural Document Architecture(NDA) 바이너리 포맷 정의 및 도입
- C# MemoryMarshal 및 ReadOnlySpan을 활용해 메모리 버퍼에서 .ndf 파일을 직접 매핑하는 Zero-Allocation 읽기 구조 설계
- Electron WebView와 Extension Host 경계를 제거하고 Rust 기반의 Native IDE로 전면 재구축
- 공유 메모리 공간 내 Arc 구조를 통해 직렬화 과정 없는 직접적인 Agent IPC 통신 구현
- Rust-native Piece Table 도입을 통한 텍스트 버퍼 커밋 프로세스 최적화
- Git 트랜잭션을 활용한 스테이징 기반 쓰기 구조로 JIT 컴파일 및 보안 검증 실패 시 즉각적인 Rollback 체계 구축
실천 포인트
- 고빈도 데이터 교환 시 JSON/XML 대신 Memory-mapped binary format 검토 - 프로세스 간 통신 비용이 병목인 경우 Shared-memory 기반의 데이터 구조(Arc 등) 적용 고려 - GC 정지 시간이 임계 경로에 영향을 주는 경우 RAII 기반의 결정론적 메모리 관리 언어로의 전환 검토 - 대규모 파일 수정 시 안전성 확보를 위해 Transient Git Transaction 구조 도입