코틀린은 무엇이며 왜 필요한가?
코틀린의 주요 특성
어디에서 실행되는가?
- 자바가 실행되는 모든 곳(JVM)
- Android
- IOS
- Web (최근에는 js로도 컴파일된다.)
정적 타입
- 실행속도가 빠름(런타임에 실행하고 있는 코드가 무슨타입인지 추론할 필요가 없기 때문)
- 개발 단계에서 컴파일 에러 나기 때문에 런타임 에러를 대부분 방지
- 타입추론이 되기 때문에 안전한 리팩토링이 가능하며 IDE에서도 자동완성을 잘 지원해준다.
함수형 프로그래밍 도구 지원
- Lambda
- Data class(Immutable VO)
- Collection을 함수형 스타일로 다룰 수 있는 API들 제공
코틀린의 철학
실용성
- 대규모 시스템을 만들어온 실무자들이 고민해서 만듬
- Jetbrains 에서 만들었기 때문에 IDE 지원이 쩔어줌.
간결성
- 문법이 많이 간결해졌다. (ex. data class를 사용하면 getter/setter, toString, equals 생략 가능)
- 빵빵한 표준 라이브러리 제공
안전성
- NullPointerException 예방
- ClassCastException 예방 (타입검사하면 타입캐스팅까지 알아서 해버림)
상호운용성
- JVM 위에서 돌아가기 때문에 자바 라이브러리 그대로 사용 가능