
three.js란 무엇인가?
three.js는 웹 브라우저에서 3D 그래픽을 쉽게 구현할 수 있도록 도와주는 자바스크립트 라이브러리입니다.
웹에서 3D를 구현하려면 원래 WebGL이라는 저수준 그래픽 API를 직접 다뤄야 하는데, 이는 진입 장벽이 상당히 높습니다. three.js는 이 WebGL을 추상화하여, 비교적 간단한 코드만으로도 3D 씬(Scene), 조명(Light), 카메라(Camera), 모델(Model)을 구성할 수 있도록 만들어졌습니다.
쉽게 말해,
three.js = 웹용 3D 그래픽을 쉽게 만들 수 있게 해주는 도구라고 이해하시면 됩니다.

Three.js – JavaScript 3D Library
threejs.org
위 사이트는 Three.js 자바스크립트 3D 라이브러리입니다.
들어가시면 다양한 웹 3d를 직접 보고 움직여 볼 수 있습니다.
직접 확인하고 아이디어를 얻어 내가 개발하고자 하는 웹3D 구현에 참조하는 것도 좋습니다.
three.js가 왜 중요한가
three.js는 웹 브라우저에서 고품질 3D 그래픽을 구현할 수 있게 해주는 핵심 도구입니다.
별도의 프로그램 설치 없이 바로 실행할 수 있어 접근성이 뛰어납니다.
복잡한 WebGL을 직접 다루지 않아도 되어 3D 구현의 진입 장벽을 크게 낮춰줍니다.
AR·VR, 제품 시각화, 기술 설명 콘텐츠가 증가하면서 중요성이 더욱 커지고 있습니다.
three.js의 주요 장점
- 브라우저 기반 실행으로 배포와 접근이 간편합니다.
- WebGL을 추상화해 개발 난이도가 낮습니다.
- HTML, CSS, JavaScript와 자연스럽게 연동됩니다.
- glTF 등 실무용 3D 모델을 그대로 활용할 수 있습니다.
- 실시간 인터랙션 구현이 가능합니다.
- 엔진 의존도가 낮아 구조 설계가 자유롭습니다.
- 제품 뷰어, 시뮬레이션, AR·VR 웹 콘텐츠에 적합합니다.
three.js는 웹에서 3D 콘텐츠를 효율적으로 구현하기 위한 표준적인 선택지입니다.
가벼운 배포 구조와 높은 활용도로 인해 실무와 서비스 영역 모두에서 활용 가치가 높습니다.
three.js의 단점은 없을까?
three.js는 강력한 도구이지만, 모든 상황에 완벽한 해결책은 아닙니다.
웹 기반이라는 특성상 하드웨어 성능과 브라우저 환경의 영향을 크게 받습니다.
프로젝트 규모가 커질수록 구조 설계와 최적화에 대한 이해가 필요해집니다.
특히 실무 수준의 복잡한 3D 콘텐츠에서는 한계가 명확히 드러날 수 있습니다.
three.js의 주요 단점
- 대규모 씬에서는 성능 최적화 부담이 큽니다.
- 모바일 기기에서는 프레임 저하가 발생하기 쉽습니다.
- 물리 엔진, 애니메이션 시스템이 기본적으로 제한적입니다.
- 에디터가 없어 모든 설정을 코드로 직접 관리해야 합니다.
- 디버깅이 시각적으로 직관적이지 않은 편입니다.
- 고급 렌더링 효과 구현 시 구현 난이도가 급격히 올라갑니다.
- 엔진 기반 툴(Unity 등)에 비해 협업 구조가 불리할 수 있습니다.
three.js는 가볍고 유연한 웹 3D 구현에 강점이 있지만,
대규모·고사양·장기 프로젝트에는 추가적인 설계와 최적화 역량이 요구되는 도구입니다.
따라서 프로젝트 목적과 규모에 맞춰 선택하는 것이 중요합니다.
three.js로 무엇을 만들 수 있나?
three.js는 단순한 데모용 그래픽을 넘어서 실제 서비스에서도 폭넓게 사용됩니다.
- 웹 기반 3D 제품 뷰어
- AR·VR 콘텐츠의 웹 버전(WebXR 연계)
- 인터랙티브 웹사이트(스크롤, 마우스 반응)
- 게임 및 시뮬레이션
- 데이터 시각화(3D 차트, 맵)
- 메타버스·디지털 트윈의 프론트엔드
특히 별도의 프로그램 설치 없이 브라우저에서 바로 실행된다는 점이 큰 장점입니다.
three.js의 기본 구조 이해하기
three.js를 이해하려면 가장 핵심이 되는 4가지 요소를 먼저 아는 것이 중요합니다.
1. Scene (씬)
3D 공간 전체라고 생각하시면 됩니다.
모든 오브젝트, 조명, 카메라는 이 Scene 안에 배치됩니다.
2. Camera (카메라)
사용자가 3D 공간을 바라보는 시점입니다.
카메라의 위치와 각도에 따라 화면에 보이는 결과가 달라집니다.
3. Mesh (메시)
화면에 실제로 보이는 3D 오브젝트입니다.
Mesh는 Geometry(형태) + **Material(재질)**의 조합으로 만들어집니다.
4. Renderer (렌더러)
Scene과 Camera를 이용해 실제 화면에 그려주는 역할을 합니다.
three.js에서는 보통 WebGLRenderer를 사용합니다.
이 네 가지가 결합되어야 비로소 화면에 3D가 표시됩니다.

