[ 코틀린의 주요 특성 ]
1. 호환성
∘ 자바가 실행될 수 있는 환경에서 자바를 대체할 수 있도록 개발된 언어
- 서버상의 코드 ( 웹 어플리케이션의 백엔드)
- 안드로이드 어플리케이션
∘ 자바스크립트 또한 코틀린 컴파일 가능
2. 정적타입 지정 언어
∘ 컴파일 시점에 모든 객체나 메서드 타입을 알 수 있다.
= 컴파일러가 타입을 확정 & 검증
∘ 런타임의 검증을 없애고, 데이터 구조를 유연하게 가져갈 수 있다.
∘ 대부분의 상황에서 코틀린은 타입추론(type inference)이 가능
var n = 10 // 타입추론
var m:Int = 100
3. 함수형 프로그래밍과 OOP
∘ 코틀린은 함수형 프로그래밍이 가능하다.
∘ 함수를 변수에 담을 수 있고, 함수의 parameter, return 으로 함수를 사용할 수 있다.
[ 코틀린의 응용 ]
∘ Null check 부분이 강화되어 NPE(NullPointerException) 의 발생을 줄여준다.
∘ NPE 발생 코드는 컴파일 타임에서 막아준다.
[ 코틀린의 철학 ]
1. 실용성
∘ 실제 문제를 해결하기 위해 만들어진 실용적인 언어
∘ 자바의 불편한 점을 개선하고, 간소화 하는 방향으로 발전
2. 간결성
∘ 개발자가 작성하는 코드 중 의미없는 부분을 줄임
∘ 의미는 없지만 형식을 맞추기 위해 넣어야 하는 부수적인 코드들을 제거가능하도록 한다.
ex) getter, setter를 만들지 않아도 컴파일시 자동생성
∘ 코드가 간결하면 읽고 쓰는 시간이 줄어든다.
3. 안전성
∘ null 관련 부분이 강화되어 컴파일 시점에 NPE를 미리 잡아준다.
∘ ClassCaseException을 좀 더 쉽게 막을 수 있다.
if (value is String) {
println(value.toUpperCase())
}
∘ value is String을 하는 순간 type검사와 casting이 동시에 수행
4. 상호운용성
∘ 기존에 사용하던 라이브러리를 코틀린에서 그대로 사용 가능
∘ 코틀린에서 자바의 코드 상속/구현 가능
∘ 자바의 collection을 그대로 사용
'Kotlin > Kotlin In Action' 카테고리의 다른 글
[Kotlin] 2-5. 코틀린의 예외 처리 (0) | 2022.05.15 |
---|---|
[Kotlin] 2-4. 이터레이션: while & for (0) | 2022.05.15 |
[Kotlin] 2-3. 선택 표현과 처리 : enum과 when (0) | 2022.05.15 |
[Kotlin] 2-2. 클래스와 프로퍼티 (0) | 2022.04.03 |
[Kotlin] 2-1. 함수와 변수 (0) | 2022.03.31 |