코틀린 상태 관리, 불변 데이터 중심으로 생각하기
·
💎 Kotlin
0. 가변성과 상태var 같은 읽고 쓸 수 있는 프로퍼티나 MutableList처럼 내부 상태를 변경할 수 있는 객체를 사용하면 `상태(state)` 를 갖게 된다. 상태를 갖는 객체는 단순히 사용 방법뿐만 아니라 그 `이력(history)` 에 따라 동작이 달라질 수 있기 때문에, 프로그램을 이해하거나 디버깅하기 어려워진다. 예를 들어, 은행 계좌의 잔액을 나타내는 balance라는 상태 값이 있다고 하자. 사용자가 출금하거나 입금할 때마다 이 값은 바뀌고, 특정 시점의 balance 값은 과거에 어떤 동작들이 있었는지에 따라 결정된다. 이런 구조에서는 단순히 현재 코드만 봐서는 전체 동작을 예측하기 어렵다.또 다른 예시로, 필터 기능을 개발한다고 하자. 가격 필터, 출시순 필터, 지역 필터 등이 있고..
[Kotlin] 코틀린 타입 시스템 nullable type
·
💎 Kotlin
자바와 비교하면 코틀린의 타입 시스템은 코드의 가독성을 향상시키는 데 도움이 되는 특징을 가지고 있다. 그런 특징 중 널이 될 수 있는 타입(nullable type)과 읽기 전용 컬렉션이 있다. 널이 될 수 있는 타입과 널을 처리하는 구문 문법 코틀린을 비롯한 최신 언어에서 null에 대한 접근 방법은 이 문제를 실행 시점에서 컴파일 시점으로 옮김 널 가능성(nullability)은 NullPointerException 오류(NPE)를 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특징 널이 될 수 있는지 여부를 타입 시스템에 추가함으로써 컴파일러가 여러 가지 오류를 컴파일 시 미리 감지해서 실행 시점에 발생할 수 있는 예외 가능성을 줄여줌 널이 될 수 있는 타입 코틀린 타입 시스템은 널이 될 수 있는..