Why should we avoid using setters in JPA entities
2024-05-12
setter 메서드는 엔티티를 외부에서 상태를 바꾸게 할 수 있다.
근데 왜 사용을 안 하는 걸까?
사용을 하지 않는 게 아니라 더욱 명확하게 작성을 해야하는 것이다. (도메인 특화 메서드)
void setContent() {} // 1
void updateComment() {} // 2
두 메서드에 무슨 차이가 있을까?
2 번 메서드에서는 해당 코드가 수행하는 행위를 표현하여 엔티티의 상태 변화를 외부 클래스에서 사용하더라도 명확하게 알 수 있다.
이건 추상화의 본질적인 내용과도 비슷한데 2번쨰 메서드 명만으로도 ‘댓글을 변경한다’ 라는 행위를 알 수 있다.