엔티티에서 @Builder 사용할 때 불변성에 대한 고찰
·
Java
엔티티에서@Builder를 사용해 보면서 생긴 문제점이 있다.엔티티는 불변성을 유지해줘야 한다는 점을 간과했다는 점이다.불변성이란?변경을 허용하지 않는 성질로불변성을 유지하는 객체란 변경 불가한 객체를 뜻한다. 불변객체는 객체를 생성 후 객체에 저장된 값을 수정하려고 시도한다면,값이 수정되는 것이 아닌 아예 새로운 객체가 생성되어 저장된다.예로 들면 문자열이 있다.String a = "hello"; // 불변객체String b = a.toUpperCase(); // a는 변하지 않고, 새 객체가 생성됨StringBuilder sb = new StringBuilder("hello"); // 가변객체sb.append(" world"); // 기존 객체 자체가 변경됨 @Setter는 가변객체에서 사용된다.Em..