1. JVM 언어 코틀린
코틀린은 JVM언어라고 불리는 것 중 하나이다. 이건 Java가상머신 상에서 움직이는 프로그래밍 언어를 말한다.
JVM위에서 움직인다? 즉 다른 언어들처럼 네이티브 코드로 프로그램 본체가 작성되는것이 아니다.
그래서 코틀린은 기본적으로 바이너리 프로그램을 생성하는 것은 하지않는다. 빌드해서 생성하는 것은 Java의 클래스 파일이다. 즉, 코틀린은 자바의 프로그램(클래스파일)을 작성하는 언어라고 할 수 있다. 코틀린이 생성하는 클래스파일은 자바와 호환성이 있고, 그 자체로 Java 프로그램으로서 JVM에서 실행 가능하다. (자바 클래스파일을 그대로 사용가능)
자바 라이브러리, 프레임워크가 기본적으로 코틀린에서도 사용 가능하다.
- 코틀린은 자바의 기본 문법을 베이스로 설계되어 있다. 자바와 아주 비슷하다.
- 자바의 복잡함을 개선함. 코틀린은 간결함을 추구한다. (널세이프티에서도 빛을 발한다. 심플 코드로 해결가능)
※바이너리
※ 코틀린을 네이티브 코드로 생성 불가능한건 아니지만, 보통 Java 프로그램으로 컴파일하여 쓰는 경우가 훨~씬 많다.
2. 왜 코틀린을 만들게 되었을까?
코틀린은 이상적인 자바와 같은말이다. 자바보다 심플하고, 안전하게 사용하기 위해서 만들어다.
a. 형추론 & val
코틀린은 기본적으로 형추론을 한다. (java는 java10부터 형추론 적용함)
자바는 형추론을 하면 null값으로 인한 오류가 있을수가 있다. 코틀린은 널세이프티로 대응 가능.
또한 자바에는 파이널값이 없다. static final로 대체한다. (앞으로도 계속 불변했으면 하는 값)
final String MSG = "안녕하세요. "
하지만!! 코틀린은 val로 나타낸다. (val은 불변, var은 가변)
val num : Int = 10
b. 클래스 정의가 더 간결해졌다. (생성자, 초기값지정 등)
c. 다양한 객체 사용
data class, conpanion object (자바의 static 키워드) , 확장함수, 확장프로터퍼티 등
d.널 세이프티
변수는 null 일 수가 없도록(?) 잘 처리해준다. null 대응 코드가 자바보다 다양하다.
'Kotlin' 카테고리의 다른 글
Kotlin6. 컬렉션 (0) | 2023.07.31 |
---|---|
Kotlin5. 제어구문 if(표현식), when 등등... 분기(分岐)란? (0) | 2023.07.30 |
Kotlin4. 자료형과 값 (0) | 2023.05.15 |
Kotlin3. 프로젝트의 디렉터리 구성 (0) | 2023.05.14 |
Kotlin2. IntelliJ .exe vs .exe(ARM64) (0) | 2023.05.05 |