Android 앱/Kotlin Language

Kotlin 언어에 대해서

arvigoes 2020. 1. 6. 00:58

Kotlin 의 역사

2011년 JetBrains 사에서 최초 공개 (JetBrains : IntelliJ IDEA 개발사 (Android Studio, PyCharm 등) 

2012년 오픈 소스Apache 2 License 로 공개

2016년 Kotlin v1.0 배포 ( 현재 v1.3 까지 공식 release 됨)

2017년 Google I/O 에서 공식 지원 언어로 추가

 

다른 익숙한 언어에 비해서는 역사가 많이 짧은 편입니다.

앞으로 어떻게 변할지는 모르지만 자바의 역사에 올라선 언어라 생명이 짧아 보이진 않네요.

java 의 불편한점을 많이 개선한(?) 언어라 자바에 많이 대비해서 설명한 내용이 많은 점 참고 부탁 드립니다.

기존에 java 를 잘 모르더라도 상관 없습니다. 

사실 저도 java 는 거진 모르거든요

java 말고 다른 언어를 하나정도 잘 하는 언어가 있으시다면 특징은 한번 자세히 읽어보시길 권합니다.

처음 접하는 언어라면 이런 내용이 있구나 정도로 이해 하시면 될듯 합니다.

저는 주 사용 언어가 C++ 이라 kotlin, python 을 새로이 익히는 중인데 참 많이 다르고 재미가 있네요

처음 접하신다면 다른 언어보단 python 을 첫 언어로 강추(웹, 기타 (안드로이드 개발제외) 드리며, 안드로이드 개발을 하고 싶다면 kotlin 을 강추 드립니다.

 

Kotlin 특징

JVM 언어 - Java Virtual Machine 에서 구동되는 언어

Java 와의 상호운용이 100% 지원된다

컴파일 하면(?) JVM 구동용 bytecode 가 생성됨 (java 도 컴파일 하면 bytecode 로 생성됨)

실행시 java 와 동일한 bytecode 이므로 실행시 손실이 없음

nullpointexception 회피 가능 ( null객체를 참도 하는 경우도 알아서 보호 해 준다. java에서 가져온 클래스등도 가능하다)

예외처리를 강제화 하지 않는다

모든 primitive type (기본타입)도 객체 취급합니다. (java 에서는 primitive type 을 위한 별도 wrapper class(Integer, Double 등이 존재)

value 에 대한 불변성 지원 

Object Oriented Language 객체지향 언어

Functional 프로그래밍( 함수를 파라미터로 다른 함수에게 넘길 수 있음 (lambda ??),  결과로 다른 함수를 넘길 수 있다)

Java 6 와 호환 된다. 

 

왜 java 가 아닌 Kotlin 을 사용 해야 하는가?

java 에 비해 많이 간결한 문법을 사용한다. 이로 인한 실행시간의 오버해드가 없다

2019년 1월부터는 구글 내부의 안드로이드 프로젝트에서도 Java 대신 Kotlin을 사용한다.

안드로이드 공식 문서의 샘플 코드도 Java보다 Kotlin으로 작성된 예제가 먼저 나온다

Kotlin에서는 java 코드를 바로 사용할 수 있지만, java 에서 kotlin 을 사용하려면  @Jvm* 계열의 annotation 사용이 필요한 경우도 있다.