Kotlin

[Kotlin] 1. Kotlin의 정적 타입 지정 언어

반응형

2022.01.21 - [Kotlin] - [Kotlin] 2. 함수형 프로그래밍을 지원하는 코틀린의 핵심 개념

코틀린은 정적 타입 지정 언어이다. 

  • 정적 타입 지정(statically typed)

모든 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있고 프로그램 안에서 객체의 필드나 메소드를 사용할 때 마다 컴파일러가 타입을 검증해준다는 뜻.

  • ↔ 동적 타입(dynamically typed) 지정 언어

타입과 관계없이 모든 값을 변수에 넣을 수 있고, 메소드나 필드 접근에 대한 검증이 실행 시점에 일어나며, 그에 따라 코드가 더 짧아지고 데이터 구조를 더 유연하게 생성하고 사용할 수 있다. 하지만 반대로 이름을 잘못 입력하는 등의 실수도 컴파일 시 걸러내지 못하고 실행 시점에 오류가 발생(runtime error)

ex) JVM에서는 그루비(Groovy), JRuby

  • 타입 추론

한편 자바와 달리 코틀린에서는 모든 변수의 타입을 프로그래머가 직접 명시할 필요가 없다. 대부분의 경우 코틀린 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추할 수 있기에 프로그래머는 타입 선언을 생략할 수 있다.

ex) var x = 1, val name = “철수”

  • 정적 타입 지정의 장점
  1. 성능 : 실행 시점에 어떤 메소드를 호출할지 알아내는 과정이 필요 없으므로 메소드 호출이 더 빠르다
  2. 신뢰성 : 컴파일러가 프로그램의 정확성을 검증하기 때문에 실행 시 프로그램이 오류로 중단될 가능성이 적어진다
  3. 유지 보수성 : 코드에서 다루는 객체가 어떤 변수에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 더 쉽다
  4. 도구 지원 : 정적 타입 지정을 활용하면 더 안전하게 리팩토링 할 수 있고, 도구는 더 정확한 코드 완성 기능을 제공할 수 있으며, IDE의 다른 지원 기능도 더 잘 만들 수 있다
  • 널이 될 수 있는 타입(Nullable type)
    • 컴파일 시점에 널 포인터 예외가 발생할 수 있는지 여부를 검사할 수 있어서 좀 더 프로그램의 신뢰성을 높일 수 있다
  • 함수 타입(function type)
반응형