Why should we avoid using setters in JPA entities

2024-05-12

setter 메서드는 엔티티를 외부에서 상태를 바꾸게 할 수 있다.

근데 왜 사용을 안 하는 걸까?

사용을 하지 않는 게 아니라 더욱 명확하게 작성을 해야하는 것이다. (도메인 특화 메서드)

void setContent() {} // 1
void updateComment() {} // 2

두 메서드에 무슨 차이가 있을까?

2 번 메서드에서는 해당 코드가 수행하는 행위를 표현하여 엔티티의 상태 변화를 외부 클래스에서 사용하더라도 명확하게 알 수 있다.

이건 추상화의 본질적인 내용과도 비슷한데 2번쨰 메서드 명만으로도 ‘댓글을 변경한다’ 라는 행위를 알 수 있다.