개발일기

Kotlin Multiplatform (KMP) 소개와 활용 사례

뱅우 2025. 8. 27. 09:41
반응형
Kotlin Multiplatform (KMP) 소개와 활용 사례

Kotlin Multiplatform (KMP) 소개와 활용 사례

최근 모바일 개발 트렌드 중 하나는 크로스 플랫폼 개발입니다. Flutter, React Native 등이 널리 사용되고 있지만, Kotlin 진영에서는 Kotlin Multiplatform (KMP)이 큰 주목을 받고 있습니다.

1. Kotlin Multiplatform이란?

Kotlin Multiplatform(KMP)은 Kotlin 언어를 활용하여 여러 플랫폼(Android, iOS, Web, Desktop)에서 공통 코드를 공유할 수 있는 기술입니다. 특히, 비즈니스 로직데이터 처리 부분을 공유하고, UI는 각 플랫폼에 맞게 개발하는 구조를 가집니다.

2. KMP 구조

  • commonMain: 모든 플랫폼에서 공유할 로직 (네트워크, DB, 비즈니스 로직)
  • androidMain: 안드로이드 전용 코드
  • iosMain: iOS 전용 코드
  • webMain: 웹 전용 코드
src
 ┣ commonMain
 ┃ ┣ kotlin
 ┃ ┗ resources
 ┣ androidMain
 ┣ iosMain
 ┗ webMain

3. 간단한 예제

공통 코드 (commonMain)

class Greeting {
    fun sayHello(): String = "Hello from Kotlin Multiplatform!"
}

Android 코드

val greeting = Greeting().sayHello()
Log.d("KMP", greeting)

iOS 코드 (Swift)

let greeting = Greeting().sayHello()
print("iOS says: \(greeting)")

위 예제처럼 핵심 로직은 공통 모듈에 두고, 각 플랫폼에서는 그대로 불러다 사용할 수 있습니다.

4. 활용 사례

  • 네트워크 모듈 공통화: Retrofit + Ktor 같은 네트워크 라이브러리 활용
  • 데이터 관리: SQLDelight를 이용한 DB 공통 코드 작성
  • 비즈니스 로직 공유: 로그인, 유저 관리, 데이터 변환 로직 등
  • 멀티 플랫폼 라이브러리 제작: 외부 SDK나 내부 공통 모듈 제공

5. 장단점

장점

  • 비즈니스 로직의 재사용성 극대화
  • 네이티브 성능 유지
  • Kotlin 개발자가 쉽게 적응 가능

단점

  • 아직 일부 라이브러리 지원이 부족
  • 초기 세팅이 Flutter, RN보다 다소 복잡
  • UI는 별도로 구현해야 함

6. 정리

Kotlin Multiplatform은 안드로이드 + iOS 동시 개발을 원하는 팀에게 강력한 대안이 될 수 있습니다. 특히 비즈니스 로직과 데이터 계층을 공통화하면서도, 각 플랫폼의 네이티브 UI를 그대로 활용할 수 있다는 점에서 점점 더 주목받고 있습니다.


결론: KMP는 아직 발전 중인 기술이지만, 장기적으로는 크로스 플랫폼 개발의 새로운 표준이 될 가능성이 높습니다. 새로운 프로젝트에서 점진적으로 도입해 보길 추천드립니다.

반응형