Multi-Module Architecture in KMP for Beginners (Kotlin Multiplatform)
- KMP(Kotlin Multiplatform)에서 모듈은 라이브러리와 같다. 외부 라이브러리처럼 로컬에서도 자체 라이브러리를 만들어 참조할 수 있다. 📚
- KMP 앱은 각 플랫폼(Android, iOS, Desktop)별 진입점을 포함하는 애플리케이션 모듈이 필요하다. 일반적으로 코드베이스에 하나의 애플리케이션 모듈만 존재한다. 📱
- Gradle 모듈은 코드 컨테이너이며, 각 모듈은 자체
build.gradle
파일을 가진다. 이를 통해 모듈 빌드 방식과 포함할 라이브러리를 설정할 수 있다. 📦
- 모듈 마법사를 통해 라이브러리 모듈을 추가할 수 있다.
settings.gradle
파일에 모듈이 포함되었음을 명시해야 Gradle이 해당 폴더를 모듈로 인식한다. ✨
- 모듈 간 의존성을 설정하여 특정 모듈의 클래스 및 파일에 대한 접근 권한을 제어할 수 있다. 이를 통해 코드 격리 및 재사용성을 높일 수 있다. 🔒
- 멀티 모듈 아키텍처의 장점은 코드 재사용성, 빠른 Gradle 빌드, 팀 작업 분산, 아키텍처 의존성 강화 등이 있다. 🚀
- 모듈을 재사용하여 다른 프로젝트에서도 동일한 기능을 활용할 수 있다. 독립적인 모듈 구조를 설계하면 코드 중복을 줄이고 효율성을 높일 수 있다. ♻️
- Gradle은 멀티 모듈 환경에서 각 모듈을 독립적으로 빌드할 수 있어 빌드 시간을 단축할 수 있다. 변경된 모듈만 재빌드하여 전체 빌드 시간을 줄인다. ⏱️
- 팀 구성원들이 개별 모듈에 집중하여 작업할 수 있도록 하여 협업 효율성을 높일 수 있다. 모듈 간 의존성 방향을 설정하여 코드 충돌을 방지한다. 🤝
- 아키텍처 레이어(presentation, domain, data)별로 모듈을 분리하여 아키텍처 의존성을 강화할 수 있다. 이를 통해 코드 구조를 명확히 하고 유지보수성을 높인다. 🏗️
- KMP 모듈은 일반 Kotlin 모듈과 달리, Kotlin Multiplatform Gradle 플러그인을 사용하여 각 플랫폼별 코드를 관리한다. 🧩
- Kotlin Multiplatform 프로젝트에서는 Kotlin Multiplatform Gradle 플러그인을 사용하는 라이브러리 및 모듈만 참조할 수 있다. 🔗