Octane - React 프로그래밍 모델을 직접 DOM 코드로 컴파일하는 UI 프레임워크
요약
Octane은 React와 유사한 방식으로 컴포넌트를 작성하지만, 가상 DOM(Virtual DOM) 없이 직접 DOM 코드로 컴파일하는 JavaScript UI 프레임워크입니다. Inferno의 후속 프로젝트로, 익숙한 React API를 제공하면서도 런타임 부담을 줄이는 데 초점을 맞췄습니다. 코드상의 호출 위치 기반 Hook 사용 및 확장 문법 등을 지원합니다.
핵심 포인트
- 가상 DOM 없이 직접 DOM 코드로 컴파일하여 성능 최적화
- React와 유사한 Hooks(useState, useEffect 등)를 제공하며 호환성 확보
- Hook을 호출 순서가 아닌 코드상의 위치로 구분하여 사용 가능
- JSX/TSX 기반에 @for, @if 등의 확장 문법 지원
- React처럼 컴포넌트와 Hooks로 화면을 작성하되,
가상 DOM 없이 직접 DOM을 갱신하는 코드로 컴파일하는 JavaScript UI 프레임워크 - Inferno를 만든 Dominic Gannaway가 개발하는
Inferno의 후속 프로젝트
useState
, useEffect
, Context, Portal, Suspense, Transition 등 익숙한 React API를 제공하지만 일부 동작에는 차이가 있음
- 컴포넌트는 React처럼 다시 실행되며,
컴파일된 DOM 갱신 코드와 키 기반 목록 비교로 런타임 부담을 줄임
useEffect
, useMemo
, useCallback
등의 의존성 배열은 컴파일러가 자동으로 추론하며, 직접 지정할 수도 있음
- Hook을 호출 순서가 아닌
코드상의 호출 위치로 구분해 조건문 안이나 조기 반환 뒤에서도 사용 가능 - 일반 JavaScript 반복문 안의 상태 Hook은 제한되며,
@for
에서는 항목마다 별도의 상태를 유지
- 기존 JSX/TSX를 사용할 수 있고,
.tsrx
에서는 @for
, @if
, @switch
, @try
같은 확장 문법도 제공
- React의 합성 이벤트 대신
브라우저의 실제 DOM 이벤트를 사용하며, 입력할 때마다 반응하려면onInput
을 사용
- 스트리밍 SSR, 서버에서 만든 HTML에 클라이언트 동작을 연결하는 hydration과 지연 hydration 지원
ReactCompat
과 OctaneCompat
으로 Octane과 React 컴포넌트를 서로의 앱 안에서 실행 가능
- 자체 렌더러에는 클래스 컴포넌트, React Server Components, 합성 이벤트 시스템을 포함하지 않음
- MIT 라이선스
댓글과 토론
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기