Fast campus의 광고 메일을 보다가 알게된 기술이 하나 있는데 React Three Fiber(R3F)라는 라이브러리이다.
R3F는 three.js를 위한 React 렌더러이다. Three.js의 모든 기능을 React 환경에서 쉽게 사용할 수 있게 해준다.
19년도에 처음 major 버전을 release 한 것으로 보아 나온지는 꽤 되었는데 그동안 모르고 있었다.
공식문서를 가보면 좌측 상단 로고 자리에 Pmndrs.docs가 보인다.
React Three Fiber, React Spring, Drei, Zustand, Jotai 등등 다양한 라이브러리를 개발한 오픈 소스 개발자 집단인 Poimandres 가 만든 것임을 알 수 있다.
R3F의 핵심 특징은 다음과 같다.
여기서 주목할 내용은 '추가 오버헤드 없이 React 외부에서 컴포넌트를 렌더링한다'이다.
위 문장을 좀 더 풀어보자면 다음과 같다.
웹에서 복잡한 3D 그래픽을 그리려면 CPU나 GPU와 같은 컴퓨터 자원을 사용하고 복잡하면 복잡할수록 자원 사용량 및 시간이 필요하다.
R3F는 React의 렌더링 방식(가상DOM) 및 렌더링 사이클 밖에서 3D 컴포넌트를 렌더링함으로써 3D 그래픽 렌더링에 필요한 자원을 더 적게 사용하고 더 빠르게 렌더링을 할 수 있도록 도와준다.
가상DOM이란? 가상 DOM(Virtual DOM)은 실제 화면에 보여지는 DOM의 복사본이며, React는 변경사항이 생길 때 먼저 가상 DOM에 적용한 후, 이를 실제 DOM에 업데이트합니다. 이 방식으로 브라우저의 렌더링 작업을 최적화하고, 애플리케이션의 성능을 향상시키는 데 도움이 됩니다.
요즘에 react로 개발한다고 하면 next.js는 이제 필수이다. pmndrs는 R3F를 next.js 환경에서 사용할 수 있도록 하는 starter를 제공한다.
아래 명령어로 next.js & R3F 프로젝트를 생성하자
yarn create r3f-app next my-app -ts
이 스타터를 통해 프로젝트를 구축하면 다음과 같은 내용이 세팅되어 있다.
프로젝트를 설치하고 yarn dev를 실행하고 브라우저에서 localhost:3000으로 이동했을 경우 다음과 같은 화면이 보인다면 성공적으로 프로젝트를 구축한 것이다.

다음 시간에는 첫 씬을 만들어보고 youtuebe에 있는 R3F 강의를 따라해보면서 차근차근 하나씩 알아가보자!