three.js는 어떻게 동작하나?
동작 흐름을 간단히 정리하면 다음과 같습니다.
- Scene 생성
- Camera 설정
- Geometry와 Material로 Mesh 생성
- Light 추가
- Renderer 생성
- 화면에 렌더링
- 애니메이션 루프 실행
이 구조는 이후 어떤 프로젝트를 하더라도 거의 변하지 않는 기본 골격이라고 보셔도 됩니다.
3D 모델도 불러올 수 있나?
네, 가능합니다.
three.js는 다양한 3D 파일 포맷을 지원합니다.
- glTF / GLB (가장 권장)
- FBX
- OBJ
- STL 등
특히 glTF/GLB 포맷은 웹 환경에 최적화되어 있어, 실무에서도 가장 많이 사용됩니다.
3ds Max, Blender, Maya 등에서 제작한 모델을 glTF로 익스포트한 뒤 웹에서 바로 불러올 수 있습니다.
조명과 재질 표현은 어느 정도인가?
three.js는 실시간 렌더링 엔진이기 때문에 오프라인 렌더러만큼의 퀄리티는 아니지만, 다음과 같은 표현은 충분히 가능합니다.
- PBR(Material 기반 물리 렌더링)
- 그림자(Shadow)
- 반사(Environment Map)
- 노멀맵, 러프니스, 메탈릭 맵
서브스턴스 페인터로 제작한 텍스처도 자연스럽게 연동할 수 있어, 실무 파이프라인과의 궁합도 좋은 편입니다.
텍스처 작업만 잘 한다면 충분히 저용량으로 고퀄리티의 웹 3D구현이 가능합니다.
다만 당연하게도 적은 용량의 수준높은 텍스처가 반영된 3D 작업을 하는건 그만큼 작업시간 할당을 해야한다는 점이죠.
입문자가 three.js를 배우기 좋은 이유
three.js는 초보자에게도 비교적 접근성이 좋습니다.
- HTML + JavaScript 기반이라 진입 장벽이 낮음
- 공식 문서와 예제가 매우 풍부함
- 커뮤니티 자료와 튜토리얼이 많음
- 결과물을 바로 브라우저에서 확인 가능
특히 3D 모델링 경험이 있는 분이라면,
씬 구성과 좌표 개념이 익숙해 학습 속도가 더 빠른 편입니다.
three.js와 다른 3D 기술의 차이점
간단하게 정리하면 다음과 같습니다.
- three.js: 웹에서 가볍게 3D 구현, 커스터마이징 자유도 높음
- Unity WebGL: 게임 엔진 기반, 무겁지만 기능 풍부
- Babylon.js: three.js와 유사하나 엔진 성향이 더 강함
웹 중심의 인터랙티브 3D라면 three.js가 가장 많이 선택됩니다.
three.js는 3D 모델링 경험자, AR·VR 작업자, 인터랙티브 웹에 관심 있는 분들에게 매우 유용한 도구입니다.
복잡한 WebGL을 직접 다루지 않고도, 브라우저 안에서 충분히 강력한 3D 표현을 구현할 수 있다는 점이 가장 큰 매력입니다.
'전문분야 (3D, 그래픽, 프로그래밍, AI, 디자인) > Web 3D 관련 공부' 카테고리의 다른 글
| WebGL이란 무엇인가, 웹에서 3D 그래픽이 구현되는 방식 (0) | 2026.01.02 |
|---|