프로그래밍언어 (1)

💻 Programming

[Kotlin/JVM] 코틀린 언어의 특징 (코틀린이란?)

지난 포스팅에서 간략하게 코틀린의 기본 문법이 어떻게 생겼는지에 대해서 알아보았는데, 자바를 많이 닮은 언어라고 느꼈으며 매우 오랜만에 새로운 언어를 공부하는 터라 새롭고 신기하고 흥미로움을 많이 느꼈다. 그래서 회사 도서관에서 코틀린 in action 책을 빌려서 읽어볼 예정이며, 책에서 배운 내용도 포스팅을 하려고 한다.

 

우선 깊이있게 문법공부를 시작하기 전에 코틀린이 어떤 언어인지에 대한 내용부터 좀 더 자세히 알아야 겠다는 생각이 들어 책에서 관련 부분을 읽어보았고 그 내용을 정리해본다.

 

코틀린의 주요 특성

1. 대상플랫폼: 서버, 안드로이드 등 JVM이 설치될 수 있는 모든 플랫폼

- 이 부분은 자바를 대체할 새로운 언어임을 확실히 보여주고 있습니다.

 

2. 정적 타입 언어

- 컴파일 시에 오류를 감지하여 배포 후 런타임에 발생할 오류를 미리 예방할 수 있습니다.

 

3. 함수형 프로그래밍 지원

- 함수형 프로그래밍의 핵심개념은 3가지가 있죠. 일급시민(first-class), 불변성(immutability), 그리고 부수효과(side-effect)가 없다는 것. 코드를 더 간결하게 작성할 수 있게 해주고, 다중 스레드를 사용해도 안전하며, 테스트가 쉽다고 얘기합니다. 특히 다중 스레드 사용이 안전하다는 것은 함수 내에서 외부 객체의 상태변경을 하지 않기 때문이라고 얘기합니다.

 

4. 무료 오픈소스

- 가장 중요한 특징 중 하나라고 할 수 있죠. 그동안 한국의 웹애플리케이션 개발에 큰 기여를 한 Java는 오라클의 손에 넘어간 뒤로 유료화가 진행되고 있기 때문에 한국 기업들에서는 자바를 대체할 언어를 찾으려고 할겁니다. 

 

5. 기존 Java 소스코드와의 연동

- 이건 내가 생각하는 코틀린의 정말 중요한 특성이다. 기존 자바소스 코드를 코틀린 프로젝트로 불러와서 사용이 가능하다는 점은 정말 훌륭한 특성이다. 

 

코틀린의 철학

1. 실용성 : 이건 뭐 말할 필요가 있을까, 단지 연구를 위한 목적으로 개발된 언어가 아니라는 점

2. 간결성 : 더이상 개발자가 getter, setter, toString 등의 코드를 작성할 필요없다. 기본적으로 제공한다. 

3. 안전성 : 정적 타입 언어이니 컴파일 시점에 오류를 찾아낸 다는 점, 그리고 자바에서 흔히 볼 수 있는 ClassCastException, NPE 등을 미리미리 감지할 수 있도록 설계되었다는 점 등이 있다.

4. 상호 운용성 : 자바 코드를 그대로 가져다 쓸 수 있고 자바 코드에서 코틀린 코드를 가져다 쓸 수 있다. 심지어 코틀린 코드에서 자바로 정의한 클래스를 상속/구현도 가능하다. 또한, 자바-코틀린 변환기를 이용하여 기존 자바코드를 코틀린 언어로 변경하는 것도 가능하다. 이는 인텔리J뿐만 아니라 이클립스나 웹에서도 가능하다고 한다.

 

 

다음은 코틀린 문법을 테스트 해볼 수 있는 놀이터이다. 각종 코틀린 코드 샘플 예제도 확인할 수 있으니 코틀린에 대해 더 공부해보고자 한다면 자주 들러 놀다가자.

 

코틀린 온라인 놀이터 : https://play.kotlinlang.org/

Try Kotlin

Try Kotlin right in the browser.

try.kotlinlang.org