변경 로그

STP 파일 뷰어의 새로운 기능과 개선사항 추적

주요 버그 수정 및 성능 개선

v1-0-7

중대한 가져오기 및 측정 문제를 수정하고 파일 로딩 성능을 최대 95% 최적화

2025/09/02

🔧 크리티컬한 시스템 수정 및 성능 돌파구

플랫폼 안정성 달성 - 최종 통합 문제를 해결하고 주목할 만한 성능 향상 실현:

이번 릴리스는 사용자 경験에 큰 영향을 미쳤던 여러 심각한 문제들을 해결합니다:

가져오기 기능 수정

해결된 문제: "첫 번째는 작동하지만, 이후에는 실패하는" 문제를 완전히 해결

  • 근본 원인: 글로벌 window.OV 객체가 컴포넌트 정리 중에 부적절하게 지워짐
  • 솔루션: 글로벌 라이브러리 객체를 유지하기 위한 리소스 관리 수정
  • 영향: 가져오기 및 새 파일 기능이 매번 일관되게 작동
  • 사용자 경헙: 진행 표시기를 포함한 완전한 업로드 흐름 복원

측정 도구 수정

해결된 문제: 3D 모델에 측정 마커가 표시되지 않음

  • 근본 원인: 키보드 이벤트 리스너가 측정 도구 상태와 충돌
  • 솔루션: window.OV 글로벌 객체를 사용한 직접적인 공식 API 호출 구현
  • 영향: 첫 번째 클릭에서 측정 마커 정확히 표시
  • 기술적 세부사항: 키보드 단축키와 도구 활성화 간의 상태 관리 충돌 제거

모바일 추가 메뉴 수정

해결된 문제: 전체 화면 모드에서 모바일 기기의 추가 메뉴 버튼이 반응하지 않음

  • 근본 원인: 전체 화면 컨테이너와의 z-index 레이어링 충돌
  • 솔루션: 드롭다운 메뉴의 z-index를 적절한 층(z-10000)으로 상승
  • 영향: 모바일 사용자가 모든 도구 모음 기능에 접근 가능
  • 추가 개선: 모바일 화면의 버튼 레이아웃 및 텍스트 레이블 최적화

🚨 상세 개발 프로세스 및 디버깅 기록

최종 기술적 교훈

디버깅 전략 개선:

  1. 기본 검사 우선: 먼저 가장 기본적인 문제(객체 존재, API 사용 가능성)를 확인해야 함
  2. 복잡한 가설 피하기: 처음부터 복잡한 원인을 가정하지 말고, 대부분 가장 단순한 이유가 진실임
  3. 단계적 조사: 한 번에 한 변수만 변경하여 문제의 근본 원인 파악
  4. 의존성에 대한 깊은 이해: 서드파티 라이브러리의 로딩 메커니즘과 초기화 프로세스를 주의 깊게 읽기

개발 모범 사례:

  1. 공식 API 최우선: 공식 API를 우선시하고 기존 기능의 재구현 방지
  2. KISS 원칙: 단순하고 직접적인 솔루션이 가장 효과적. 3줄의 코드가 300줄의 복잡한 구현보다 우수
  3. 점진적 개발: 먼저 가장 단순한 버전으로 실현 가능성 검증 후 점진적 최적화
  4. 문제 문서화: 디버깅의 각 시도 결과를 상세히 기록하여 동일한 실수 반복 방지

성능 최적화

파일 로딩에서 주목할 만한 성능 개선 달성:

파일 로딩 속도

결과: 모든 파일 크기에서 60-95% 성능 개선

파일 크기이전현재개선율
1MB840ms39ms95.4% 빠름
10MB1,380ms255ms81.5% 빠름
100MB6,780ms2,415ms64.4% 빠름

최적화 기법

  • I/O 감소: 3개의 파일 읽기 작업을 1개로 통합
  • Promise 최적화: 불필요한 Promise.resolve 래퍼 제거
  • 진행 계산: 매핑 로직 단순화
  • 메모리 관리: 여러 메모리 누수 소스 수정

사용자 경헙 개선

  • 통합된 경헙: 전체 화면 및 일반 모드의 동작 일치
  • 일관된 UI 흐름: 가져오기 및 새 파일의 완전한 업로드 경헙 제공
  • 더 나은 오류 메시지: 오류 분류 및 사용자 친화적 설명 개선
  • 모바일 최적화: 터치 장치용 반응형 디자인 강화

📱 공유 기능의 완전한 개발 히스토리와 아키텍처 진화

FloatingShareBar 3버전 아키텍처 진화 실무

배경: 사용자 요구사항을 바탕으로 왼쪽에 떠있는 공유 도구 모음을 설립하여 3버전에 걸친 핵심 아키텍처 진화를 경험

