본문 바로가기

Dev/Kotlin

[부스트코스] Hello, Kotlin!

코틀린의 특징

 

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