얼마 전 부터 코틀린 학습을 시작했습니다. 아직 Java를 다루는 것도 썩 자신이 없는데 뭔가 새로운 언어를 배우는 게 맞나 싶은 의문이 있지만 많은 사람들이 점점 코틀린으로 옮기는 데는 이유가 있을 테니 일단 시작부터 해보려고 합니다.
책의 모든 내용을 다 올릴 수는 없을테니 읽으면서 중요하다 싶은 내용만 추려서 블로그에 정리하겠습니다.
코틀린의 주목적은 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결한 언어를 제공하는 것입니다. JVM 기반으로 동작할 수 있도록 설계되었기 때문에 기존 자바 언어를 완벽하게 대체할 수 있으며 자바 + 코틀린을 함께 사용하는 것도 가능합니다.
자바와 마찬가지로 정적 타입 언어입니다. 프로그램 구성 요소의 타입을 컴파일 시점에 알 수 있으므로 필드나 메소드의 타입을 컴파일러가 검증해 줍니다.
반대로 동적 타입언어는 타입과 관계없이 모든 값을 변수에 넣을 수 있고, 메소드나 필드에 대한 검증이 실행 시점에 일어납니다.
코틀린 언어와 컴파일러, 라이브러리 등 코틀린과 관련된 모든 도구는 오픈소스이며 어떤 목적에든 무료로 사용가능합니다.
코틀린은 실용성, 간결성, 안전성, 상호운용성이라는 철학을 중심으로 설계됐다.
특정 패러다임을 사용하도록 강제하지 않으며, IntelliJ와 높은 호환성을 제공한다.
짧고 간결한 코드 = 높은 이해도 제공 + 유지보수의 도움 = 생산성 향상이라는 믿음 아래에 간결한 코드 문법을 제공한다. 단, 숏코딩 자체가 코틀린의 본질은 아니다.
JVM위에서 동작하기 때문에 기본적인 안정성이 있으면서 NPE를 방지하고, 변수의 불변성을 쉽게 지킬 수 있다.
기존 자바 라이브러리를 그대로 쓸 수 있고, 자바 코드와 함께 사용할 수 있다. 코틀린에는 롬복이 필요없지만 특정 버전 이후부터 롬복을 지원하면서 최대한 기존 자바 사용자를 배려하는 느낌을 받을 수 있다.