Tag Archives: Programming language

LINE Creators Studio 개발에 사용하는 Kotlin 소개

시작하기 전에

안녕하세요, 저는 LINE Fukuoka 개발 팀에서 일하는 Freddie Wang입니다. 저는 현재 LINE Creators Studio라는 새로운 Android 앱 개발을 맡고 있습니다. LINE Creators Studio는 누구나 자기만의 스티커를 만들 수 있도록 도와주는 스티커 제작 툴입니다. LINE Creators Studio로 만든 스티커는 LINE Store에서 판매도 할 수 있습니다.

이 블로그에서는 LINE Creators Studio 앱 개발에 전적으로 사용하고 있는 프로그래밍 언어인 Kotlin에 대해 이야기해보려 합니다. 왜 Kotlin을 주요 언어로 선택했는지 설명하고 Kotlin의 어떤 기능을 주로 사용하고 있는지 소개하겠습니다.

참고: LINE Creators Studio는 현재 일본에서만 제공되고 있으며 다른 지역에도 곧 배포될 예정입니다.

Kotlin의 장점과 핵심 기능

Google I/O 2017에서 Google은 Android Studio 3.0부터 Kotlin을 공식 지원한다고 발표한 바 있습니다. 2016년 말 LINE Creators Studio 개발 프로젝트를 킥오프했을 당시 저희는 이 프로젝트를 단기간에 MVP(Minimum Viable Product) 프로젝트로 키워야 하는 과제를 안고 있었습니다. Kotlin 1.0이 출시된 지 한참 지난 후였지만 저희 팀에는 Kotlin을 사용해 본 사람이 아무도 없었습니다. 그래서 개발을 시작하기 전에 먼저 Kotlin을 사용하면 어떨지 알아보았는데, 그 결과 아래에서 설명하는 이유 때문에 Kotlin을 사용하기로 결정했습니다.

Kotlin을 선택하게 된 배경

Java와의 100% 호환성

Kotlin의 가장 큰 매력은 Kotlin 코드와 Java 코드를 한 프로젝트에서 함께 쓸 수 있고 기존의 Java 라이브러리를 모두 사용할 수 있다는 것입니다. 우리 프로젝트에는 레거시 Java 코드는 없지만 Dagger 2, Retrofit, RxJava 같은 Java 호환 라이브러리를 사용하고 싶었습니다.

간결한 구문

Kotlin은 문제 해결을 위해 설계된 언어입니다. Kotlin의 주요 목표 중 하나는 깔끔한 코드를 Java보다 쉽게 쓰는 것입니다. 이것이 Android 애플리케이션을 개발할 때 최우선적이고 필수적인 요인입니다.

줄어든 종속성

Kotlin은 Guava처럼 크기가 큰 Java 라이브러리를 대체할 수 있는 컴팩트한 런타임 라이브러리를 가지고 있습니다. 서버나 데스크톱 환경에서는 대용량 라이브러리가 큰 문제가 아니지만 Android에서는 문제를 일으킬 수 있습니다. Android 앱을 개발할 때는 65K 메서드 제한이 있기 때문에 대용량 Java 라이브러리의 사용을 피해야 합니다. Kotlin의 stdlib 라이브러리(버전 1.1.3-2)는 메서드 개수가 6306개라서 메서드 개수에 따른 영향이 Guava 라이브러리보다 적습니다.

이전 버전의 Android 기기 지원

Kotlin 1.0은 Java 6을 기준으로 하기 때문에 버전 2.3 이상인 Android 기기를 지원할 수 있습니다. 이 또한 Android 개발자에게 중요한 요인입니다.