Spring Boot와 JPA로 쇼핑몰 프로젝트를 진행하면서 이런 코드를 작성하게 되었다.public void cancel() { this.orderStatus = OrderStatus.CANCELLED;}처음에는 이런 생각이 들었다."그냥 setter로 값 바꾸면 되는 거 아닌가?"예를 들면:order.setOrderStatus(OrderStatus.CANCELLED);이렇게 해도 동작은 똑같기 때문이다. setter 방식의 문제예를 들어 주문 취소를 setter로 처리한다고 해보자.order.setOrderStatus(OrderStatus.CANCELLED);현재는 단순히 상태 값만 바꾸기 때문에 큰 문제가 없어 보인다.하지만 나중에 주문 취소 규칙이 추가되면 이야기가 달라진다. 예를 들어:이미..