코틀린 상태 관리, 불변 데이터 중심으로 생각하기
·
💎 Kotlin
0. 가변성과 상태var 같은 읽고 쓸 수 있는 프로퍼티나 MutableList처럼 내부 상태를 변경할 수 있는 객체를 사용하면 `상태(state)` 를 갖게 된다. 상태를 갖는 객체는 단순히 사용 방법뿐만 아니라 그 `이력(history)` 에 따라 동작이 달라질 수 있기 때문에, 프로그램을 이해하거나 디버깅하기 어려워진다. 예를 들어, 은행 계좌의 잔액을 나타내는 balance라는 상태 값이 있다고 하자. 사용자가 출금하거나 입금할 때마다 이 값은 바뀌고, 특정 시점의 balance 값은 과거에 어떤 동작들이 있었는지에 따라 결정된다. 이런 구조에서는 단순히 현재 코드만 봐서는 전체 동작을 예측하기 어렵다.또 다른 예시로, 필터 기능을 개발한다고 하자. 가격 필터, 출시순 필터, 지역 필터 등이 있고..