엔티티에 setter를 사용하면 안되는 이유와 대체방안
엔티티에 setter를 열어두면 어떻게 될까? 보통 스프링은 여러가지 클래스 종류로 나눌수 있지만 대표적으로 Controller, Service, Repository, Domain 등 으로 분류할 수 있다. 엔티티는 도메인에 해당하며 여기서 만약 setter를 열어뒀다고 가정해보자. 엔티티에 setter로 필드 상태를 변경하고 트랜잭션이 종료되면 변경감지에 의해 update문이 나가게 된다. 그런데 Controller에서도 Entity를 생성하여 setter를 호출하고,,, Service에서도 호출하고,, 시스템이 복잡하다면 운영시 해당 Update문이 어디서 누구에 의해 발생했는지 추적하기가 굉장히 어려워진다. 그럼 setter를 열어두지 않고 어떻게 필드 상태를 업데이트 할 수 있을까? setter를..
2021.01.29