What is Kotlin?
JAVA는 오랜 시간 Enterprise 시장을 지배한 언어다. 안드로이드, 정부 표준 웹 프레임워크 등 굵직한 프로젝트에 사용되기 시작하면서 JAVA의 위상을 건드릴 언어는 없다. Python은 다목적 프로그래밍 언어로 그 뒤를 추격하고 있지만 아직까지는 JAVA로 개발하는게 대세다.
그럼에도 불구하고 JAVA의 자리를 위협하는 언어가 있다. 바로 Kotlin이다. Kotlin은 JAVA와 완전 호환 가능한 프로그래밍 언어다. 만약 당신이 개발하고 있는 프로젝트가 JAVA를 기반으로 두고 있다 하더라도 Kotlin으로 새로운 함수와, 모듈을 만들어서 붙여서 아무런 문제없이 돌아간다는 말이다.
Kotlin 탄생
Kotlin은 JetBrains에 의해 탄생된 언어다. jetBrains는 새로운 IDE를 만드는데, 대부분 기능이 JAVA 코드로 만들어져 있었다. 레거시코드가 되어가고 있는 JAVA에서 탈출해서 새로운 언어를 개발하여 IDE를 개발하게 되는데 그게 Kotiln이다.
Kotiln이 정식 출시된 건 2011년이다. 사람들에게 폭발적인 관심을 받기 시작한 건 2017년 부터다. 구글에서 안드로이드 애플리케이션을 빌드하는데 좋은 언어로 Kotlin을 추천하기 시작했기 때문이다. first-class 언어로 구글에서 선정한 것은 그만큼 안정성과 개발 비용절감에 도움이 된다는 것이다.
JAVA와 Kotlin이 호환되는 이유
JAVA는 JAVAC Compiler를 통해서 원시코드(.java)를 컴파일 하게 된다. 그리고 Byte Code(.class)를 생성한다. 운영체제들 마다 각자의 컴파일 머신이 다르기 때문에 JAVA는 JVM이 가동되어서 각 운영체제에 맞는 기계어로 컴파일을 하게 된다. Kotlin이 JAVA와 100% 호환성을 보이는 이유는 바로 이거다.
Kotlin으로 만들어진 코드는 JAVAC Compiler를 통해서 컴파일이 되기 때문에 JVM이 각 운영체제에 맞는 기계어로 변환해서 프로그램이 실행되는 것이다.
Kotlin 장점
coroutin
Kotlin은 coroutin을 지원한다. 즉, 연계프로그램을 의미하고, 메인 루틴과 서브 루틴이 서로를 호출하는 형태로 한개의 코드로 여러개의 작업이 가능하다.
null safety 적용
null safety란 런타임 도중 null 참조 에러가 발생하는 버그를 잡아주는 기능을 말한다. 컴파일은 정상적으로 되지만 프로그램 실행과정에서 발생하는 런타임 에러를 미리 잡아주는 기능이다.
JS 호환
Kotlin은 JS로 컴파일이 가능하다. Kotlin코드를 JS로 컴파일해서 리액트JS 프로젝트에도 사용가능하다는 것이다.
Data Science 활용
Python이 대중에게 많은 인기를 얻게 된 것을 다양한 목적성을 가진 언어기 때문이다. Kotlin으로 만들어진 Data Science 시각화 라이브러리들이 조금씩 등장하면서 Kotlin 또한 Python의 길을 걸어가게 될 것으로 기대된다.
이제 모바일 애플리케이션을 개발할 때는 Flutter나 React를 사용해서 안드로이드와 IOS를 동시에 개발하는게 대세로 자리잡고 있다, 그럼에도 네이티브 애플리케이션으로 안드로이드 프로젝트를 생각하고 있다면 JAVA보다는 Kotlin이 대안이 될 수 있을 것이다. 구글에서 Kotlin을 인정한 것은 이유가 있을 것이다.
'Programming' 카테고리의 다른 글
Spring Boot Cause: invalid source release: 11 문제 해결 Fixing (0) | 2022.02.14 |
---|---|
Ubuntu 20.04 LTS에 IntelliJ IDEA Intall 하는 방법 using Command Line Spring Boot 초기 설정하는 방법 (0) | 2022.02.14 |
스프링 vs 스프링부트 차이점 10분만에 이해하기 (0) | 2022.02.13 |
AWS Heroku 웹서비스 어떤 걸로 시작하면 좋을까? (0) | 2022.02.05 |
How to adjust speed of scroll in ubuntu linux 우분투 스크롤 휠 속도 조절하는 방법 imwheel 사용방법 (0) | 2022.02.03 |
웹 애플리케이션 서비스 1인 기업의 시작 (0) | 2022.01.30 |
댓글