728x90
[개념]
- 100% 자바와 호환이 가능한 프로그래밍 언어
[Java와 100% 호환의 비결]
- JVM을 통해 같은 프로젝트 내 Kotlin 파일이 Java 파일 바로 옆에 있다면 Java에서 Kotlin 코드를 부를 수 있고 Kotlin에서 Java 코드를 부를 수 있음
- JVM(Java Virtual Machine)
- Java Bytecode를 각각의 OS에서 실행시키기 위한 장치
- Compilation, Interpretation의 조합
- Compilation : 자바 혹은 코틀린을 Java bytecode로 컴파일 해 줌
- Interpretation : Java bytecode를 이해하고 각각의 OS로 번역함
[참고]
- Compilation
- C프로그램을 기계어로 컴파일 하는 것
- 항상 Interpretation보다 빠름
- 플랫폼에 의존적임
- OS마다 다른 기게어를 가지고 있으므로 컴파일 작업을 다르게 해야 함
- Interpretation
- 파이썬을 컴파일하지 않고 프로그램을 실행하면 파이썬?에 있는 interpreter에 리얼타임으로 기계어로 전달됨
- 플랫폼 독립적임
- 파이썬 코드를 한번만 쓰면 나머지는 Interpreter가 알아서 각각의 OS로 변환함
[장점]
1. null safe : 자바 개발자로서는 엄청난 안도감을 줌
2. coroutine이 있음 : 많은걸 한번에 실행하는 코드를 짤 수 있다 : 다른언어보다 빠르다
3. 객체지향, 함수형 프로그래밍의 완벽한 밸런스를 갖고있음
4. Java 시스템과 호환이 됨
[활용방법]
- Java 어플리케이션에서 활용
- Spring Boot에서 사용 가능
- 안드로이드 애플리케이션 개발 가능
- 자바스크립트로 컴파일 가능 (코틀린->JS->React.JS, 코틀린->JS->Node.JS)
- 데이터 사이언스 가능. 코틀린을 활용한 데이터 시각화, 데이터 사이언스 사례가 나오고 있다
[왜 만들었는가?]
- JetBrains가 만듦
- IDE(Integrated Development Environment)를 만드는 러시아 회사
- 코드를 더 좋고 모던한 프로그래밍 언어로 바꾸고 싶었음
- 젯브레인의 코드 70%는 Java로 작성되어 있어서 이걸 싹다 무시하고 새로운 언어로 작성할 수는 없었음
- 그래서 Java와 호환이 가능하고 새로운 언어로 작성하면서 동시에 이전 시스템을 관리할 수 있는 언어가 필요했음
[누가 배우면 좋은가?]
- 회사에서 안드로이드 개발을 하고 자바를 싫어하는 사람
- JAva에 지루함을 느끼는 사람
- 새로운 언어를 배워보고 싶은 개발자. 그러나 올드 레거시 시스템을 버리면 안되는 상황
참고
https://www.youtube.com/watch?v=8gseVzeMOzk&t=93s
'두두의 IT' 카테고리의 다른 글
[Kotlin] Modifiers (0) | 2022.04.12 |
---|---|
객체지향 프로그래밍이란? (0) | 2022.04.12 |
[Kotlin] in/out (0) | 2022.04.11 |
[Kotlin] operator (0) | 2022.04.11 |
[OOP] 추상클래스와 인터페이스 (0) | 2022.04.11 |