v1.0: 기본 플로팅 공유 바 아키텍처 (35분 구현)

디자인 결정 과정:

  • 위치 선택: 페이지 좌측 가장자리에 고정, 수직 중앙 배치 - UX 트레이드오프
  • 플랫폼 선택: 사용자 그룹 분석을 바탕으로 7개 핵심 소셜 플랫폼 결정
  • 반응형 전략: 데스크톱 표시(lg:block)/모바일 숨김 - 디자인 트레이드오프

기술 구현 도전 과제:

/* 고정 위치 지정 및 레이어 관리 */
.floating-share-bar {
  position: fixed;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 40; /* 중요한 레이어 디자인 */
}

핵심 기술 결정사항:

  • React-Share 통합: 자체 공유 기능 대신 검증된 라이브러리 선택
  • 아이콘 디자인: 40px 원형 소셜 아이콘의 사용성 최적화
  • 호버 효과: scale(1.1) 상호작용 피드백 디자인

v1.1: More 버튼 및 대화상자 통합 (35분 빠른 대응)

사용자 니즈 주도:

  • 문제: 기본 7개 플랫폼으로는 사용자의 다양한 공유 니즈를 만족시킬 수 없음
  • 해결 방안: 완전한 공유 대화상자에 연결되는 "More" 버튼 추가
  • 사용자 경험 플로우: 빠른 공유 + 완전한 선택의 이중 경험

기술 구현 복잡성:

// 상태 관리 도전
const [showMoreDialog, setShowMoreDialog] = useState(false);

// More 버튼의 특별한 처리
const platforms = [
  // ... 기존 7개 플랫폼
  {
    name: 'More',
    isMore: true,
    onClick: () => setShowMoreDialog(true)
  }
];

통합 도전 과제:

  • 컴포넌트 통신: FloatingShareBar와 SimpleShareDialog 간 상태 동기화
  • 시각적 일관성: More 버튼과 소셜 아이콘의 통일된 디자인
  • z-index 관리: 대화상자의 올바른 레이어 표시 보장

v1.2: 아키텍처 레이어 문제의 근본 해결 (30분 수정)

문제 진단 과정:

문제 증상: FloatingShareBar가 메인 페이지에 표시되지 않음
아키텍처 분석: FloatingShareBar가 ViewerView 내부에 배치됨
상태 의존성: ViewerView는 loading/viewing 상태에서만 렌더링
메인 페이지 상태: STPViewer 기본값은 upload 상태, UploadView 표시
근본 원인: FloatingShareBar가 잘못된 컴포넌트 레이어에 위치

현재 아키텍처 문제:

메인 페이지 → HeroSection → HeroStpViewer → STPViewer
├── upload 상태 → UploadView (FloatingShareBar 없음) ❌
├── loading 상태 → ViewerView (FloatingShareBar 있음) ✅  
└── viewing 상태 → ViewerView (FloatingShareBar 있음) ✅

해결 아키텍처:

STPViewer (새로운 FloatingShareBar 레이어)
├── upload 상태 → UploadView + FloatingShareBar ✅
├── loading 상태 → ViewerView + FloatingShareBar ✅
└── viewing 상태 → ViewerView + FloatingShareBar ✅

중요한 코드 수정:

// src/components/stp-viewer/stp-viewer.tsx
return (
  <div className={cn('stp-viewer-container', className)}>
    {/* 상태 관련 주요 콘텐츠 */}
    {renderContent()}
    
    {/* 글로벌 플로팅 공유 도구 모음 */}
    <FloatingShareBar file={viewerState.file} />
  </div>
);

SimpleShareDialog의 실용적 개발 지혜

UI 일관성 문제의 체계적 발견

비교 분석 방법: 메인 페이지 모드 vs 전체화면 모드 간 체계적 비교를 통해 기능 불일치 발견:

기능메인 페이지 모드전체화면 모드상태
New File일관됨
Screenshot일관됨
Share누락불일치

코드 레벨 분석:

// viewer-view.tsx:730-766 - 메인 페이지 도구 모음
const toolbarButtons: ToolbarButton[] = [
  { id: 'new-file', /* ... */ },
  { id: 'screenshot', /* ... */ },
  // ❌ Share 버튼 누락
];

// FullscreenToolbar.tsx:132-139 - 전체화면 모드 도구 모음  
const secondaryTools: ToolbarButton[] = [
  {
    id: 'share',
    label: t('toolbar.share'),
    // ✅ 존재하지만 기능 미구현
  },
];

React-Share 기술 조사의 현실주의

기술 한계의 깊은 발견:

