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 지원 버전 확대 중