
💫 Language/Java
[Java] 모든 객체는 불변 객체여야 할까?
Intro 불변 객체란 객체 생성 이후, 내부의 상태가 변하지 않는 객체이다. 많은 책이나 블로그 글에서 이러한 불변 객체를 사용하는 것에는 큰 이점이 있다고 한다. 그 이유는 굉장히 다양하고 많으며 대부분의 경우 불변 객체로 만드는 것이 좋다. 다음은 불변 객체를 사용하는 이유를 나열한 것이다. Thread Safe 하여 병렬 프로그래밍에 유용하고, 동기화를 고려하지 않아도 된다. 실패 원자적인(Failure Atomic) 메서드를 만들 수 있다. 예외가 발생하더라도 메서드 호출 이전의 상태를 유지하기 때문이다. Cache나 Map, Set등의 요소로 활용하기 좋다. 부수 효과(Side Effect)를 피해 오류 가능성을 낮출 수 있다. 순수 함수들로 구성되있으며, 객체의 상태가 유지되기 때문이다. 가..