[ 앱 개발자 도전기 : 안드로이드_코틀린 ]
Kotlin 특징 - 코틀린이란?? 왜 쓰는걸까??
∇ Kotlin : 코틀린의 특징 & 코틀린 사용 이유.
목 차
1. 코틀린이란
2. 코틀린의 특징.
3. 코틀린을 사용하는 이유는??
Ⅰ. 코틀린 [Kotlin] 이란.
※ 코틀린의 시작.
- 젯브레인즈(jetbrains)에서 개발한 언어.
- 2011년 발표, 2017년 구글에서 안드로이드-공식언어로 선택.
※ 코틀린으로 무엇을 할 수 있는가???
: 'Java'를 대체할 수 있는 언어로, 다양한 채널에서 활용 가능한 멀티 플랫폼.
* Kotlin / JVM : 자바 가상 머신 상에서 동작하는 앱(자바앱/안드로이드앱) 개발
* Kotlin / JS : 자바스크립트로 컴파일하면서, DB부터 서버- 클라이언트까지 다루는 풀스택 웹개발.
* KMP(Kotlin Multiplatform) / Kotlin - Native
: 안드로이드 네이티브 환경과, 코틀린 멀티플랫폼을 활용하여
안드로이드와 IOS뿐만 아니라 임베디드, IOT 등 에도 활용 가능.
☆ 즉 ! 서버 안드로이드 등 Java가 실행되는 모든 곳에서 사용 가능합니다.
Ⅱ. 코틀린 [Kotlin] 특징.
◎ 정적 타입 지정 언어.
- "코틀린"은 "정적-타입 지정언어" 입니다.
- > 모든 프로그램의 구성요소를 '컴파일 시점'에 알 수 있고,
컴파일러가 타입을 검증해줍니다. !
== Java와 다르게, "개발자가 타입을 선언하지 않아도 된다는 뜻" 입니다.(타입추론지원)
=== '코틀린 컴파일러' 가 문맥으로부터, 변수타입을 자동으로 유추 가능하기 때문에
타입 선언을 생략해도 됩니다.
-> 개발자가 아닌 컴파일러가 프로그램 정확성을 검증한다는 것이기 때문에
' 프로그램이 오류로 중단될 가능성'이 줄어들게 됩니다!
◎ Null 안전성.
- "코틀린"은 "Null"이 될 수 있는 타입도 지원합니다.
- > Null 값 허용여부를 컴파일-단계에서 검사하기 때문에
"널 포인터로 인한 프로그램 중단도 예방 가능" 합니다.
== Java에선 런타임 단계에서 널이 입력 가능하기에,
널 포인터 예외( null pointer exception ) 으로 죽는 경우가 많은데.
->> '코틀린'은 이걸 잡아줍니다, 이를 널포인터(NPE)에서 자유롭다고 표현합니다.
◎ 함수 타입에 대한 지원.
- "코틀린"은 함수형 프로그래밍(Functional Programming)을 지원합니다.
- > 거의 모든 프로그램의 작동을 위한 코드 조각을 순수함수로 나누어서 문제를 해결.
a. 함수를 작성해서 변수에 저장 가능하고,
b. 함수를 작성해서 다른함수에 전달도 가능하며,
c. 함수를 반환할 수도 있습니다.
-> ' 가독성을 높이고 유지보수를 용이' 하게 할 뿐만 아니라
->> 함수를 통해 불변데이터 구조를 사용하기 때문에, ' 다중 스레드 '를 사용해도 안정적입니다.
ⅲ. 코틀린 [Kotlin] 을 사용하는 이유는?
★ 결론적으로 이야기하면,
"코틀린" 은 'Java와 호환도 잘되면서 실용적으로 간결하면서 안전한 언어' 이기 때문입니다.
◎ 자바와의 호환성.
- 자바 메소드 호출, 자바클래스 상속, 인터페이스 구현, 자바 어노테이션 등등
' 자바에서 적용하던걸 모두 코틀린에서' 할 수 있습니다.
+ 심지어, 기존 자바 라이브러리를 가능하면 최대한 활용.
◎ 실용적.
- 다른 언어들에서 이미 성공적으로 검증된 해법과 기능들만을 담았습니다.
◎ 간결성.
- 코틀린 코드는 간단하고 간결합니다.
ex) getter, setter, 생성자 파라미터 대입로직 등등
' 자바에서 번거로웠던 코드를 코틀린에서 묵시적을 제공합니다.
+ 람다 표현식도 지원하기 때문에, 작은 코트 블록도 라이브러리 함수에 쉽게 전달 가능합니다.
◎ 안전성.
- 'JVM' 에서 실행하기 때문에 상당한 안전성을 보장 가능합니다.
== JVM을 사용하면,
메모리안전성을 보장하고 버퍼오버플로우도 방지하고, 동적 메모리 할당으로 인한 문제도 예방 가능합니다.
== 정적타입 지정언어로,
타입자동추론을 사용해서 타입 안전성을 보장합니다.
++ 널타입 지원도 되기 때문에, 'NullPointerException'으로 인한 프로그램 오류도 방지해줍니다. !
[ Nullable & Non-Null 타입 활용. ]
'App_Dev > Android : Kotlin' 카테고리의 다른 글
[ 앱 개발자 도전기 : 안드로이드_코틀린 ] 코틀린 기본 문법 훑어보기.-[1] (3) | 2024.11.12 |
---|---|
[ 앱 개발자 도전기 : 안드로이드_코틀린 ] 안드로이드 빌드 과정(Android APK build Process)를 이해해보기. (0) | 2024.11.11 |