Kotlin 세계로 가는 기차가 출발합니다, 올라타시겠습니까?

Google이 IO ‘17에서 Kotlin을 공식 안드로이드 플랫폼 언어로 선언한 이후 최근 Kotlin은 엄청난 인기를 끌고 있습니다. 저를 포함한 많은 이들이 Kotlin이라는 언어의 미래와 수명에 대해 품고 있던 의심이 이 발표 덕분에 종식될 수 있었죠. Kotlin을 배우기 위한 최적의 타이밍을 기다리고 있었다면, 바로 지금이 그때입니다.

Kotlin이란?

Kotlin은 최신 멀티 플랫폼 애플리케이션을 개발하기 위해 정적 타입 프로그래밍 언어입니다. Intellij와 Android Studio를 개발한 JetBrains이 2011년 출시한 이후 5년 동안 기하급수적으로 성장했습니다. Spring, Gradle과 같은 프레임워크에서 사용할 수 있으며, Pinterest, Evernote, Atlassian과 같은 대기업 제품에 사용합니다. Kotlin을 사용해본 적이 없다면, 이 언어의 장점이 무엇인지 궁금하실 겁니다.

Kotlin의 장점

Kotlin은 다양한 언어 기능을 제공한다는 강점이 있습니다. 또한, 변수를 nullable이나 nullable이 아닌 것으로 명시적으로 정의하므로 코드에서 발생하는 NullPointerException 수를 줄여줍니다. 게다가 해당 값이 변하지 않음을 컴파일러가 파악할 수 있어서 코드를 최적화하는 불변 값인 val을 지원합니다. val 덕분에 다른 개발자도 코드를 읽으면서 해당 값이 불변임을 파악할 수 있습니다.

이런 개발 뉴스를 더 만나보세요

가독성 부분을 좀 더 설명하자면, Kotlin은 타입 유추나, 익명의 내부 클래스를 대체할 수 있는 퍼스트 클래스 함수, 혹은 선택적인 세미콜론과 같은 Java 코드를 사용하지 않으므로 Java를 읽기 어렵게 하는 많은 기반 코드에서 해방될 수 있습니다. 또한, 명명 인자, 기본값과 오퍼레이터 오버로딩 등 코드의 가독성과 표현력을 높이는 기능들도 추가했습니다.

개인적으로는 클래스에 확장 메서드를 제공하는 기능이 가장 훌륭한 것 같습니다. String과 같은 최종 클래스에 메서드를 추가하고 싶은가요? Kotlin이라면 아주 쉽게 할 수 있습니다.

String.funName(){/*Custom Function now on all strings in your app*/ }

이 기능은 빙산의 일각일 뿐입니다. Java보다 나은 추가 기능이 더 많이 있습니다. 기존의 글 하나하나만 보더라도 정말 많은 방법을 배울 수 있죠. 풍부한 생태계가 형성돼 있어서 시작할 때 참고할 자료들도 많습니다. 이런 좋은 자료들을 간단히 소개하겠습니다.

참고 자료

공식 서적

Kotlin 학습을 위한 책으로는 아래 두 책이 인기 있습니다. (둘 다 영문판입니다.)

저는 Kotlin in Action을 가지고 있는데 안드로이드뿐만 아니라 안드로이드 이외의 부분까지 Kotlin의 전반적인 사용법을 알려주고 있어서 좋습니다. 사실 Kotlin은 안드로이드 전용 언어가 아니므로 안드로이드만 타깃으로 하지 않습니다. 즉, Kotlin은 Java가 돌 수 있는 곳이라면 서버나 클라이언트, 어디에나 적용할 수 있죠. 또한, Kotlin은 JavaScript를 타깃으로 하거나, JavaScript로 변환할 수도 있고 나아가 Kotlin Native로 iOS에서 실행되도록 컴파일할 수도 있습니다.

Kotlin Playground

