왜 setter를 지양해야 하는가

·
spring 스프링
새로운 프로젝트에서 오랜만에 Lombok을 사용하게 됐다. 분명히 @Setter를 추가했는데, 이상하게도 Repository에서 setter가 없다는 오류가 발생했다. 코드를 아무리 살펴보고, 구글링까지 해봤지만 도무지 이유를 찾을 수 없었다. 그러다 "Getter/Setter를 지양하는 방향으로 코드를 작성해야 한다"는 글을 발견했다. 오... 그러면 값 변경은 어떻게 하는건데 라면서 찾아본 Setter의 문제점과 그 대안을 작성 해보려고 한다. [Setter의 문제점]Lombok의 @Setter는 코드량을 줄이고 가독성을 높이는 유용한 기능이지만, 무분별한 사용은 객체의 안정성과 유지보수성을 저하 시킬 수 있다. 그래서 최근에는 불변객체 패턴을 선호하는 경향이 있다고 한다. 1. 객체의 불..