// ✅ React-Share 실제 능력
- 링크 공유: 모든 플랫폼이 URL 공유 지원
- 텍스트 콘텐츠: 제목, 설명 등 텍스트 매개변수 지원
- 소셜 플랫폼 리다이렉트: 플랫폼의 공식 공유 페이지 열기
- 외부 의존성 제로: 서드파티 SDK 로딩 불필요

// ❌ React-Share 기술 제약
- 로컬 파일 공유 지원 없음: 스크린샷, 문서 직접 공유 불가
- 이미지 업로드 지원 없음: 주류 플랫폼은 직접 이미지 업로드 미지원
- 공개 이미지 URL만 지원: 소수 플랫폼이 공개 접근 가능한 이미지 링크 요구
- 백엔드 기능 없음: 파일 업로드, 단축 링크 생성 처리 불가

개발 계획의 현실적 조정:

  • 이상적 계획: 5일, 복잡한 아키텍처, 다중 컴포넌트 디자인
  • 현실적 조정: 1.5일, 단일 컴포넌트 디자인, 기술 위험 제로
  • 핵심 결정: 비현실적 기능 환상 포기, 실현 가능한 솔루션에 집중
  • 아키텍처 단순화: SimpleShareDialog 컴포넌트만 생성

최소 아키텍처의 설계 지혜

컴포넌트 전략:

src/components/stp-viewer/
├── shared/                          
│   └── SimpleShareDialog.tsx       # 통합 공유 대화상자 (유일한 컴포넌트)
├── viewer-view.tsx                 # Share 버튼 추가
└── fullscreen/
    └── FullscreenToolbar.tsx       # 실제 공유 기능 연결

설계 원칙의 실천:

  • 단일 컴포넌트 생성: 과도한 엔지니어링 방지
  • 새 Hook 생성 안함: 컴포넌트 내에서 직접 로직 구현
  • 기존 상태 재사용: 글로벌 스토어 확장 대신 로컬 상태 사용
  • 플랫폼 우선순위: Tier1/2/3 현실적 계층 전략

공유 기능 45분 빠른 향상 실습

문제의 정밀한 진단

문제 1: disabled 버튼 로직 오류

// 잘못된 로직
{
  id: 'share',
  disabled: !isViewerReady, // ❌ 페이지 링크 공유는 모델 로딩을 기다릴 필요 없음
}

// 올바른 로직  
{
  id: 'share', 
  disabled: false, // ✅ 페이지 공유 기능은 항상 사용 가능해야 함
}

근본 원인 분석:

  • 기술적 오류: 모델 로딩 전 isViewerReadyfalse
  • 논리적 오류: 페이지 링크 공유 기능은 3D 모델 상태에 의존하지 않아야 함
  • 사용자 영향: 메인 페이지에서 공유 기능을 전혀 사용할 수 없음

문제 2: 불충분한 플랫폼 지원에 대한 빠른 대응

  • 사용자 피드백: 4개 플랫폼만 지원 (Twitter, Facebook, LinkedIn, Email)
  • 확장 요구: 더 많은 인기 소셜 및 커뮤니케이션 플랫폼 지원 희망
  • 기술적 실현 가능성: react-share 라이브러리가 20+ 플랫폼 지원

45분 3단계 구현 플로우

1단계: 기본 수정 (15분)

// src/components/stp-viewer/viewer-view.tsx:754
- disabled: !isViewerReady,
+ disabled: false,

2단계: 플랫폼 확장 (20분)

// 6개의 새로운 주류 플랫폼 추가
const newPlatforms = [
  'WhatsApp',    // 세계 최대 인스턴트 메시징 앱
  'Telegram',    // 기술 사용자 그룹 선호  
  'Reddit',      // 기술 커뮤니티 주요 공유 플랫폼
  'Pinterest',   // 시각적 콘텐츠 공유, 3D 모델에 적합
  'Weibo',       // 중국 사용자 주요 소셜 플랫폼
  'Line',        // 아시아 지역 인기 커뮤니케이션 앱
];

3단계: 경험 최적화 (10분)

  • 레이아웃 조정: 2x2 그리드에서 3x3 그리드로 확장
  • 국제화 지원: 새 플랫폼의 중영 표시 이름
  • 모바일 적응: 소형 화면 장치에서의 표시 효과 보장

중요한 개발 경험 요약

아키텍처 진화의 중요성:

  1. 레이어 선택: 올바른 레이어에 컴포넌트를 배치하는 것이 특정 기능 최적화보다 중요
  2. 상태 의존성: 과도한 상태 의존성은 예상치 못한 기능 제약을 초래
  3. 점진적 향상: 기본 기능에서 완전 기능으로의 단계적 개발이 더 안정적

