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은 기존 기능을 기반으로 확장하는 방식으로, 개발자에게 높은 생산성을 제공함