2017 구글 안드로이드 개발 공식 언어로 코틀린 지정
•
……성공적인 예로 새로운 기능 개발을 Kotlin으로 이전한 Google Home팀을 사례로 들 수 있음.
Kotlin으로 개발한 결과 코드베이스 크기가 33% 줄고 NPE 비정상 종료가 30% 감소
Null Pointer Exception Error를 방지해줌
— Java —
void makeNullPointerException() {
String str = null;
System.out.println(str.toUpperCase());
}
Java
복사
•
Java 컴파일러는 NPE(NullPointerException)의 발생을 방지하지 못함
•
NPE는 항상 런타임(서비스 운영 중)에 발생하며 사용자에게 불편을 줌
•
NPE가 발생하는 위치를 정확히 알려주지 못하는 경우도 많이 있음
— Kotlin —
fun dontMakeNullPointerException() {
// 널이 될 수 있는 타입
val nullable: String?
// 널이 될 수 없는 타입
val notNull : String
}
Kotlin
복사
•
Kotlin 컴파일러는 Null 가능 여부를 미리 체크하고 컴파일 타임에 미리 체크함
•
널 가능성에 따라 동작을 달리할 수 있음
다시 자바를 쓰더라도 좋은 점
•
Java
◦
오래된 레거시 기술
◦
NPE에 무방비
•
Kotlin
◦
NPE를 피하는 방법
◦
함수적인 프로그래밍 기법
◦
변수의 사용 범위를 최대한 좁히는 기법
(변수의 오남용 방지)