코틀린은 젯브레인즈가 만든 통계적 형식의 오픈소스 프로그래밍 언어이다.
코틀린이란 이름은 러시아 상트페테르부르크 근처에 있는 코틀린 섬에서 유래되었으며 JVM에서 매끄럽게 동작하는 코드를 만들 수 있게 해준다. 코틀린과 자바의 대표적인 차별화된 부분이라면 자바에서는 변수를 선언할 때 타입과 기본값을 설정해야 하지만 코틀린에서는 변수의 타입과 값을 지정하지 않은 경우에도 그것을 판단 하기 위해서 코틀린이 추론을 사용할 수 있도록 하였다.
코틀린의 대표적인 장점들은 보통 다음과 같이 소개된다.
· Null safety
- 코틀린은 nullable과 non-nullable 개념을 만들어, null에 안전한 프로그램을 만들 수 있게 도와준다. 그래서 코틀린만 사용한다면 Null Pointer Exception 같은 예외가 발생하지 않을 수 있다.
· Extention functions
- Extension functions(확장 함수)는 기존에 정의된 클래스에 함수를 추가하는 기능이다.
· Higher-order functions
- 함수를 인자로 받거나 함수를 반환하는 함수이다. 이 조건이 성립하기 위해서는 기본적으로 함수가 일급객체이여야 한다.
· Data Class
- 데이터 클래스는 데이터 보관 목적으로 만든 클래스를 말합니다.
데이터 클래스는 프로퍼티에 대한 toString(), hashCode(), equals(), copy() 메소드를 자동으로 만들어 준다.
따라서 Boilerplate code를 만들지 않아도 되며 클래스 앞에 data를 붙여줍니다.
· Immutability
- 함수형 프로그래밍은 thread-safe이다. 그리고 불변성은 스레드를 안전하게 만드는 데 큰 역할을 한다. 사전적인 정의로 불변성은 무언가가 변할 수 없다는 것을 의미하며 따라서 불변 변수는 변경될 수 없는 변수를 말한다.
코틀린은 불변성이 강제되는 순수 함수형 프로그래밍 언어가 아니다. 코틀린은 불변성을 강요하는 대신 권장하며, 가능하면 자동으로 불변을 제공하려 한다.
· Coroutines
- Coroutine은 안드로이드에서 백그라운드 스레드에서 코드를 처리할 때 사용하는 하나의 방법이다.
대표적인 유스케이스로는 네트워크 리퀘스트 (Retrofit, Volley 등), 내부 저장소 접근 (Room, SQLite 등) 가 있다.
코루틴은 코드가 아주 간단하고, 블록으로 처리를 할 수 있기 때문에 하나의 Request-Response 송수신 후에 또 다른 연속적인(sequential) 작업을 하기 좋게 최적화가 되어있다.
따라서 하나의 쓰레드에 여러 개의 코루틴이 동시에 실행될 수 있다.
· Type aliases
- Type aliases 는 기존 타입에 대한 대체할 수 있는 이름을 제공하며 만약 타입의 이름이 너무 길다면, 간단한 이름으로 변경할 수 있다.
참고링크
https://imcreator.tistory.com/113
codechacha.com/ko/kotlin-extension-functions/
medium.com/@lazysoul/high-order-function-%EA%B3%A0%EC%B0%A8%ED%95%A8%EC%88%98-22b147d0c4a5
blog.yena.io/studynote/2020/04/26/Android-Kotlin-Coroutine.html
thdev.tech/kotlin/2020/10/13/kotlin_effective_06/
'Android 개인공부' 카테고리의 다른 글
Android Custom Progress Dialog (0) | 2021.06.12 |
---|---|
AAC LifeCycles (0) | 2020.12.16 |
코틀린 let, with, apply, also, run (0) | 2020.10.12 |
FCM 푸쉬메시지 테스트 앱 (0) | 2020.08.27 |
Gradle 동일 모듈 충돌시 해결 (0) | 2020.08.20 |