동작 방식

1. 동작 원리
Unity의 BuildTarget은 WebGL 플랫폼을 지원하며, WebGL 내보내기 패키지는 WebAssembly 기술을 기반으로 브라우저 환경에서 실행됩니다.
내보내기 패키지가 AppsInToss 미니앱 환경에서 실행될 수 있도록 다음과 같은 지원을 제공합니다:
- 개발 단계: 플랫폼 기능의 TypeScript SDK 제공으로 개발자가 플랫폼 기능에 빠르게 연동
- 내보내기 단계: 전환 패키징 도구로 Unity WebGL 접착층 적응을 통해 미니앱 패키지로 직접 전환
- 실행 단계: WebAssembly 기본 기능 및 AppsInToss 하위 레벨 인터페이스 지원 제공
2. 핵심 기술 스택
WebAssembly (WASM)
- Unity C# 코드를 WebAssembly로 컴파일하여 네이티브에 가까운 성능 제공
- 브라우저 환경에서 고성능 게임 실행 가능
- 메모리 관리 및 가비지 컬렉션 최적화
JavaScript Bridge
- Unity C#과 AppsInToss JavaScript API 간 양방향 통신 제공
- 플랫폼별 기능(결제, 광고, 소셜 등)에 원활한 접근
- 타입 안전성을 보장하는 자동 마샬링
Vite + React 프레임워크
- 모던 웹 개발 환경 제공
- 빠른 개발 서버와 최적화된 번들링
- TypeScript 완전 지원
Granite 빌드 시스템
- AppsInToss 플랫폼 최적화된 빌드 파이프라인
- 자동 리소스 압축 및 CDN 배포
- 점진적 로딩 및 캐싱 전략
3. 아키텍처 개요
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Unity Game │ │ AppsInToss │ │ Platform │
│ │ │ Bridge │ │ Services │
│ ┌───────────┐ │ │ │ │ │
│ │ C# Logic │ │◄──►│ TypeScript SDK │◄──►│ Login API │
│ └───────────┘ │ │ │ │ Storage API │
│ ┌───────────┐ │ │ ┌─────────────┐ │ │ Payment API │
│ │ Render │ │ │ │ JS Runtime │ │ │ Admob │
│ └───────────┘ │ │ └─────────────┘ │ │ Analytics │
│ ┌───────────┐ │ │ ┌─────────────┐ │ │ │
│ │WebAssembly│ │ │ │ WebGL Glue │ │ │ │
│ └───────────┘ │ │ └─────────────┘ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘4. 주요 특징
고성능
- WebAssembly 기반으로 네이티브에 가까운 성능
- GPU 가속 렌더링 지원
- 메모리 효율적인 리소스 관리
호환성
- Unity 2018.4 LTS 이상 모든 버전 지원
- 대부분의 Unity 기능과 써드파티 플러그인 지원
- 기존 게임 코드 95% 이상 재사용 가능
모바일 최적화
- 터치 입력 및 제스처 완전 지원
- 모바일 성능에 최적화된 렌더링
- 배터리 효율성 고려한 프레임 레이트 관리
개발 도구
- Unity 에디터 통합 빌드 도구
- 실시간 디버깅 및 프로파일링
- 자동화된 배포 파이프라인
5. 포팅 순서
전환 흐름은 Unity WebGL 앱인토스 미니앱 전환 가이드 문서를 참조하세요.
6. 성능 벤치마크
| 메트릭 | 네이티브 앱 | AppsInToss WebGL | 성능 비율 |
|---|---|---|---|
| 시작 시간 | 1.2초 | 2.8초 | 85% |
| FPS (3D 게임) | 60 FPS | 50–55 FPS | 90% |
| 메모리 사용량 | 100MB | 120MB | 83% |
| 배터리 소모 | 100% | 110% | 91% |
7. 지원 플랫폼
완전 지원
- iOS: Safari WebView (iOS 13+)
- Android: Chrome WebView (Android 7+)
- Desktop: Chrome, Firefox, Safari, Edge
최적화 지원
- 토스앱 WebView: 네이티브 수준 성능
- AppsInToss 브라우저: 전용 최적화
브라우저 호환성
- WebAssembly 지원: 95%+ 커버리지
- WebGL 2.0 지원: 90%+ 커버리지
- SharedArrayBuffer: 85%+ 커버리지
8. 보안 및 안정성
코드 보호
- WebAssembly 바이너리 형태로 코드 배포
- 선택적 코드 난독화 지원
- 워터마크를 통한 무단 복제 방지
데이터 보안
- HTTPS 강제 적용
- 민감한 데이터는 서버사이드 검증
- 클라우드 저장소 암호화
9. 제한 사항
기술적 제약
- 멀티스레딩 제한적 지원
- 파일 시스템 접근 불가
- 네이티브 플러그인 사용 불가
성능 고려사항
- 메모리 사용량이 네이티브 앱 대비 20-30% 높음
- 초기 로딩 시간이 네이티브 앱 대비 2-3배
- 배터리 소모가 약 10-15% 높음
