Kotlin 기초 - 코틀린(Kotlin)이란?

안녕하세요. 이번 시간에는 코틀린의 기본적인 원리와 코틀린이 쓰이는 곳에 대하여 개꿀떡 해보겠습니다.


1. 코틀린(Kotlin)이란?

- 코틀린(Kotilin)은 안전성, 간결성과 표현력, 상호운용성 강조하는 다중 패러다임, 다중 플랫폼 프로그래밍 언어 입니다.

 

① 안전성

- 코틀린은 몇가지 특징으로 인해 프로그래머의 오류를 방지할 수 있는 안전한 프로그래밍 언어 입니다.

< 코틀린 특징 >
1. 개발자가 명시적으로 타입을 지정하지 않아도 되는 "Type Inference"
2. null의 사용을 제한할 수 있고, NullPointerExeption을 쉽게 방지할 수 있는 "Nullable type"
3. 타입을 안전하게 변환할수 있고, 실행 시점에 타입 캐스트 오류를 방지할 수 있는 "Smart Cast"

 

② 간결성과 표현력

- 다른 사람이 짠 코드나 본인이 짠 코드를 빠르게 읽고 이해할 수 있는 코드를 짜는걸 우선으로 한다.

- 코틀린은 자바의 getter나 setter, 익명 클래스, 명시적인 위임 등과 같은 불필요한 준비 코드가 필요 없습니다.

 

③ 상호운용성

- 코틀린은 독립적인 언어가 아니며 자바와 상호 운용을 목적으로 설계되었다.

- 이외에도 자바스크립트, C / C++ / 오브젝트 C / 스위프트 코드와도 상호 작용을 하고 있다.

 

④ 다중패러다임

- 코틀린은 자바의 객체지향 패러다임, 함수형 프로그래밍, 도메인 특화 언어, 동시성 프로그래밍 이다.

1. 객체지향 패러다임 : 객체(상태를 저장할 수 있는 자율적으로 행동하는 주체)를 중심으로 프로그래밍
2. 함수형 프로그래밍 :  함수를 다른 값과 마찬가지로 다룬다는 생각에서 비롯된 프로그래밍
3. 도메인 특화 언어 : 특정 기능이나 영역을 위해 만들어진 언어
4. 동시성 프로그래밍 : 코루틴을 도입하면서 코틀린도 동시서 프로그래밍 지원

⑤ 다중 플래폼

- 주로 JVM과 안드로이드가 주 대상이지만 NodeJS, 자바스크립트, macOS, 리눅스, 윈도우, 라이브러리 및 애플리케이션 네이티브 지원

 

2. 코틀린 사용처

① 코루틴

- 일시 중단 가능한 계산이라는 개념 덕분에 코틀린은 async/await, 퓨처, 프라미스, 액터 등 동시성 관련 프로그래밍 패턴을 지원 할 수 있다.

1. 스레드에 대한 더 가벼운 대안
2. 유연한 스레드 디스패치 메커니즘
3. 일시 중단 가능한 시퀀스와 이터레이터
4. 채널을 사용한 메모리 공유
5. 액터를 통해 메시지 전송방식으로 상태 공유

 

② 테스트

- 테스트를 정의하거나 객체를 모킹 하고 싶을 때, 자바 테스트 프레임 워크 중 일부를 코틀린에 적용 가능 하다.

1. 모키토-코틀린은 유명한 모키토 프레임워크를 확장한 것으로 코틀린 객체 모킹을 단순화 해준다.
2. 스펙은 행위 주도 테스트 프레임워크로 자스민이나 저킨 스타일의 테스트 케이스를 정의를 지원한다.
3. 코테스트는 스칼라테스트에 의해 영감을 얻은 프레임워크로, 유연한 테스트 정의와 단언문을 지원한다.

 

③ 안드로이드 개발

- 코틀린의 주된 응용 분야이자 가장 활발하게 성장하는 분야

- 이 블로그에서 주되게 다룰 내용 입니다.

 

④ 웹개발

- 유명한 웹/엔터프라이즈 애플리케이션 프레임워크들은 자신의 기능을 좀 더 코틀린 다운 방식으로 활용.

 

⑤ 데스크톱 애플리케이션

- 자바FX 기반의 토네이도FX 사용


다음 시간부터는 본격적으로 코틀린의 기본적인 구문에 대해 알아보겠습니다. 감사합니다 :)

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유