현실적 기술 선택:

  1. 능력 경계: 서드파티 라이브러리의 실제 능력과 제약에 대한 깊은 이해
  2. 계획 조정: 기술적 현실에 기반한 개발 계획 조정이 이상적 솔루션 고수보다 현명
  3. 아키텍처 단순화: 단일 컴포넌트 디자인이 복잡한 아키텍처보다 효과적인 경우가 많음

빠른 대응 개발 능력:

  1. 문제 진단: 문제의 근본 원인을 정확하게 찾아내는 것의 중요성
  2. 시간 관리: 합리적인 단계 분할이 개발 효율성을 향상시킴
  3. 사용자 지향: 사용자 피드백에 기반한 빠른 반복의 가치

이 공유 기능 개발 히스토리는 아키텍처 진화부터 기술 선택까지, 문제 진단부터 빠른 수정까지의 완전한 개발 지혜를 보여주며 팀에게 소중한 실무 경험을 축적하였다.

다음 단계

  • 성능 메트릭 지속적 모니터링
  • 개선된 워크플로에 대한 사용자 피드백 수집
  • 추가 모바일 최적화 계획
  • 대용량 파일의 점진적 로딩 탐색

성능 최적화

v1.0.6

주요 코드 정리 및 성능 개선, 18초 로딩 성능 유지

2025/08/28

🧹 코드 품질 및 아키텍처 개선

장기적 안정성을 위한 기반 강화 - 포괄적인 기능 세트 최적화:

유지 보수성과 성능 향상을 위한 포괄적인 정리 및 최적화:

  • 데드 코드 제거: 모바일 도구 모음.tsx를 포함한 사용되지 않는 코드 약 400줄 삭제
  • 가져오기 정리: 여러 구성 요소에서 사용되지 않는 가져오기 수정
  • 메모리 누수 수정: 이벤트 리스너, 타이머, WebGL 리소스 누수 해결
  • 상태 관리: 불필요한 재렌더링을 줄이기 위한 스마트 그룹화

오류 처리 강화

  • 지능형 오류 분류: 더 나은 사용자 피드백을 위한 categorizeError 함수 추가
  • 구체적인 오류 유형: 메모리 오류, WebGL 오류, 파일 검증 오류
  • 사용자 친화적인 메시지: 영어와 중국어로 명확한 오류 설명

성능 결과

  • 로딩 시간: 14.6MB STEP 파일에 대해 18초의 로딩 성능 유지
  • 코드 감소: 약 400줄의 코드 삭제
  • 메모리 최적화: 여러 메모리 누수 소스 수정
  • 안정성: 오류 처리 및 리소스 정리 강화

기술적 구현

  • 스마트 상태 그룹화: 최적의 렌더링을 위한 핵심 상태와 UI 상태 분리
  • 리소스 관리: WebGL 리소스 정리 및 Object URL 처리 개선
  • 타입 안전성: 적절한 분류를 통한 TypeScript 오류 처리 강화
  • KISS 원칙: 더 나은 유지 보수성을 위한 구현 단순화

진행 콜백 조사

  • 연구 완성: Online3DViewer 소스 코드의 진행 콜백 분석
  • 구현 시도: 메서드 오버라이드 접근 방식이 심각한 성능 저하 유발 (18초 → 60초 이상)
  • 상태: 성능 영향으로 인해 연기 - 사용자 경験 우선
  • 학습: 제3자 라이브러리의 내부 메서드를 재정의하지 않음

개발 가이드라인

  • 기능 추가보다 성능 우선
  • 제3자 라이브러리의 내부 메서드 재정의 금지
  • KISS 원칙: 단순한 구현이 더 안정적
  • 18초의 로딩 시간이 주요 성능 지표

최적화 철학

성능 우선 접근 방식

  1. 불필요한 코드 제거

    • 사용되지 않는 가져오기 및 함수의 철저한 삭제
    • 코드 베이스 경량화
  2. 리소스 관리 최적화

    • WebGL 리소스의 효율적인 정리
    • 메모리 누수의 적극적인 방지
  3. 상태 관리 재설계

    • 불필요한 재렌더링 최소화
    • 구성 요소의 상태 라이프사이클 효율적 관리

향후 최적화 방향

  • 더 상세한 성능 프로파일링
  • WebGL 렌더링의 지속적인 최적화
  • 사용자 경験을 저해하지 않는 효율적인 코드 구현

모델 구조 탐색기 + 스마트 모바일 인터페이스

v1.0.4

전문적인 모델 트리 탐색과 장치별 작동 가이드

2025/08/27

🌲 모델 구조 탐색기

