Kotlin - Overview

2 분 소요

Kotlin으로 개발 가능한 Server side, Android, Javascript 개발에 대한 관련 소개한다.

Overview

kotlinlang.org에서 다음 두 참조자료를 요약한다.

내용중 필요에 의해 외부링크를 표시했다. [링크:..] 는 외부 링크이다.

코틀린으로 안드로이드 개발 시작하기

코틀린은 안드로이드 플랫폼에 최신 언어의 잇점을 제공하고 있다.

  • 호환성: JDK 6에 완전 호환하고, 코틀린 앱이 예전 안드로이드 단말에서 문제 없이 동작한다. 코틀린 도구들은 Android Studio에서 지원하고 빌드 시스템을 지원한다.
  • 성능: 동일한 코드 수준에서 유사한 바이트 코드 구조로 Java 대비 빠르다. 또한 코드 작성시 인라인 함수, 람브다 코드 등을 지원해 작성에서도 빠르다.
  • 상호성: 자바와 100% 교류가 가능해서 기존 안드로이드 라이브러리를 사용학, 어노테이션 처리, 데이터 바인딩 및 Dagger 도 잘 작동한다.
  • 공간: 아주 콤팩트한 실행 라이브러리를 가지고 ProGuard 로도 줄일 수 있다. 코틀린 실행시 백여개 메서드만 추가되고 .apk 파일 크기가 100K 보다 작다.
  • 컴파일 시간: 효과적인 증분 컴파일을 지원해서, 완전 빌드시 조금의 오버헤드만 있다. 링크: 증분 빌드가 일반적으로 빠르거나 Java 보다 빠르다
  • 학습곡선: 자바 개발자가 코틀린을 시작하기 쉽다. Kotlin plugin에서 Java를 Kotlin으로 자동 변환해 주고, 링크: Kotlin Koans는 코틀린 특징에 대해 잘 알려주고 있다.

사례

안드로이드 개발 도구

코틀린 팀에서 안드로이드 개발을 위한 도구 세트를 제공하고 있다:

Android Studio는 최신 배포본에 내장되어 있다:

  • 링크: Kotlin Android Extendsions : 컴파일러 확장으로 코드에서 findViewById() 를 사용할 수 있고 이것을 컴파일러 생성 속성으로 교체해 준다.
  • Anko: Android API 전반을 코틀린 친화적 래퍼의 집합을 제공한다. 또한 DSL로 레이아웃 xml 을 코틀린코드로 교체해 준다.

코틀린 안드로이드 개발 시작


코틀린으로 Server-side 개발하기

코틀린은 서버측 개발에도 아주 적합하다.

  • 표현력: 코틀린의 혁신적인 언어 특징들은, 예를 들어 링크: type-safe builder링크: 위임한 특성 들은 강력하고 쉬운 추상화를 구축하게 도와준다.

  • 확장성: 코틀인은 링크: coroutines를 지원해서 최고의 하드웨어 요구로 커다란 수의 클라이언트를 적합한 서버측 앱을 개발할 수 있다.
  • 상호성: 코틀린은 모든 자바 기반 프레임워크에 완전히 호환한다.
  • 이전: 대규모 자바 코드를 점진적이고 단계적으로 이전이 가능하다.
  • 도구: 휼륭한 IDE 지원을 위해 특정-프레임워크 도구를 IntelliJ 플러그인으로 제공한다 - 예를들어 Spring framework.
  • 학습곡선: 자바 개발자가 코틀린을 시작하기 쉽다. Kotlin plugin에서 Java를 Kotlin으로 자동 변환해 주고, 링크: Kotlin Koans는 코틀린 특징에 대해 잘 알려주고 있다.

코틀린 서버측 개발을 위한 프레임워크

  • Spring
  • Vert.x
  • Ktor
  • kotlinx.html

코틀린 서버측 앱 배포

자바 웹 애플리케이션을 지원하는 어떤 호스트에도 배포가 가능하다 - Amazon Web service, Google Cloud platform 등을 포함.

Heroku에 배포하려면 링크: 헤로쿠 정식 튜토리얼을 따라하면 된다.

링크: AWS lab Sample project링크:AWS Lambda functions 사용을 보여주고 있다.

서버측 코틀린 사용층

링크: Corda는 공개소스 분산 원장 플랫폼으로 주요 은행을 지원하는데 코틀린으로 구축되었다.

링크: JetBrains Account 는 JetBrains에서 라이센스 판매와 검증 절차를 담당하는 시스템으로 100% 코틀린으로 2015년 이후 상업적 운영을 하고 있다.

서버측 개발 다음 단계

참조

업데이트:

댓글남기기