프로그래밍언어 코틀린 시작하기

1. 코틀린 이란?


코틀린(Kotlin) 이란?

코틀린은 현재 가장 빠르게 성장하고 있는 프로그래밍 언어중 하나로 애플의 스위프트(Swift)등과 함께 모던 프로그래밍 언어(Modern Programming Language)로 불리운다.

코틀린은 자바 개발도구인 IntelliJ IDEA로 유명한 JetBrains에서 기존 프로그래밍 언어들의 문제점을 보완하고 장점들만 모아 만든 프로그래밍 언어라고 할 수 있다.

코틀린의 주요 특징은 다음과 같다.

다양한 프로그래밍 패러다임 지원

코틀린은 아래와 같은 다양한 프로그래밍 패러다임을 제공합니다.

절차지향 프로그래밍

코틀린은 JavaScript나 C 같은 절차지향 코드를 작성할 수 있고 그 코드를 컴파일 없이 스크립트처럼 사용할 수 있습니다. 이러한 특징의 장점은 다음과 같습니다.

코틀린은 Java처럼 클래스를 통해 객체지향 프로그래밍이 가능합니다. 그리고 코틀린은 보일러플레이트 코드가 필요하지 않기 때문에 더 적은 코드로 Java와 같은 결과물을 만들 수 있습니다.

보일러 플레이트 코드 최소한의 변경으로 여러 곳에서 반복적으로 재사용되는 코드

함수형 프로그래밍

코틀린은 함수형 프로그래밍으로 코드를 더 명확하고, 간결하게 작성할 수 있습니다.

동시성 / 비동기 프로그래밍

코틀린은 JDK를 사용하면 동시성 프로그래밍이 가능하고, Coroutine을 사용하면 비동기 프로그래밍이 가능합니다.

타입추론으로 사용하는 정적 타입

코틀린은 컴파일 시간에 타입 안정성을 제공하는 정적 타입 언어로, Nullable 타입과 Non-Nullable 타입을 구분하는 등 더 안정적입니다.

또한, 코틀린은 Scala, F#처럼 아주 강력한 타입추론을 하기 때문에 대부분의 경우 타입을 입력할 필요가 없습니다. 타입이 명확하지 않은 경우엔 개발자에게 타입을 명시할 것을 요청합니다.

풀스택 개발을 위한 하나의 언어

코틀린 코드는 kotlinc-jvm을 통해 가상 머신에서 실행되는 바이트 코드로 컴파일됩니다.

Back-end에서 Spring 프레임워크를 사용하는 경우 혹은 안드로이드나 IOS 네이티브 코드가 필요한 경우 코틀린을 통해 코드를 작성할 수도 있습니다. 필요하다면 코틀린 코드와 자바 코드를 섞어서 사용할 수도 있습니다.

또, 코틀린은 JavaScript로 transpile될 수 있습니다. 이런 경우 Node.js 서버에서 사용할 수 있고 웹 브라우저에서 front-end용으로 사용할 수도 있습니다.

Kotlin을 선택해야 하는 이유

less is more이라는 철학으로 보일러플레이트 코드를 덜 쓰도록 해줍니다. 명령형 프로그래밍과 함수형 프로그래밍을 섞어서 쓸 수 있게 해줍니다. 다은 정적 타입 언어들에 비해 훨씬 많은 complie-time safety를 제공합니다. Coroutine을 통해 쉽고 성능 좋은 비동기 프로그래밍이 가능합니다. Java에서 추후에 제공하기로 한 기능을 이미 제공하고 있습니다. Java 코드와 같이 사용할 수 있어서 점진적으로 코틀린을 도입할 수 있습니다. 많은 DSL을 사용할 수 있습니다. 다양한 형태로 컴파일 혹은 트랜스파일될 수 있기 때문에 시스템에서 중복을 줄일 수 있습니다.