복잡한 STEP 어셈블리를 관리 가능하고 탐색 가능한 구성 요소로 변환하는 계층적 모델 탐색의 혁명.

대화형 모델 트리

  • 계층적 탐색: 확장/축소 가능한 노드가 있는 완전한 어셈블리 구조
  • 구성 요소 격리: 클릭하여 특정 부품 또는 어셈블리에 초점
  • 가시성 제어: 개별 구성 요소 또는 전체 하위 어셈블리 표시/숨기기
  • 스마트 필터링: 이름, 유형 또는 속성으로 구성 요소 검색 및 필터링

전문가용 기능

  • 어셈블리 분석: 복잡한 다중 부품 STEP 파일 구조 이해
  • 구성 요소 속성: 각 모델 구성 요소에 대한 자세한 정보 보기
  • 선택 동기화: 트리 선택에 따른 3D 지오메트리 강조
  • 구성 요소별 내보내기: 개별 부품 또는 선택된 어셈블리 내보내기

고급 탐색

  • 구성 요소에 확대/축소: 선택한 구성 요소를 3D 뷰에 자동으로 프레이밍
  • 강조 시스템: 호버/선택된 구성 요소의 시각적 강조
  • 중첩 어셈블리 지원: 깊이 중첩된 어셈블리 계층 처리
  • 성능 최적화: 복잡한 모델에서도 부드러운 상호작용

📱 스마트 작동 가이드 적응

지능형 장치 인식 인터페이스로 상황에 맞는 작동 가이드 제공:

  • 장치 감지: 터치 장치를 자동 감지하고 작동 가이드 전환
  • 모바일 제스처: 한 손가락 회전, 핀치 확대/축소, 두 손가락 팬
  • 데스크톱 작동: 마우스 드래그, 스크롤 휠 확대/축소, 키보드 단축키
  • 아이콘 최적화: 모바일용 터치 아이콘, 데스크톱용 마우스 아이콘

기술적 구현

  • 반응형 감지: useResponsive 훅을 사용한 장치 감지
  • 네이티브 지원: Online3DViewer 터치 상호작용 기반
  • 국제화: 중국어 및 영어 힌트 지원
  • 구성 요소 분리: 독립적인 작동 가이드 구성 요소

사용자 경験 개선

  • 모바일에서 더 이상 무관한 "왼쪽 마우스 버튼" 힌트 표시 안 함
  • 모바일 장치 작동에 맞는 터치 제스처 설명
  • 수동 전환 없이 인터페이스 자동 적응
  • 소형 화면 장치에 최적화된 디스플레이

버그 수정

  • 모바일 사용자의 데스크톱 작동 힌트 혼란 해결
  • 터치 장치 상호작용 경験 개선
  • 다른 장치 간 사용자 인터페이스 스타일 통일

(以下略)

모바일 도구 모음 최적화

v1.0.5

긴 파일 이름 압축 문제 해결 및 모바일 레이아웃 개선

2025/08/27

📱 모바일 레이아웃 향상

터치 장치에서 고급 기능을 완벽하게 작동시키기 위한 전문적인 모바일 경験 최적화:

긴 파일 이름으로 인해 도구 버튼이 압축되는 문제 해결:

  • 반응형 파일 이름: 모바일에서 120px 제한, 데스크톱에서 200px 유지
  • 정보 간소화: 모바일에서 파일 확장자 숨기기, 핵심 정보만 표시
  • 버튼 최적화: 공간을 확보하기 위해 필수적이지 않은 버튼 숨기기
  • 간격 조정: 컴팩트한 버튼 간격으로 모든 기능 버튼 적절히 표시

사용자 경験 개선

  • 긴 파일 이름 처리: 호버 시 전체 이름을 표시하는 자동 자르기
  • 확장된 툴팁: 모바일 장치에서 자세한 버튼 설명 표시
  • 공간 활용: 3D 보기 영역 최대화, 도구 모음 공간 최소화
  • 반응형 디자인: 다양한 화면 크기에 최적화된 레이아웃 자동 적응

기술적 구현

  • Tailwind CSS: 정확한 반응형 중단점 제어
  • 점진적 확장: 모바일에서 데스크톱으로의 계층적 디자인
  • 공간 관리: 지능형 표시/숨기기 전략
  • 기능 유지: 모든 핵심 기능을 장치 간 접근 가능하게 유지

해결된 문제점

  • 긴 파일 이름으로 인한 전체 화면 표시 버튼 잘림 문제 해결
  • 소형 화면 장치의 도구 모음 레이아웃 개선
  • 터치 장치의 버튼 간격 및 사용성 향상
  • 중요한 기능 버튼의 표시 및 조작 보장

레이아웃 최적화의 기술적 세부 사항

