코틀린의 특징
1. 정적 타입 언어(Statically Typed)
- 컴파일 시 변수의 '자료형(typed)'이 결정되어 안전함
- 정적 타입 ↔ 동적 타입
- 정적 타입: C, C++, Java, Kotlin...
- 동적 타입: JavaScript, Python, Objective-C, PHP...
- 단, Kotlin/JS 사용 시, 동적 타입 지원을 위해 dynamics 제공
- 자료형(type)을 명시하지 않아도 자료형 추론이 가능
2. Interoperable
- Java와 100% 호환(Kotlin/JVM) 코틀린 컴파일러는 자바 중간코드(ByteCode) 생성
- 이미 존재하는 자바 라이브러리를 그대로 이용
- Java와 Kotlin을 섞어서 써도 됨
3. Null Safety
- NPE(Null Pointer Exception)를 방지할 수 있는 안전성
- Nullable Type과 Non-Null Type 자료형을 구분
- 변수 선언 시 '?'를 붙여 Nullable로 만들 수 있음
4. Immutable: 상태를 바꾸지 않는 불변성 제공
- val(Value) = Immutable = Final variable = 할당 후 변경 불가
- var(Variable) = Mutable = Non-Final variable = 언제든 변경 가능
5. 간결성(Concise): 자바처럼 장황하지 않은 깔끔함, 보일러플레이트 코드의 최소화
6. 확장함수(Extension Functions)
- 클래스 상속이나 디자인 패턴을 사용하지 않고도 새로운 기능 확장 가능
- 단, 너무 많이 사용하면 가독성이 떨어짐
7. 함수형 프로그래밍(Functional Programming)
- 함수의 유기적 연결을 통한 프로그래밍 방식
- 함수가 일급 객체(First-class citizens)로 사용할 수 있게 됨
- 람다(Lambda)식을 통해 선언되지 않고도 익명의 함수 기능을 식에 전달 가능
8. Multiplatform
- Kotlin Multiplatform = (Kotlin/JVM + Kotlin/Native + Kotlin/JS)
Hello, 코틀린!
부스트코스 무료 강의
www.boostcourse.org
'Dev > Kotlin' 카테고리의 다른 글
[부스트코스] 코틀린 프로그래밍 기본1 (4) (0) | 2023.01.28 |
---|---|
[부스트코스] 코틀린 프로그래밍 기본1 (3) (0) | 2023.01.18 |
[부스트코스] 코틀린 프로그래밍 기본1 (2) (1) | 2023.01.15 |
[부스트코스] 코틀린 프로그래밍 기본1 (1) (0) | 2023.01.15 |