WebGL 프로젝트는 일반 웹 개발과 다릅니다. 기획 단계에서 놓치면 나중에 바꾸기 어려운 것들이 있습니다. 개발이 시작된 후에 "이거 바꿀 수 있나요?"라고 물었을 때, "구조를 다시 짜야 합니다"라는 답이 돌아오면 그때는 늦습니다.
기획 단계에서 결정해야 할 것
타겟 기기
누가, 어떤 기기에서 보느냐에 따라 기술적 설계가 완전히 달라집니다.
- 고성능 PC만: 고품질 렌더링, 고폴리곤 모델, 실시간 그림자 가능
- 모바일 포함: 모델 최적화 필수, 텍스처 압축, 그래픽 품질 제한
- TV/키오스크: 입력 방식(리모컨, 터치)에 따른 인터랙션 설계 필요
"일단 PC 기준으로 만들고 나중에 모바일도 되게 해주세요"는 비용이 크게 추가됩니다. 모바일을 고려하려면 처음부터 모바일 기준으로 설계해야 합니다.
솔직히 현실을 말씀드리면, 복잡한 3D 시뮬레이션을 제공하는 웹사이트 대부분은 모바일을 거의 포기합니다. 대중적인 서비스일수록 모바일 비중이 높은데, 3D가 무거우면 모바일에서 로딩이 안 되거나 프레임이 떨어져서 사용이 불가능합니다. 그래서 "PC에서 접속해주세요"라고 안내하는 사이트가 많습니다.
모바일까지 지원하려면 처음부터 모바일 GPU 한계에 맞춰 모델을 설계하고, LOD(Level of Detail), 텍스처 압축, 렌더 해상도 분리 같은 최적화를 기획 단계에서 잡아야 합니다. 이건 나중에 "모바일도 되게 해주세요"로는 해결할 수 없는 구조적인 문제입니다. 그리고 성능만의 문제가 아닙니다. 3D 뷰어에 색상 변경, 옵션 선택, 라벨 합성 같은 복잡한 UI가 붙으면, 모바일 화면이 너무 좁습니다. PC에서는 사이드 패널에 옵션을 쫙 펼쳐놓고 3D를 조작할 수 있지만, 모바일에서는 3D 뷰어와 UI가 화면을 서로 잡아먹습니다. 결국 모바일용 UI를 별도로 설계해야 하고, 이건 단순 반응형이 아니라 화면 구조 자체를 다시 짜는 작업입니다.
프로덕트 메이커는 LG ThinQ 프로젝트에서 TV, PC, 모바일 전 기기를 커버하는 WebGL 엔진을 개발한 경험이 있습니다. TV(webOS)라는 극한의 저사양 환경부터 모바일까지 — 기기별 성능과 화면 크기에 맞춰 3D와 UI를 최적화하는 노하우를 가지고 있습니다.
인터랙션 수준
사용자가 3D 콘텐츠와 어떻게 상호작용하는지를 정의해야 합니다.
- 관람형: 자동 회전, 간단한 드래그 회전. 가장 가볍고 빠릅니다
- 탐색형: 자유 회전, 줌, 특정 부분 클릭 시 정보 표시
- 조작형: 색상 변경, 부품 분해, 옵션 조합, 애니메이션 트리거
- 합성형: 고객의 브랜드 라벨을 제품에 실시간으로 입혀보는 것, 재질/소재를 바꿔보는 것. 단순 조작보다 렌더링 부하가 큼
한 페이지에 몇 개의 모델을 로딩할지
간과하기 쉽지만 성능에 결정적인 영향을 주는 요소입니다.
- 단일 모델: 제품 상세 페이지에 뷰어 하나. 가장 가볍고 안정적
- 복수 모델: 카탈로그 페이지에서 여러 제품을 3D로 보여주는 경우. 모델 수만큼 GPU 메모리를 먹음
- 공간 + 오브젝트: 방 안에 가구/가전을 배치하는 시뮬레이션. 공간 모델 + 배치 모델이 동시에 로딩
한 페이지에 3D 모델 3개를 동시에 로딩하는 것과 1개를 로딩하는 것은 성능이 3배 차이가 아니라, 경우에 따라 10배 이상 차이가 납니다. 기획 단계에서 "이 화면에 3D가 몇 개 보여야 하는가"를 확정해야 최적화 전략을 세울 수 있습니다.
수준이 올라갈수록 개발 복잡도와 비용이 기하급수적으로 올라갑니다. "일단 간단하게 시작하고 나중에 기능을 추가"하는 것은 가능하지만, 초기 설계에서 확장 가능성을 고려해야 합니다.
3D 모델 품질 기준
같은 제품이라도 품질 수준에 따라 모델 제작 비용이 크게 차이납니다.
- 형태 확인 수준: 제품의 전체 형태와 비율만 정확하면 됨
- 디테일 수준: 재질, 로고, 나사 같은 세부 요소까지 표현
- 포토리얼 수준: 실물과 구분하기 어려운 수준의 렌더링
비즈니스 목적에 맞는 수준을 결정해야 합니다. 산업용 설비 뷰어에 포토리얼 수준이 필요하지 않고, 럭셔리 제품 뷰어에 형태 확인 수준은 부족합니다.
로딩 전략
3D 콘텐츠는 데이터가 크므로 로딩 전략이 중요합니다.
- 프리로딩: 페이지 접속 시 전부 로드. 이후 경험은 부드럽지만 초기 대기 시간 있음
- 점진적 로딩: 저품질로 먼저 보여주고 점차 고품질로 전환
- 지연 로딩: 사용자가 특정 영역에 도달했을 때 로드
나중에 바꾸기 어려운 것들
렌더링 방식
실시간 렌더링(WebGL)으로 할지, 프리렌더링(이미지/영상)으로 할지는 초기에 결정해야 합니다. 프리렌더링으로 만들어놓고 "실시간으로 바꿔주세요"는 전면 재개발입니다.
모델 해상도 기준
저폴리곤 모델을 나중에 고폴리곤으로 바꾸는 것은 가능하지만, 원본 CAD 데이터가 있어야 합니다. 원본이 없으면 처음부터 다시 모델링해야 합니다. 기획 단계에서 향후 품질 업그레이드 가능성도 고려해야 합니다.
프레임워크 선택
Three.js, Babylon.js, 자체 엔진 등 어떤 프레임워크를 쓸지에 따라 이후 유지보수 방식이 결정됩니다. 나중에 프레임워크를 바꾸는 것은 코드를 다시 쓰는 것과 같습니다.
기획이 탄탄하면 개발이 빨라지고, 재작업이 줄고, 결과물의 완성도가 높아집니다.
*WebGL 프로젝트를 기획 중이시라면, 프로젝트 상담을 통해 문의해 주세요. 기획 단계부터 기술적 방향을 함께 잡아드립니다.*
WebGL,기획,3D프로젝트,프로젝트관리