티스토리 뷰

Computer/Android

[Kotlin] 코틀린 이란?

jamezc 2020. 9. 16. 01:21

 

 

코틀린의 특성

기존 JAVA를 사용하던 곳에서 코틀린을 사용하면, 더 적은 코드로 더 편하게 프로그래밍을 할 수 있습니다.

그리고, 자바뿐 아니라 자바 스크립트로도 코틀린을 컴파일 할 수 있습니다. 그래서 코틀린 코드를 웹 브라우저나 노드에서 실행 할 수 있습니다.

  • 코틀린(Kotlin)은 인텔리제이(IntelliJ IDEA)라는 제품으로 유명한 젯브레인(JetBrains)에서 만든 언어
  • 자바와 100% 호환되어 자바로 작성된 프로젝트에 코틀린 코드를 추가할 수도 있고 자바코드를 모두 코틀린으로 대체할 수도 있습니다.

특징

  1. 간결한 문법
  • 문장 끝에 세미콜론(;)을 넣지 않아도 됩니다.
  • new 키워드를 쓰지 않고 객체를 생성 합니다.
  • 타입 추론을 지원하므로 일반적인 경우 타입을 적지 않아도 됩니다.

2. 널 안정성

  • 객체 타입의 변수에서 널(null) 값의 허용 여부를 구분하지 않던 자바와 달리, 코틀린은 이를 명확히 구분합니다. 또한 널 값의 허용 여부를 컴파일 단계에서 검사하므로 런타임에서 발생하는 오류를 대폭 줄일 수 있습니다.

3. 가변/불변 구분

  • 변수 및 변수 내 할당된 값의 불변 여부를 구분합니다.
  • 최초 생성 시 할당된 값을 이후에도 변경할 수 있는지 여부는 변수 선언 시 사용하는 키워드인 val과 var로 구분합니다. (값=value, 변수=variable)

4. 람다 표현식 지원

5. 스트림 API 지원

6. 완벽한 자바 호환성

 

정적 타입 지정 언어

코틀린은 정적 타입(Statically typed) 지정 언어입니다. 정적 타입 지정이라는 말은 프로그램의 모든 구성 요소의 타입이 컴파일 되는 시점에 알 수 있고, 컴파일러가 타입을 검증해준다는 뜻입니다. (동적 타입 지정 언어에는 JVM에서는 Groovy, JRuby가 있습니다. 유연하게 개발을 할 수 있지만, 실수로 인한 오류가 잦습니다.)

 

자바와 달리 코틀린에서는 변수 타입을 프로그래머가 직접 명시를 해줄 필요가 없습니다. 코틀린 컴파일러는 문맥으로부터 변수 타입을 자동으로 유추 할 수 있습니다. 예를들어, "var x = 1"과 같은 코드가 있을때 Int라는 타입을 지정해주지 않았지만, 코틀린 컴파일러는 정수 값으로 변수를 초기화합니다. 이런 기능을 타입 추론(type inference)라고 합니다. 그렇기 때문에 타입을 직접 선언해줘야 하는 불편함이 사라집니다.

 

정적 타입 지정의 장점을 정리하자면,

  • 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 없어서 메소드 호출이 빠릅니다.

  • 컴파일러가 정확성(Correctness)을 검증하기 때문에 오류가 생길 확률이 줄어듭니다.

  • 코드에서 다루는 객체가 어떤 타입인지 알 수 있어서 코드를 볼때 편합니다.

 

코틀린을 보면 타입이 클래스, 인터페이스, 제너릭스 등 자바와 비슷한 부분이 많습니다. 차이점이 있다면 코틀린에는 nullable type이라는 타입이 존재합니다. 널이 될 수 있는 타입이라고 생각하면 됩니다. 이 타입을 이용해서 컴파일 시점에 널 포인트 예외(null pointer exception)가 발생할 수 있는지 여부를 검증 할 수 있습니다. (이 말은 if문을 이용하여 특정한 변수가 null을 가지는 경우에 대한 처리를 따로 하지 않아도 된다는 것입니다.)

 

댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글