본문 바로가기
카테고리 없음

Kotlin 준비

by Sonagiya 2021. 1. 5.
반응형

1. 개요

JetBrains에서 개발한 언어이다. 간결한 문법을 가지고 있으며, 세미콜론이 옵션이다. JVM 기반의 언어이며, Java간의 상호 운용이 100% 지원된다.[2] 안드로이드, Tomcat[3] , 자바스크립트, Java EE, HTML 5 등을 개발할때 사용할 수 있다고 한다. 현재 공식 1.1.4 버전이 나와 있다.

구글에 의해 Android Studio 3.0부터 안드로이드 공식언어로 추가되었다.

2. 특징

  • 장황했던 자바와 비교하면 눈물날 정도로 간결한 문법을 제공한다. 간결한 문법을 제공하면서도 런타임 오버헤드가 거의 없다.
  • 오버헤드 없는 널 안전성을 제공한다. 코틀린의 변수는 Nullable(널 값 사용 가능)과 NotNull(널 값 사용 불가)로 나뉘는데, 변수 선언 시 '?'를 붙여 Nullable로 만들 수 있다.
  • 예외를 검사하지 않는다.
  • 확장함수, 연산자 오버로딩을 지원한다.
    예를 들어 Int형을 확장해 'i = 3 power 4' 식으로 새 연산자를 만들 수 있다.[4]
  • API 문서에 자바의 HTML대신 Markdown을 사용한다.
  • == 연산자가 생각하는 대로 작동한다.
    자바에서는 String i와 String j가 같은 문자열을 담고 있어도 가리키는 객체는 다를 수 있으므로 i == j는 false가 될 수 있다. 코틀린에서 ==는 equals()와 똑같이 작동한다. 따라서 i == j는 true다. 자바의 ==를 쓰려면 ===를 쓰면 된다. !=를 쓰려면 !==
  • static 메서드가 없다. companion object를 사용하자. 자바 코드에서 접근하려면 '클래스명.Companion.메서드_혹은_get변수명()'을 쓰면 된다.
  • 자바6에 호환된다.
  • 자바와의 상호 운용이 100% 지원된다.

3. 적용시 주의사항

  • Null Point 에 주의사항
    • Nullable, Non-null 타입을 업격히 구분하므로 개발시 확실히 구조를 잡고 넘어가지 않으면 앱이 예상치않게 종료될 수 있다.
  • Java 클래스에서 override 된 메소드는 다시한번 확인하자
    • Java에는 primitive type(int, long 등)을 제외하고 모든 변수가 null을 허용하기 때문에 무심코 넘어가면 앱이 예상치않게 종료될 수 있다.
반응형

댓글