Skip to content

ARD-0001 — V8 최적화 정렬 및 2026 아키텍처 동향 반영

항목내용
날짜2026-03-20
상태완료
결정자2davi

배경

ARD-0000의 구현이 완료된 후, 이 라이브러리가 2026년 프런트엔드 생태계에서 어떤 포지셔닝을 가져야 하는지와 구체적인 최적화 방향을 재검토하였다.

검토 항목

Signals 기반 상태 관리와의 비교

2025/2026년 프런트엔드 생태계는 Signals(SolidJS, Angular Signals)와 Zustand, Jotai 같은 경량 원자 스토어가 주류를 이루고 있다. Signals는 UI 컴포넌트의 가시성 또는 로컬 상태를 원시 값 수준에서 추적하고 렌더링을 최적화하는 데 탁월하다.

결론: 이 라이브러리의 지향점은 다르다. 백엔드에서 내려온 깊게 중첩된 JSON DTO를 온전히 유지하면서 그 내부 프로퍼티 변화를 추적하고 HTTP 메서드를 분기하는 것은, 아키텍처적으로 Proxy 패턴이 합리적인 선택이다. 이 라이브러리는 UI 프레임워크를 대체하는 것이 아니라, 백엔드와의 데이터 동기화 계층(Data Layer) 에서 동작하는 솔루션이라는 포지셔닝을 유지한다.

Dual Package 문제

CJS와 ESM 듀얼 패키지를 지원할 경우, 같은 패키지가 두 번 로드되어 두 개의 BroadcastChannel 인스턴스가 생성되는 Dual Package Hazard 가 발생할 수 있다. Node.js 22부터는 ESM을 require() 할 수 있으므로 CJS 지원의 필요성이 줄었다.

결론: 빌드 결과물에 CJS 번들을 유지하되, "type": "module" 선언과 "sideEffects": false 로 소비자 환경에서 ESM이 우선 사용되도록 유도한다.

결정 사항 요약

ID결정문서
IMPL-001Dirty Checking 기반 HTTP 분기 알고리즘상세 →
IMPL-002Optimistic Update 롤백 메커니즘상세 →
IMPL-003Microtask 기반 브로드캐스트 배칭상세 →
IMPL-004소스 디렉토리 구조 재편상세 →
IMPL-005CI/CD 파이프라인 구축상세 →

테스트 케이스 매트릭스

이 결정들의 검증을 위해 45개의 단위 테스트 케이스가 작성되었다. 레이어별 분류: Core(15), Domain(19), Network(4), Plugin(7). 14개 케이스는 VitePress Playground 컴포넌트와 연결되어 문서 내에서 인터랙티브하게 시연된다.

결과

Vitest 79/79 테스트 통과. semantic-release를 통해 v0.7.0으로 NPM 배포 완료.

Released under the ISC License.