아이템 25 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
- 기업이 한 플랫폼만을 대상으로 애플리케이션을 만드는 경우는 거의 없다.
- 두 애플리케이션은 서로 소통하므로 재사용할 수 있는 부분이 많을 것이다.
풀스택 개발
- 코틀린은 백엔드 개발을 위한 자바의 인기 있는 대안이 되고 있다.
- 또 코틀린의 장점 중 하나는 코틀린이 자바 스크립트로 컴파일될 수 있다는 것이다.
- 이미 많은 코틀린/JS 라이브러리가 존재하고 리액트와 코틀린/JS를 함께 사용해서 프런트엔드를 만들 수 있다.
- 즉 웹 프런트/백엔드를 모두 코틀린으로 만들 수 있으며 이를 공유할 수 있다는 것이다.
모바일 개발
- 안드로이드와 아이폰 애플리케이션을 만들려면 내부적으로 비슷한 로직을, 다른 언어와 도구를 사용해 따로 개발해야 한다.
- 코틀린 멀티 플랫폼 기능을 활용하면 로직을 한 번만 구현하고 두 플랫폼에서 이를 재사용할 수 있다.
- 공통 모듈에 비즈니스 로직을 특정 플랫폼에 종속적이지 않고 독립적으로 만들 수 있다.
- 안드로이드는 Gradle을 사용해 직접 공통 모듈을 활용할 수 있다.
- IOS의 경우 LLVM을 사용해 네이티브 코드로 컴파일할 수 있는 코틀린/네이티브를 사용하면 Object-C 프레임워크로 변환할 수 있다.
라이브러리
- 공통 모듈을 정의할 수 있다는 것은 라이브러리에 있어 강력한 도구가 된다.
- JVM, 자바스크립트, 네이티브 환경에서 공통 모듈을 활용할 수 있다는 의미이다.
- 자바, 스칼라, 자바스크립트, 커피스크립트, 타입스크립트, C, 스위프트, 파이썬, C# 등
함께 사용하기
코틀린을 통해 대부분의 장치와 플랫폼을 구축할 수 있다.
- 코틀린/JVM 백엔드 개발 - 스프링, Ktor 등
- 코틀린/JS를 사용한 웹사이트 개발 - 리액트 등
- 코틀린/JVM을 사용한 안드로이드 개발 - 안드로이드 SDK 등
- 코틀린/네이티브를 통해 Object-C/스위프트로 IOS 프레임워크 개발 등
- 코틀린/JVM을 사용한 데스크톱 개발 - TornadoFX 등
- 코틀린/네이티브를 사용한 라즈베리파이, 리눅스, macOS 프로그램 개발