- 임베디드 타입 같은 값 타입을 여러 엔티티에서 공유하면 위험함
- 부작용 발생

- 인스턴스를 복사해서 사용하는 것이 안전
- 하지만 원천적으로 막을 방법이 없다.
- 객체의 공유 참조는 피할 수 없다.
그렇기 때문에 불변 객체를 사용해야 한다.
불변 객체
- 객체 타입을 수정할 수 없게 만들어 부작용을 차단
- 값 타입은 불변 객체로 설계 해야 한다.
- 생성자로만 값을 설정하고 setter를 안 만들면 됨
그런데 변경하고 싶을 때는?
값을 복사해서 만들어라.... 통으로 갈아라