본문 바로가기
코틀린

Part 1 - 코틀린 소개

by N.Damgom 2021. 8. 1.

 

코틀린이란?

 

자바 플랫폼(JVM)에서 돌아가는 새로운 프로그래밍 언어이다.

 

코틀린은 1. 간결하고 2. 실용적이며 3. 상호운용성을 중시하며 4. 안전하다.

 

코틀린은 범용 프로그래밍 언어로써, 서버 개발, 안드로이드 앱 개발 뿐만 아니라 다양한 분야에서 사용할 수 있다.

 

코틀인은 정적 타입 지정 언어이다. 객체의 타입을 컴파일 시점에 지정해서 컴파일 타임에 타입 오류를 검증할 수 있다.

정적 타입은 안전하지만 컴파일러에게 더 많은 정보를 제공해줘야하기 때문에 생산성이 떨어진다.

코틀린은 "var x = 1" 처럼 타입 추론 기능을 지원하기 때문에 안전성과 생산성의 트레이드 오프 관계를 벗어난다.

 

코틀린은 함수형 프로그래밍과 객체지향 프로그래밍을 동시에 지원한다. 코틀린에서 함수는 일반 객체이다.

함수형 프로그래밍은 간결하고 추상화가 쉽고, Context에 의존하지 않기 때문에(No side effect) 멀티스레딩 환경에서 안전하다.

또한 코틀린에서 람다식은 인라이닝 되므로 함수 실행을 위한 추가적인 콜스택이 필요하지 않아 성능상 이점이 있다.

하지만 코틀린은 특정 패러다임을 강요하지 않으며, 문제에 따라 명령형 패러다임과 함수형 패러다임을 적절히 선택해 사용할 수 있다.

 

코틀린의 철학 네가지

 

1. 실용성

코틀린은 연구를 위해 만들어진 실험적인 언어가 아니다. 기존 문제 해결에 사용한 검증된 해법과 기능에 의존하는 언어이며 많은 개발자들의 피드백으로 이루어진 언어이다. 특정 패러다임을 강요하지 않으며, 생산성을 위해 IDE와 코틀린 컴파일러 개발이 맞물려 이루어졌다.

 

2. 간결성

대규모 시스템에서 코드를 작성하는 시간보다 코드를 읽는 시간이 더 길다. 따라서 프로그래밍 언어는 코드의 내용을 쉽게 파악할 수 있어야 한다. 코틀린은 getter와 setter와 같은 boilerplate 코드를 묵시적인 제공으로 최소화한다.

또한 API와 함수형 프로그래밍(람다)를 잘 연동해놨기 때문에 간결하게 api를 사용할 수 있다.

간결하다는 것이 곧 코드가 짧다는 뜻이 아니다. 코틀린은 이해하기 쉬운 코드를 지향한다. (물론 짧으면 읽기도 좋다)

 

3. 안전성

언어 자체의 설계로 일부 오류를 원천 방지할 수 있다. 또한 Type inference로 Type safety의 비용을 최소화한다.

"?"로 자바의 Optional과 같은 nullable type을 native하게 지원하며 Class Cast Exception을 방지하기 위해 Type 검사와 Type Cast를 일체화한 연산자를 지원한다.

 

4. 상호운용성

코틀린은 자바 표준 라이브러리에 의존한다. 또한 자바와 코틀린 소스파일을 함께 빌드할 수 있다.

코틀린 파일은 자바 파일과 마찬가지로 *.class 파일(바이트코드)로 컴파일되며 *.jar로 패키징된다. jar 파일은 코틀린 런타임에 의해 실행된다.

 

 

 

Tip) 코틀린이 아직 익숙하지 않을 때는 자바로 짜보고 자바 - 코틀린 변환기를 사용해보자.

 

 

'코틀린' 카테고리의 다른 글

Part 5 - 람다로 프로그래밍  (0) 2021.09.09
Part 4 - 클래스, 객체, 인터페이스  (0) 2021.09.05
Part 3 - 함수 정의와 호출  (0) 2021.08.29
Part 2 - 코틀린 기초  (0) 2021.08.20