Effective Kotlin
-
[ Effective Kotlin ] Chapter 1 - SafetyKotlin 2023. 6. 9. 12:34
Item 1 : Limit mutabilityKotlin은 '불변 객체'와 '가변 객체'를 구분하여 상태를 관리할 수 있다. 이 중 '가변 객체'를 통해 상태를 관리하는 것은 양날의 검과 같다. '가변 객체'는 시간이 지남에 따라 변하는 '상태를 표현하는 것이 간편'하여 유용하다는 장점이 있지만, 다음과 같은 이유로 상태 관리가 어려워진다는 단점이 있다.상태의 변화를 추적해야 하므로 코드를 이해하고 디버그 하는 것이 어려움.상태가 언제든지 변경될 수 있기에 로직의 추론이 어려움.멀티 스레드 환경에서 동기화 메커니즘이 없는 경우, 상태의 변동성은 잠재적인 충돌을 발생함.변경 가능한 모든 상태를 테스트해야 하기에 테스트가 어려움.상태가 변경되면 상태를 사용하고 있던 요소들에게 변경 사항을 반드시 알려야 함...