모바일 디스플레이의 과제

  • 화면 너비 제약: 제한된 공간에서의 정보 표시
  • 터치 조작 요구사항: 작은 버튼에서도 정확한 탭 가능

구현 전략

  1. 동적 공간 할당

    • 파일 이름 길이에 따라 동적으로 버튼 크기 조정
    • 중요한 기능 버튼의 우선순위 지정
  2. 지능형 정보 표시

    • 축약 표시와 전체 표시 전환
    • 컨텍스트에 따른 정보 세부 수준 조정
  3. 성능 최적화

    • CSS Grid 및 Flexbox를 활용한 반응형 레이아웃
    • 최소한의 CSS 오버헤드
    • 리플로우(재배치) 비용 최소화

모바일 대응의 미래 방향

  • 추가 제스처 지원 확장
  • 더욱 고급화된 적응형 UI 구성 요소
  • 장치 특성 기반 동적 최적화

가져오기/내보내기 시스템 + 재질 편집기 + 테마 수정

v1.0.3

17개의 가져오기/10개의 내보내기 형식을 통한 범용 파일 변환 및 고급 재질 편집

2025/08/26

💾 범용 가져오기/내보내기 시스템

가장 포괄적인 온라인 3D 파일 변환기를 설립하는 혁신적인 파일 형식 지원.

광범위한 가져오기 지원 (17개 형식)

CAD 형식: STEP, IGES, BREP, OCCT
메시 형식: STL, OBJ, OFF, PLY, 3DS
현대 형식: GLTF/GLB, FBX, DAE, 3DM
산업 형식: IFC, BIM, FCStd, SVG

전문 내보내기 옵션 (10개 형식)

  • STL 내보내기: ASCII 및 바이너리 형식의 3D 프린팅 지원
  • OBJ 내보내기: MTL 재질 파일과 범용 호환성
  • GLTF/GLB: 현대적인 웹 최적화 3D 형식
  • PLY/OFF: 연구 및 과학 응용 프로그램
  • 3DM/BIM: 전문 CAD 및 건축 워크플로우

내보내기 우수성

  • 형식별 옵션: 각 내보내기 형식의 사용자 정의 가능한 설정
  • 품질 관리: 정밀도 설정 및 최적화 옵션
  • 일괄 처리: 단일 가져오기에서 여러 형식 내보내기
  • 모바일 지원: 모든 장치에서 완전한 내보내기 기능

🎨 고급 재질 시스템

전문적인 재질 편집 및 시각화 기능:

재질 편집기

  • 색상 사용자 정의: RGB 색상 선택기와 실시간 미리보기
  • 투명도 제어: 정밀한 불투명도 조정
  • 재질 속성: 금속성, 거칠기, 표면 마감 제어
  • 실시간 미리보기: 재질 편집 중 즉각적인 시각적 피드백

환경 시스템

  • 6개 환경 맵: 전문 HDRI 조명 프리셋
  • 배경 제어: 사용자 정의 배경색 및 그라데이션
  • 조명 제어: 고급 앰비언트 및 방향성 조명
  • 렌더링 품질: 성능 최적화를 위한 여러 품질 프리셋

🌈 테마 통합 수정

중요한 사용자 경験 문제 해결:

  • 3D 뷰어 테마 동기화: 웹사이트 테마 전환과 3D 뷰어 배경의 동기화 문제 해결
  • 시각적 일관성: 모든 인터페이스 요소에서 라이트/다크 모드 일관성 확보
  • SetBackgroundColor API: Online3DViewer 배경색 설정 메서드 최적화
  • 타입 안전성: TypeScript 호환성 문제를 타입 어설션으로 해결

브랜드 업데이트

  • 새 로고 적용: 모든 웹사이트 위치에 새로운 STP 뷰어 브랜드 아이덴티티 적용
  • 아이콘 통일: 파비콘, 앱 아이콘 및 소셜 미디어 아이콘 업데이트
  • PWA 아이콘: 프로그레시브 웹 앱 아이콘 구성 개선

기능 표시 최적화

  • 실제 스크린샷: 기능 구성 요소가 실제 STP 뷰어 기능 스크린샷 사용
  • 제품 시연: 3D 보기 및 파일 처리 기능의 더 나은 쇼케이스
  • 사용자 신뢰: 실제 인터페이스 스크린샷을 통한 사용자 신뢰 향상

기술 개선

  • API 호출 최적화: SetBackgroundColor 메서드 호출 접근 방식 개선
  • RGBAColor 객체: 배경 설정을 위한 RGBAColor 객체의 적절한 생성 및 사용
  • 강제 렌더링: 테마 전환 후 즉시 3D 뷰어 표시 업데이트 보장

