Entity 설계 및 구현을 진행하며 "정답에 가까운 코드"를 짜기위해 노력했는데
그것보단, 그냥 찾아보며 느낀 개발 시 주의해야 할 점에 대해 써보려 한다.
그리고 그 내용이 곧, Entity 설계에 대한 팁이기도 하다..
따라서 Setter 사용을 지양하고 의미를 파악할 수 있는 메소드를 생성하여 사용하자!
모든 필드를 가지는 생성자를 만들어주는 해당 애노테이션은 다음과 같은 단점을 공유합니다.
클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성하는데, 인스턴스 멤버의 선언 순서에 영향을 받기 때문에, 변수의 순서를 바꾸면 생성자의 입력 값 순서도 바뀌게 되어 검출되지 않는 치명적인 오류를 야기할 수 있다.
해당 애노테이션을 쓰는 이유가 보통 @Builder와 @NoArgsConstructor을 같이 쓰면 오류가 나서 붙이는 애노테이션인데,
해결책으론 클래스가 아닌 생성자에 @Builder를 붙여 사용하는 것이다.
수정자 대신 빌더 패턴을 쓰는 것은
필요 데이터만 설정 가능, 유연성 확보, 높은 가독성, 변경 가능성 최소화의 장점을 준다.
Builder 패턴을 적용할땐 위 2번에서 기술한 것 처럼 클래스가 아닌 생성자에 적용하여서 필요한 데이터만 생성하는 생성자로 관리하여 생성자 관련 이슈를 사전에 방지해줘야 한다.