그 외의 개발 공부
KMP
posite
2026. 3. 15. 15:21
KMP(Kotlin Multiplatform)란?
- 하나의 Kotlin 코드베이스로 여러 플랫폼(Android, iOS, Web, Desktop, Server)을 타겟팅할 수 있게 해주는 멀티플랫폼 SDK
- 비즈니스 로직만 공유하고 UI는 각 플랫폼의 네이티브 방식을 사용
주요 특징
- expect / actual 메커니즘 : commonMain에서 expect로 인터페이스를 선언하고, 각 플랫폼 소스셋에서 actual로 구현
- Kotlin Multiplatform 라이브러리 생태계 : 공식 및 커뮤니티 라이브러리들의 KMP 지원
| 네트워킹 | Ktor Client |
| 직렬화 | kotlinx.serialization |
| DB/캐싱 | SQLDelight, Room (KMP) |
| DI | Koin |
| 비동기 | kotlinx.coroutines |
| 날짜/시간 | kotlinx-datetime |
- 코드 재사용성 : 비즈니스 로직, 네트워킹, 데이터 레이어를 한 번만 작성
- 점진적 도입 가능 : 기존의 Android 앱에 KMP 모듈만 추가하는 방식으로 리스크 없이 시작 가능
- Kotlin의 모든 기능 활용 가능 : 코루틴, Flow, 확장함수, sealed class, data class 등 Kotlin 기능 사용 가능
- Compose Multiplatform(UI 공유) : CMP를 사용하면 UI까지 공유 가능
- iOS 컴파일 속도 : JVM 대비 속도가 느림
- 서드파티 SDK 생태계 미완성 : 분석, 결제, 인증 등 일부 서드파티 SDK의 안정적인 KMP 지원 버전 확대 중