버그 수정

  • 다크 모드에서 3D 뷰어 배경이 검은색으로 남아있는 문제 해결
  • 테마 전환 지연 또는 실패 문제 해결
  • 타입 검사 및 컴파일 호환성 개선
  • 다양한 장치에서 테마 표시 효과 최적화

(以下略)

풀스크린 아키텍처 기반

v0.1.0

혁신적인 풀스크린 모드 프레임워크 - STP 뷰어를 전문 3D CAD 플랫폼으로 변환

2025/08/25

🚀 혁신적인 아키텍처 출시

이 마일스톤은 STP 뷰어를 단순한 파일 뷰어에서 전문 수준의 3D CAD 시각화 플랫폼으로 전환하는 시작점입니다. 온라인에서 가장 포괄적인 STEP 파일 보기 경験을 만들었습니다.

🏗️ 풀스크린 모드 프레임워크

코어 아키텍처 구현

점진적 기능 전략: 2계층 경験 설계

  • 일반 모드: 사랑받는 단순성 유지 (업로드, 보기, 스크린샷, 풀스크린)
  • 풀스크린 모드: 전문 CAD 수준의 기능 잠금 해제

인프라 구성 요소

  • ✅ 모듈식 컴포넌트 아키텍처: 간단한 기능과 고급 기능의 명확한 분리
  • ✅ 상태 관리 시스템: 풀스크린 전용 기능을 위한 Zustand 기반 저장소
  • ✅ 반응형 레이아웃 엔진: 모든 장치에서 원활하게 작동하는 적응형 UI
  • ✅ 도구 시스템 기반: 전문 CAD 도구를 위한 확장 가능한 프레임워크

기술적 기반

// 새로운 컴포넌트 구조
src/components/stp-viewer/
├── fullscreen/           # 전문 도구 (지연 로딩)
├── panels/              # 접을 수 있는 탐색 패널  
└── hooks/               # 3D 뷰어 통합을 위한 사용자 정의 훅

🎯 설계 철학

"기본적으로 간단하고, 선택에 따라 강력하게"

경験 수준인터페이스사용 사례
일반 사용자깨끗하고 최소한의 도구 모음빠른 파일 미리보기, 기본 보기
전문가전체 CAD 도구 모음자세한 분석, 측정, 내보내기

🔧 기술적 성과

성능 최적화

  • 영향 없음: 일반 모드 성능에 완전히 영향을 미치지 않음
  • 지연 로딩: 필요할 때만 전문 기능 로드
  • 메모리 효율성: 대용량 STEP 파일을 위한 지능형 리소스 관리
  • 모바일 우선: 모든 화면 크기에 최적화된 터치 컨트롤

개발자 경験

  • 깨끗한 아키텍처: SOLID 원칙을 따르는 모듈식 설계
  • 유형 안전성: 새로운 컴포넌트에 대한 완전한 TypeScript 적용
  • 테스트 준비: 포괄적인 테스트를 위해 설계된 컴포넌트 구조
  • 확장성: 향후 전문 기능을 위한 프레임워크 준비

(以下略)

전문 측정 시스템 + 인터페이스 최적화

v1.0.2

혁신적인 정밀 측정 도구 - 거리, 각도, 평행면 측정

2025/08/20

📏 전문 측정 혁명

산업 수준의 측정 기능을 도입하여 STP 뷰어를 정밀 분석 도구로 변환합니다. 이번 릴리스는 브라우저 기반 3D 시각화에 산업 표준 CAD 측정 정확도를 제공합니다.

포괄적 측정 스위트

  • 점 간 거리: 임의의 두 점 사이의 정밀한 직선 거리 측정
  • 평행면 거리: 평행면 사이의 정확한 거리 계산
  • 각도 측정: 모서리, 면, 벡터 간 각도 측정
  • 다중 단위 지원: mm, cm, m, 인치 단위와 지능형 변환

전문가용 기능

  • 실시간 결과: 부동 패널에 즉시 측정 결과 표시
  • 측정 이력: 저장 및 내보내기 가능한 완전한 측정 기록
  • 시각적 마커: 측정 명확성을 위한 3D 마커 및 치수선
  • 정밀도 제어: 전문 CAD 도구에 필적하는 서브밀리미터 정확도

모바일 최적화

  • 터치 최적화: 모바일 측정 워크플로우에 최적화된 터치 인터랙션
  • 반응형 인터페이스: 모든 화면 크기에 적응하는 측정 UI
  • 제스처 지원: 핀치 줌 및 자연스러운 터치 측정 상호작용

🎯 제품 최적화

