본문 바로가기

기술면접

23_상태(status)의 불변성이 중요한 이유

상태의 불변성이 중요한 이유 


1. 예측 가능성(Predictability): 

상태가 불변하면 언제나 동일한 값을 가지므로 코드의 동작을 예측하기가 쉬워집니다. 특정 시점에서의 상태를 알고 있다면 코드의 흐름을 이해하기가 쉽습니다.

2. 디버깅(Debugging): 

불변한 상태는 디버깅을 용이하게 만듭니다. 상태가 변경되지 않기 때문에 특정 시점에서의 문제를 추적하고 분석하기가 더 쉬워집니다.

3. 병행성(Concurrency): 

다중 스레드 환경에서 상태의 변경은 복잡성을 증가시킬 수 있습니다. 하지만 상태가 불변하면 스레드 간의 경쟁 조건이나 동기화 문제를 방지할 수 있습니다.

4. 성능 최적화:

불변한 상태를 사용하면 새로운 상태를 만들어야 할 때에만 메모리 할당과 복사가 필요합니다. 이로 인해 메모리 사용량을 줄이고 성능을 최적화할 수 있습니다.

5. 테스트 용이성(Testability):

불변한 상태는 테스트하기 쉽습니다. 같은 입력에 대해 항상 동일한 결과를 보장하므로 단위 테스트 작성이 용이해집니다.

6. 함수형 프로그래밍과의 호환성: 

불변한 상태는 함수형 프로그래밍 패러다임과 잘 맞습니다. 부작용을 최소화하고 순수 함수를 촉진하는 데 도움이 됩니다.

이러한 이유로 상태의 불변성은 소프트웨어 시스템을 보다 안정적이고 예측 가능하며 효율적으로 만드는 데 중요한 역할을 합니다.