데브허브 | DEVHUB | Reusable technology: Saving development time with shared Unity plug-ins and SDKs | Unite 2025Reusable technology: Saving development time with shared Unity plug-ins and SDKs | Unite 2025
- SDK 개발은 새로운 기능, 규제 대응, 라이브러리 확장, 특정 요구사항 집중, 소스 코드 제어, 사내 표준 솔루션 제공 등 다양한 전략적 이점을 제공합니다. 🚀
- Android Studio와 Xcode를 활용하여 iOS, Android, macOS, tvOS 등 여러 플랫폼에서 재사용 가능한 SDK를 구축하여 개발 시간을 절약할 수 있습니다. 🌐
- Android SDK는 Java, Kotlin, C, C++를, Apple Framework는 C, Objective-C, Swift, C++를 혼합하여 사용할 수 있어 유연한 기술 스택 활용이 가능합니다. 🧩
- SDK 버전 관리는 여러 프로젝트의 호환성을 위해 최신 버전으로의 즉각적인 업데이트보다 안정적인 최소 버전을 기준으로 개발하고 CI/CD로 테스트를 자동화하는 것이 중요합니다. 🛡️
- SDK 프로젝트 내에 테스트 애플리케이션을 포함하고 빌드 및 테스트 프로세스를 자동화하여 개발 및 검증 시간을 단축하고 신뢰성을 높입니다. 🧪
- Unity 플러그인은 SDK를 소비하고 플랫폼별 복잡성을 추상화하여 개발자가 단일 코드베이스로 iOS 및 Android를 지원하며, Unity의 전/후처리 스크립트로 자동화된 설정을 제공합니다. 🔌
- 플러그인은 공통 API를 통해 단일 진입점을 제공하고 내부 구현을 숨기며, 로직은 SDK에 집중시켜 플러그인은 인터페이스 역할만 하도록 하여 확장성과 재사용성을 극대화합니다. 🏗️
- Android OS 콜백은 메인 스레드 외부에서 실행될 수 있으므로,
runOnUiThread와 같은 방법을 사용하여 콜백이 항상 메인 스레드에서 실행되도록 강제하여 잠재적인 오류를 방지해야 합니다. 🚦
- Unity의 기본 Activity를 SDK에 전달하여 SDK가 실행 환경에 구애받지 않고 필요한 OS 기능을 사용할 수 있도록 합니다. 📱
package.json을 활용하여 Unity Package Manager를 통해 플러그인을 배포하고, 예제 코드 등을 선택적으로 포함할 수 있도록 하여 사용자 경험을 개선합니다. 📦