프로젝트 소개

Million.js는 npm 패키지로 배포되는 React 성능 도구다. React를 대체하는 것이 아니라 React와 함께 작동하며, 컴파일러와 최적화된 가상 DOM 구현을 제공한다. 이 프로젝트가 밝힌 접근 방식은 재조정 중에 전체 요소 트리를 비교하는 방식에서 벗어나, 변경된 값과 연관된 DOM 노드를 직접 업데이트하는 코드를 생성하는 것이다. README는 카운터 예제로 이를 설명한다. React는 일반적으로 컴포넌트 스냅샷을 렌더링하고 이전 JSX 트리와 새 JSX 트리를 비교하지만, Million.js는 개념적으로 카운트 값이 변경될 때만 문단을 업데이트하는 검사를 생성한다. 이 프로젝트는 이를 재조정을 선형 트리 순회에서 대상화된 상수 시간 업데이트로 전환하는 것이라고 설명한다. Million.js가 React 컴포넌트를 최대 70% 더 빠르게 만들 수 있다고 명시하며, 이를 뒷받침하는 결과로 js-framework-benchmark를 링크한다. 이 성능 수치는 여기서 독립적으로 검증된 것이 아니라 프로젝트의 주장이다. 설정은 Million.js CLI를 통해 자동화되도록 설계되었으며, `npx million@latest`로 실행할 수 있다. CLI는 패키지를 설치하고 프로젝트를 구성한다. 문서, 대화형 데모, 설치 도움말, Discord 커뮤니티, 이슈 트래커, 기여 가이드가 README에서 링크되어 있다. 저장소는 `/packages` 아래의 모노레포로 구성되어 있다. 주요 모듈은 다음과 같다. - `million`: 핵심 가상 DOM 구현. - `react` 및 `react-server`: React 호환성 계층. - `compiler`: React와 함께 Million.js를 사용하기 위한 컴파일러. - `jsx-runtime`: Million.js 코어용 JSX 런타임. - `types`: 공유 TypeScript 타입. README는 성능 문제를 찾고 수정하기 위한 관련 서비스인 Million Lint와 블록 가상 DOM 내부 구조를 설명하는 블로그 게시물도 링크한다. Million.js는 MIT 라이선스이며 blockdom, Voby, ivi, Preact, React, Turbo 및 기타 프로젝트에서 영감을 받았다고 밝히고 있다.