불변 객체 - 정리.
지금까지 왜 이렇게 불변 객체 이야기를 많이 했을까요?
- 자바에서 가장 많이 사용되는
String
클래스가 바로 불변 객체이기 때문입니다. - 뿐만 아니라 자바가 기본으로 제공하는
Integer
,LocalDate
등 수 많은 클래스가 불변으로 설계되어 있습니다.- 따라서 불변 객체가 필요한 이유와 원리를 제대로 이해해야, 이런 기본 클래스들도 제대로 이해할 수 있습니다.
모든 클래스를 불변으로 만드는 것은 아닙니다.
우리가 만드는 대부분의 클래스는 값을 변경할 수 있게 만들어집니다.
- 예를 들어서 회원 클래스의 경우 회원의 여러 속성을 변경할 수 있어야 합니다.
- 가변 클래스가 더 일반적이고, 불변 클래스는 값을 변경하면 안되는 특별한 경우에 만들어서 사용한다고 생각하면 됩니다.
- 때로는 같은 기능을 하는 클래스를 하나는 불변으로 하나는 가변으로 각각 만드는 경우도 있습니다.
- 가변 클래스가 더 일반적이고, 불변 클래스는 값을 변경하면 안되는 특별한 경우에 만들어서 사용한다고 생각하면 됩니다.
클래스를 불변으로 설계하는 이유는 더 많습니다.
- 캐시 안정성
- 멀티 쓰레드 안정성
- 엔티티 값 타입
지금은 이런 부분을 다 이해할 수는 없습니다.
- 관련 내용을 학습하다 보면 자연스럽게 이번에 배운 불변 객체가 떠오르면서 관련된 내용을 본질적으로 더 잘 이해할 수 있을 것입니다.
- 프로그래밍을 더 깊이있게 학습할 수 록 다양한 불변 클래스 이용 사례를 만나고 이해하게 됩니다.
- 따라서 지금은 불변 클래스가 어디에 사용되고, 어떻게 활용되는지 보다는 불변 클래스의 원리를 이해하는 정도면 충분합니다.