측정 시스템과 함께 초점을 맞춘 개선:

  • STEP 형식에 집중: IGES 형식 지원 제거, STEP (.stp/.step) 파일 최적화에 집중
  • 사용자 리뷰 시스템: 사용자 추천 표시 및 피드백 시스템 추가
  • 사용 가이드: 신규 사용자를 위한 3단계 사용 가이드 추가
  • 기술 사양: 상세한 기술 사양 및 성능 지표 추가

인터페이스 개선

  • 홈페이지 재설계: SaaS 모범 사례에 따른 페이지 레이아웃 최적화
  • 반응형 강화: 모바일 및 태블릿에서의 사용자 경験 개선
  • 브라우저 호환성: 브라우저 호환성 정보 페이지 추가
  • 국제화 개선: 중국어와 영어 버전 간 번역 일관성 향상

기능 개선

  • 통계 표시: 사용자 사용량, 파일 처리 볼륨 등 운영 데이터 표시
  • FAQ 섹션: 일반적인 사용자 질문에 답하는 FAQ 섹션 개선
  • 피드백 채널: 다양한 사용자 피드백 및 연락 방법 추가

버그 수정

  • 국제화 관련 누락 문제 해결
  • 구성 요소 표시 불일치 문제 해결
  • 모바일 레이아웃 문제 수정
  • 페이지 로딩 성능 개선

(以下略)

전문 뷰 컨트롤 시스템 + 성능 부스트

v1.0.1

혁명적인 3D 내비게이션 - 6개의 사전 설정 뷰포인트, 투영 모드, 30% 빠른 로딩

2025/08/15

🎯 전문 뷰 컨트롤 혁명

3D 내비게이션을 기본적인 이동과 확대에서 전문 CAD 수준의 뷰 컨트롤로 변환합니다. 이번 릴리스는 데스크톱 CAD 애플리케이션에 필적하는 산업 표준 뷰포인트 관리 기능을 제공합니다.

6개의 표준 뷰포인트

  • 정면/배면/좌면/우면: 정밀한 입면 분석을 위한 완벽한 정렬
  • 상면/하면: 평면 및 하단 검사 기능
  • 원클릭 접근: 각 뷰포인트에 최적의 카메라 위치와 적절한 상향 벡터 방향 설정

고급 투영 시스템

원근 투영(기본값)

  • 자연스러운 깊이 인식과 사실적인 단축
  • 프레젠테이션 및 일반 시각화에 이상적

직교 투영(전문가)

  • 원근감 없는 정확한 축척의 기술 도면
  • 측정 및 기술 분석에 완벽
  • 엔지니어링 문서의 산업 표준

스마트 카메라 내비게이션

  • 창에 맞추기: 최적의 확대/축소 및 위치 자동 계산
  • 상향 벡터 관리: Y축 또는 Z축 상향 방향 전환
  • 내비게이션 모드: 고정 궤도 vs 자유 내비게이션 옵션
  • 모바일 우수성: 터치 최적화 제스처 컨트롤

🚀 성능 개선

새로운 뷰 시스템과 함께 중요한 최적화:

  • 파일 크기 제한 증가: 50MB에서 100MB로 확장, 대형 STEP 파일 지원
  • 대용량 파일 최적화: 대형 파일 로딩 및 렌더링 성능 향상
  • 메모리 관리: 최적화된 메모리 사용, 충돌 위险 감소
  • 로딩 시간: 중형 및 대형 파일 로딩 시간 30% 단축

(以下略)

STP Viewer 초기 릴리스

v1.0.0

STEP 형식 3D 미리보기 기능을 갖춘 온라인 STP 파일 뷰어의 첫 번째 버전

2025/08/01

핵심 기능

다음과 같은 핵심 기능을 갖춘 STP Viewer의 첫 번째 버전을 출시하게 되어 기쁩니다:

  • STEP 파일 지원: .stp 및 .step 형식 파일 업로드 및 파싱
  • 실시간 3D 미리보기: WebGL 기반 고성능 3D 모델 렌더링
  • 파일 검증: 스마트 파일 형식 감지 및 무결성 검증
  • 반응형 디자인: 모바일 및 데스크톱 기기에 완벽한 적응
  • 테마 전환: 라이트 및 다크 테마 모드 지원

기술적 특징

  • 우수한 성능을 위한 Next.js 15 및 React 18로 구축
  • 복잡한 CAD 모델을 지원하는 Online3DViewer 엔진 통합
  • 완전한 국제화 지원 (중국어/영어)
  • 주요 모던 브라우저에 대한 호환성 최적화

성능 사양

  • 지원 파일 크기: 1KB - 50MB
  • 로딩 시간: 작은 파일 < 1.5초
  • 메모리 사용량: 기본 < 50MB