Three.js 기반 OBJ/STL 3D 모델링 뷰어와 2D 다각도 360도 스프라이트 뷰어, 뷰어 위 주석(Annotation) 시스템, 3계층 권한 관리를 통합한 완구·피규어 감수 데이터 아카이브 플랫폼 MVP를 React + Node.js + PostgreSQL 풀스택으로 설계·구현합니다.
Three.js 기반 OBJ/STL 3D 모델링 뷰어와 2D 다각도 360도 스프라이트 뷰어, 뷰어 위 주석(Annotation) 시스템, 3계층 권한 관리를 통합한 완구·피규어 감수 데이터 아카이브 플랫폼 MVP를 React + Node.js + PostgreSQL 풀스택으로 설계·구현합니다. 공고 핵심 요구사항인 Three.js WebGL 렌더링, 워터마크 오버레이, 협력사 권한 제어를 직접 반영한 맞춤 구현한 프로젝트입니다.
작업 범위
주요 업무




Web Worker 기반 비동기 파싱 전략을 설계해야 합니다
Frustum Culling 기반 핀 렌더 최적화 전략이 필요합니다
Redis 블랙리스트 또는 짧은 TTL 전략을 선택하는 설계 결정이 필요합니다
OBJ·STL 포맷 3D 파일을 브라우저에서 WebGL로 렌더링하고, 마우스 조작으로 360도 회전·확대·패닝을 지원하며 사용자 식별 워터마크 오버레이를 적용하는 메인 뷰어 화면입니다.
Three.js WebGLRenderer와 HTML Canvas 오버레이를 동일 컨테이너에 포지셔닝하여 3D 씬 위에 사용자 식별 워터마크를 실시간으로 합성하는 구조를 구현합니다. CSS pointer-events: none으로 뷰어 인터랙션 방해 없이 워터마크를 적용합니다.


3D·360도 뷰어 위 특정 위치 클릭 시 텍스트 메모를 입력하고, 주석별 댓글 스레드와 감수 완료 표시를 관리하는 피드백 협업 화면입니다.
Three.js Raycaster 교차점 좌표를 정규화하여 DB에 저장하고, 뷰어 재로드 시 동일 3D 좌표에 핀을 복원하는 주석 위치 영속 구조를 설계합니다. 카메라 뷰 변경과 무관하게 핀이 모델 표면에 고정되도록 Three.js 렌더 루프에서 핀 위치를 매 프레임 재계산합니다.


다각도 사진을 일괄 업로드하고 마우스 좌우 드래그로 사진 시퀀스를 전환하는 스프라이트 슬라이더 방식의 360도 뷰어와 워터마크 오버레이 화면입니다.
마우스 down-move-up 이벤트의 누적 deltaX 값으로 현재 프레임 인덱스를 실시간 계산하고, S3 pre-signed URL로 이미지를 순차 프리패치하여 드래그 중 로딩 끊김 없이 부드러운 360도 전환을 구현합니다.


외부 협력사의 회원가입 신청을 검토하고 관리자 승인·반려 처리, 내부직원·관리자·협력사 3계층 역할별 메뉴 접근 권한을 제어하는 권한 관리 화면입니다.
JWT 페이로드에 role 클레임을 포함하여 프론트엔드에서 메뉴·버튼 조건부 렌더링을 수행하고, Express 미들웨어로 API 엔드포인트별 역할 접근을 이중 검증하는 3계층 권한 구조를 설계합니다.


감수 데이터 도메인 분석, 3D 주석 좌표·협력사 권한·파일 메타 포함 PostgreSQL 테이블 12개 정의 및 인덱스 전략 수립
Three.js OBJLoader·STLLoader·OrbitControls 통합, Canvas 오버레이 워터마크 시스템, AWS S3 pre-signed URL 발급 API 구현 스프라이트 슬라이더 360도 뷰어 구현, Multer + S3 멀티파트 업로드 파이프라인, 다각도 사진 순서 관리 API 개발
Three.js Raycaster 주석 핀 시스템 구현, 댓글 스레드 API, JWT 역할 기반 권한 미들웨어, 협력사 승인 플로우 개발
3D 뷰어·360도 뷰어·주석·권한 통합 테스트, 대용량 OBJ 파일 렌더링 최적화, 브라우저 호환성 검증