Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 3.1 KB

kotlin.md

File metadata and controls

36 lines (25 loc) · 3.1 KB

코틀린이란 무엇이며 왜 필요한가?

코틀린은 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어다.
코틀린은 간결하고 실용적이며, 자바 코드와 상호 운용성을 중시한다.
현재 자바가 사용 중인 곳이라면 거의 대부분 코틀린을 활용할 수 있다.
코틀린의 주 목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생상적이며 안전한 대체 언어를 제공하는 것이다.

정적 타입 지정 언어

코틀린도 정적 타입 지정 언어이다. 정적 타입 지정이라는 말은 모든 프로그램 구성 요소의 타입을 컴파일 시점에서 알 수 있고 프로그램 안에서 객체 필드나 메서드를 사용할 때마다 컴파일러가 타입을 검증해준다는 뜻이다. 동적 타입 지정 언어에서는 타입과 관계 없이 모든 값을 변수에 넣을 수 있고, 메서드나 필드 접근에 대한 검증이 실행 시점에서 일어나며, 그에 따라 코드가 더 짧아지고 데이터 구조를 더 유연하게 생성하고 사용할 수 있다. 하지만 컴파일 시 걸러내지 못하고 실행 시점에 오류가 발생한다.

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

정적 타입의 장점

  • 성능: 실행 시점에 어떤 메서드를 호출할지 알아내는 과정이 필요 없음으로 메소드 호출이 더 빠르다.
  • 신뢰성: 컴파일러가 프로그램 정확성을 검증하기 때문에 실행 시 프로그램 오류로 중단될 가능성이 더 적어진다.
  • 유지보수: 코드에서 다른 객체가 어떤 타입에 속하는지 알 수 있기 때문에 처음 보는 코드를 다룰 때도 더 쉽다.
  • 도구 지워니 정적 타입 지정을 활용하면 더 안전하게 리팩토링이 가능하고, 도구는 더 정확한 코드 완성 기능을 제공할 수 있으며, IDE와 다른 지원 기능도 더 잘 만들 수 있다.

간결성

getter, setter, 생성자 파라미터를 필드에 대입하기 위한 로직 등은 자바에서 존재하는 번거러운 준비 코드를 코틀린은 묵시적으로 제공하기 때문에 코틀린 코드는 그런 준비 코드로 인해 지저분 해지는 일이 없다.

다만 setter를 지향하면 안된다는 원칙을 지킬 수 없다.

안전성

코틀린은 JVM에서 실행한다는 사실은 이미 상당한 안전성을 보장할 수 있다는 뜻이다. 코틀린은 타입 시스템은 null이 될 수 없는 값을 추적해, 실행 시점에서 NPE가 발생할 수 있는 연산을 사용하는 코드를 금지한다.

var s2: String? = null // null이 될 수 있음
var s2: String = "" // null이 될 수 없음

코틀린 빌드 과정

코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존된다.