티스토리 뷰
Compile Time vs Runtime
(사진 출처: baeldung)
컴파일 타임 (Compile Time)
개발자가 소스코드가 컴파일러를 통해 기계어코드로 변환 되어 실행 가능한 프로그램이 되는 (편집) 과정 (.java -> .class)
- Input : 소스코드 등
- Output : 컴파일된 코드
Compile Time Error
- Syntax error
- type check error
런타임 (Runtime)
사용자에 의해 컴파일이 끝난 응용프로그램이 동작되는 시점
Runtime Error
- Division by zero
- Dereferening a null pointer error
- Runing out of memory error
Java 에서 null 의 문제점
- 컴파일 타임 시점에서 해당 에러를 찾아내기 힘들다.
- 복잡하게 null 이 함수들을 통해서 떠다닐 경우 정확히 어디에서 에러가 발생했는지 캐치하기 힘들다.
- NPE (Null Pointer Exception) 을 발생시킬 위험성이 높다.
- NPE 를 위한 null check 로직이 필요함에 따라 가독성 및 생산성이 떨어진다.
Kotlin nullable
코틀린의 타입 시스템은 코드에서 상위에서 보였던 null references 위험을 제거하는 것이 목표이다.
- nullable 타입이 추가되면서 컴파일 타임에서 에러를 명시적으로 잡아낼 수 있어졌다.
Java vs Kotlin null 처리 비교
String a = null;
int b = 0;
if (a != null) {
b = a.length();
} else {
b = -1;
}
val a: String? = null
val b = b?.length ?: -1
'ETC' 카테고리의 다른 글
[Java] PSD to JPEG 변환 조사 및 구현 (0) | 2022.01.15 |
---|---|
Gatsby를 git page 연결 (0) | 2019.03.13 |
댓글