[Spring Boot] Setter vs Builder
·
Back-End/Spring Boot
프로젝트를 진행하다 보면, CRUD 작업을 하는 경우가 많다. 특히 Update 작업을 하는 경우, 개발하는 과정에서 Setter의 사용을 지양하라고는 하는데, 도대체 왜일까? 객체의 불변성이 깨질 수 있다.Setter를 사용하는 경우, 객체의 상태가 변할 수 있기 때문에 객체지향 설계 원칙인 개방-폐쇄의 원칙(OCP)에 어긋나게 된다. OCP는 확장에 대해서 개방되어야 하나 수정에 대해서는 폐쇄적이어야 한다는 것으로, Setter를 사용하게 되면 수정에 대해 문제가 발생할 수 있다는 점을 알아야 한다. 예시 코드를 함께 보자.public class PersonService { private PersonRepository personRepository; public PersonService(P..