Kotlin 시작하기

INDEX

Starting Kotlin

Google이 채택한 Kotlin을 공부해보고자 한다.

Overview

Kotlin for Server-Side

Kotlin은 Server-Side 어플리케이션을 개발하기에 가장 적절하다. 매우 부드러운 학습 곡선을 가지고 있고 기존에 Java로 개발된 기술 스택에 100% 호환성을 가지면서 정확하고 간결한 코드 작성을 지원한다.

  • 표현성(Expressiveness)
    • Kotlin의 혁신적인 특징들(Type-Safe Builders, Delegated Properties 등)은 강력하고 사용하기 쉬운 추상화를 구현하는데 도움이 된다.
  • 확장성(Scalability)
    • Kotlin의 Coroutines 지원은 적절한 하드웨어 요구사항을 가지고 많은 클라이언트를 다룰 수 있도록 확장하는 Server-Side Application을 구축하는데 도움이 된다.
  • 상호 운용성(Interoperability)
    • Kotlin은 모든 Java Framework들과 완벽하게 호환되므로 친숙한 기술 스택들을 유지하면서 최신 언어의 이점을 누릴 수 있다.
  • 마이그레이션(Migration)한글로 뭐라고 하지?
    • Kotlin은 Java에서 Kotlin으로의 큰 코드 마이그레이션을 점진적으로 지원한다. Java로 된 시스템의 오래된 부분들을 유지하면서 Kotlin으로 새 코드를 작성할 수 있다.
  • 도구 지원(Tooling)
    • IntelliJ IDEA Ultimate같은 훌륭한 IDE를 사용하면 Java Spring과 같은 Framework에 대한 도구들을 제공한다.영업하네
  • 학습 곡선(Learning Curvel)
    • Java 개발자에게 있어서 Kotlin을 시작하기는 쉽다. Java 코드를 Kotlin 코드로 자동으로 바꿔주는 Kotlin 플러그인이 첫 걸음마를 도와준다.

Kotlin for Android

Kotlin은 Android 어플리케이션 개발에 아주아주 적합하다.그러니 구글이 선택했… 새로운 제약없이 Android 플랫폼에 현대 언어의 모든 장점을 제공한다.

  • 호환성(Compatibility)
    • Kotlin은 JDK 6에 완벽하게 호환되며, 오래된 버전의 Android 기기에서도 오류없이 동작한다. Kotlin의 도구 지원(Tooling)은 Android Studio를 완벽하게 지원하고 Android 빌드 시스템과 완벽히 호환된다.
  • 성능(Performance)
    • Kotlin으로 만든 어플리케이션은 거의 비슷한 바이트 코드 구조 때문에 Java로 만든 것처럼 빠르게 동작한다. Kotlin의 Inline-Function 지원과 함께, 람다식을 사용한 코드는 대부분 같은 기능의 Java 코드보다 빠르게 동작할 것이다.
  • 상호 운용성(Interoperability)
    • Kotlin은 100% Java와 호환되며, Kotlin 어플리케이션에서 모든 Android 어플리케이션 라이브러리를 사용할 수 있다. 여기에는 주석처리 작업도 포함되어 있어서, 데이터바인딩과 Dagger (?) 작업도 포함된다.
  • 발자국?(Footprint)
    • Kotlin은 ProGuard를 사용하여 더 감소된 매우 컴팩트한 런타임 라이브러리를 가지고 있다. 실제 어플리케이션에서 Kotlin Runtime은 겨우 100개 정도의 메소드만 .apk 파일에 추가한다.
  • 컴파일 시간(Compilation Time)
    • Kotlin은 효율적인 증분 컴파일(Incremental Compilation)을 지원한다. Clean Build의 경우 추가적인 오버헤드가 존재하지만, 증분 컴파일(Incremental Compilation)은 보통 Java만큼 빠르거나 더 빠르다.
  • 학습 곡선(Learning Curve)
    • 똑같은 내용이라 생략!

Kotlin for JavaScript

Kotlin은 JavaScript를 타겟하여 기능을 지원한다. Kotlin을 JavaScript로 변환하는 방식으로 지원한다. 현재 ECMAScript5.1를 지원하고 ECMAScript 2015 또한 지원할 예정이다.

JavaScript를 타겟으로 골랐을 때, 표준 라이브러리 뿐만 아니라 프로젝트의 모든 Kotlin들이 JavaScript로 변환된다. 그러나 사용된 라이브러리나 Java Framework, JVM, JDK는 제외시킨다. 컴파일 중에 Kotlin이 아닌 파일은 모두 제외된다.

  • Kotlin 컴파일러의 목적
    • 파일 사이즈 최적화
    • 읽을 수 있는 JavaScript로 변환
    • 기존 모듈 시스템과 호환
    • JavaScript나 JVM을 타겟으로 할 때 최대한 표준 라이브러리와 같은 기능성을 제공

Install IDE

Kotlin은 JetBrains에서 만든 언어다. Kotlin을 만든 회사에서 만든 IDE가 가장 괜찮지 않을까? 윈도우 환경에서 Java IDE로 IntelliJ IDEA를 사용했었는데, 이 IntelliJ IDEA가 JetBrains에서 만든 IDE다. 그래서 IntelliJ IDEA를 최신 버전으로 업데이트했다.

IntelliJ IDEA

IntellJ IDEA는 다음 링크에서 다운로드할 수 있다.

IntelliJ IDEA Download

IntelliJ IDEA는 Community Version과 Ultimate Version으로 나뉜다.

  • Community Version
    • 오픈 소스이며, Apache License 2.0을 따름
    • Java, Kotlin, Groovy, Scala, Android 지원
    • Maven, Gradle, SBT 지원
    • Git, SVN, Mercurial, CVS 지원
  • Ulitmate Version
    • Commercial License를 따름
    • Community Version의 기능을 모두 지원.
    • Detecting Duplicates 지원
    • Perforce, ClearCase, TFS 지원
    • JavaScript, TypeScript 지원
    • Java EE, Spring, GWT, Vaadin, Play, Grails, Other Frameworks 지원
    • Database Tools, SQL 지원

Ultimate Version도 Free Trial이라 적혀있지만 Kotlin 기초를 익히는데에는 Community를 설치해도 무방할 것 같다.

Eclipse

Kotlin은 Java IDE의 거성 Eclipse에서도 지원된다. Marketplace에서 Kotlin Plugin을 설치하면 이용가능한 것으로 보인다. IntelliJ를 선호하므로 이하 생략


END

대충 Kotlin을 알아보기도 했고 IDE 설치도 했으니 Kotlin을 공부해보자!