[그림 1] 코틀린 로고
구글은 안드로이드 공식 개발 언어로 코틀린을 구글 I/O 2017 키노트 지정했다. 코틀린은 현재 자바스크립트와 안드로이드 개발을 지원하고 있지만 다른 플랫폼에서도 사용할 수 있도록 Kotlin/Native 언어도 현재 개발 중이다. 필자는 안드로이드 개발을 목적으로 코틀린을 공부하고 있다. 기존까지는 안드로이드는 자바로 개발되었는 데 자바에서 어떤점이 달라졌는 지, 어떠한 장점들이 있는지 알아보자.
코틀린의 장점
1. 코드가 더 간결해진다.
코틀린은 C의 구조체와 같이 데이터를 위한 클래스 키워드가 존재한다. 이 키워드를 사용하면 내부적으로 set()/get() 함수를 정의해준다.
Java
public class Person(){ private String name; private int age; pubilc String getName(){ return name; } pubilc String getName(){ return name; } pubilc String getName(){ return name; } pubilc String getName(){ return name; } }
Kotlin
data class Person(var name:String, var age:Int)
2. null point exception을 방지할 수 있다.
변수를 선언할 때 null이 될 가능성이 있는 변수임을 선운해주도록 하여 컴파일 타임에 변수에 대한 null 처리를 하도록 경고한다.
3. 함수형 언어의 장점들을 도입하였다.
코틀린은 기본적으로 객체지향언어지만 함수형 언어의 장점들도 도입하였는 데 대표적으로 람다(Lamda)이다. 예를 들어 안드로이드에서 버튼을 클릭하는 이벤트를 처리하는 onClick 함수를 선언할 때 선언부를 생략할 수 있다.
Java
Button btn = new Button(this); btn.setOnClickListener(new View.onClickListener(){ public void onClick(View view){ } });
Kotlin
val button = Button(this) button.setOnClickListener { }
4. 상속 받지 않고도 클래스 확장이 가능하다.
기존의 클래스를 상속하여 새로운 클래스를 만들지 않고 프로그램 안에서 확장하여 필요한 함수를 추가하여 구현할 수 있다.
5. 기본 자바 코드들과 호환이 가능하다.
기존의 자바 프로젝트들과 호환이 가능하다. 반대로 코틀린으로 프로젝트를 진행하더라도 자바 프로그램이나 라이브러리들을 사용가능하다. 코틀린도 JVM에서 실행되도록 컴파일 되기 때문이다.
사진 출처
˙ [그림 1]
'Android > Kotlin' 카테고리의 다른 글
[Kotlin/Java] instanceof를 지양하자 (0) | 2023.05.05 |
---|---|
3. 반복문, 조건문 (0) | 2018.12.31 |
2. 함수 (0) | 2018.12.31 |
1. 클래스 (0) | 2018.12.25 |
댓글