
설계 관점에서 바라본 불변 객체
들어가면서 얼마 전, 이펙티브 자바 스터디를 하면서 불변 객체에 대한 토론을 하게 되었습니다. 그리고 준팍, 아벨 등을 비롯한 크루분들도 불변 객체에 관한 고민을 많이 하고 있는 것 같았습니다. 그 과정에서 '불변 객체의 본질은 무엇인가?'에 대한 아이디어를 얻어 글을 작성해보려고 합니다. 불변객체를 구글에 검색해보면, 비용을 제외한 단점이 없는 것 같아 보입니다. 하지만 불변객체의 장/단점만으로는 적용 시점을 결정할 수 없는 것 같습니다. 불변 객체에 대해 검색하다보면, 아래와 같은 고민들이 당연히 피어날 수 밖에 없습니다. 무엇을 불변객체로 결정해야 할까? 언제가 비용을 지불하면서도 불변객체를 사용할 때일까? 하지만 불변객체 사용 시점은 단편적으로 결정할 수 있는 부분이 아니라고 생각합니다. 예를 들..