"Kotlin expect/actual 시스템: 다중 플랫폼 개발의 핵심"
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Kotlin의 expect/actual 시스템: 다중 플랫폼 개발의 핵심 원리

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

Kotlin 초보자 및 다중 플랫폼 개발자 (중간 난이도)

핵심 요약

  • Kotlin은 expect/actual 시스템을 통해 다중 플랫폼 호환성을 구현하며, 각 플랫폼의 구현체를 별도로 관리
  • JVM 플랫폼에서는 Java 기존 코드(java.util.Arrays.sort)를 재사용하여 IntArray.sort()를 구현
  • expect는 공통 인터페이스 정의, actual은 플랫폼별 구현을 제공하는 핵심 패턴
  • Kotlin은 Java의 기존 최적화된 기능을 재사용하고, 이를 기반으로 확장

섹션별 세부 요약

1. Kotlin의 다중 플랫폼 개발 소개

  • Kotlin은 Java 기반 언어로, JVM, JS, Native 등 다양한 플랫폼을 지원
  • IntArray.sort()와 같은 함수는 플랫폼별로 구현 방식이 다름
  • expect/actual 시스템은 다중 플랫폼 호환성을 위해 설계됨

2. expect/actual 시스템의 작동 원리

  • expect는 모든 플랫폼에서 공통으로 존재해야 할 함수/클래스를 선언
  • actual은 각 플랫폼(JVM, JS 등)에서 구체적인 구현을 제공
  • 예: public expect fun IntArray.sort(): Unit은 공통 인터페이스 선언

3. JVM 플랫폼의 구현 예시

  • JVM 플랫폼에서는 IntArray.sort()java.util.Arrays.sort(this)를 재사용
  • Kotlin은 Java의 기존 최적화된 알고리즘을 그대로 사용하며, 별도 구현을 하지 않음
  • actual 구현은 kotlin/jvm 디렉토리에 위치

4. Kotlin의 설계 철학

  • "재발명보다 재사용"을 핵심 원칙으로 삼음
  • Java의 기존 기능을 기반으로 확장 및 개선
  • common 디렉토리에 공통 인터페이스, jvm, js 등에 플랫폼별 구현이 분리

결론

  • Kotlin은 expect/actual 시스템을 통해 플랫폼별 구현을 효율적으로 관리하며, Java 기존 코드를 재사용함
  • 다중 플랫폼 개발 시 expect/actual 패턴을 이해하면 플랫폼 간 호환성을 확보할 수 있음
  • Kotlin은 기존 기능을 기반으로 확장하는 방식으로, 개발자에게 높은 생산성을 제공