Kotlin을 배우면서 코드를 직접 시험해볼 수 있는 곳도 있습니다. try.kotl.in에서는 어떤 것이 동작하는지 확인할 수 있습니다. 자유 형식으로 코드를 입력하거나 브라우저에서 다양한 소스로부터 코드 조각을 가져올 수도 있습니다.

kotlin-org-screenshot

또한, Kotlin in Action 책과도 통합할 수 있으므로 이 책으로 학습하는 경우 챕터와 섹션별로 모든 예제를 볼 수도 있습니다. 코드를 바꿔가면서 내용을 학습할 수 있습니다.

커뮤니티

유저 그룹

Kotlin 유저 그룹이 있는 경우 Kotlin community page에서 나라나 도시 이름을 통해 확인할 수 있습니다. (한국은 Kotlin Korea 모임이 있습니다) 혹시 근처에 유저 그룹이 없다면 새로 시작해 보세요! 생각하는 것보다 훨씬 쉽게 시작할 수 있습니다. Jetbrains의 시작 가이드를 참조하면 도움이 될 겁니다.

유저 그룹은 배움을 위한 좋은 장으로 다른 사람들과 부담 없이 지식을 공유할 수 있습니다.

스터디 그룹

스터디 그룹에 참여하면 사람들과 함께 배워나가면서 Kotlin 실력을 안정적으로 일정 수준 이상으로 향상할 수 있습니다. 저희 마을의 경우 매주 목요일에 근처 커피숍에서 만나는 그룹인 Kotlin & Coffee 모임이 있어서 정말 큰 도움을 받고 있죠.

스터디 그룹을 시작하는 것도 정말 간단합니다. 같이 공부할 사람을 지역 GDG나 Kotlin 유저 그룹에서 찾아보세요.

Slack

Jetbrains는 공식 Slack 팀인 kotlinlang.slack.com 을 운영하고 있습니다. 무료로 누구나 참여할 수 있으며 질문에 대한 대답도 구할 수 있습니다. 열정 가득한 커뮤니티 구성원들이 대부분 몇 초 안에 응답을 해주곤 합니다.

kotlin-slack

온라인 학습 리소스

Pluralsite, Udemy, Castor.io 등 빠르게 배울 수 있는 온라인 사이트들이 많습니다. 안드로이드에서 사용하기 위한 목적으로 Kotin을 배우고자 한다면 안드로이드 개발자를 타깃으로 하는 Caster.io가 좋습니다.

바로 여기, Realm 아카데미에서도 Kotlin에 대해 많은 것을 배울 수 있습니다. Realm은 여러분의 학습 시간을 절약할 수 있도록 좋은 컨텐츠를 선별해서 제공합니다. Realm 아카데미에서 Kotlin 세계로 향하는 여행을 시작해 보세요! 그리고 업데이트된 컨텐츠가 있는지 자주 들러서 확인해 주세요.

결론

여러 가지 도구, 라이브러리, 프레임워크 등이 성숙되면서 개발자 기반과 새로운 앱 개발이 혁명적으로 발전하는 안드로이드 개발의 황금기가 왔습니다. Kotlin은 Google의 지원에 힘입어 이런 성장에 더욱 크게 기여할 것입니다. 이 기회를 놓칠 수는 없겠죠? Kotlin 세계로 함께 출발해 보세요!

다음: Kotlin in Depth#1: 안드로이드 공식 언어가 된 Kotlin을 알아보자

General link arrow white

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Eric Maxwell

Eric은 Realm의 제품 엔지니어입니다. 그는 십 년 이상 의료, 보험, 도서관학, 민간 항공을 비롯한 여러 산업 분야의 다양한 회사를 위해 소프트웨어를 설계하고 개발해 왔습니다. 현재는 교육, 멘토링 및 모바일 개발에 주력하고 있으며, Java, Android, iOS 강의를 개발하고 강의했습니다. 여가시간에는 가족과 함께 시간을 보내고 여행하고 즉흥 코메디 쇼를 즐깁니다.

4 design patterns for a RESTless mobile integration »

close