coco 프로젝트를 하면서, 엔티티에 @Setter를 붙여서 사용을 했었다.
하지만 튜터님들이 @Setter 사용은 지양하라고 하셨고 이유는 다음과 같다.
Setter를 사용하면 목적성이 보이지 않는다. 즉 모호하다
이유는 왜 이 부분에서 Setter를 사용했는지 알기 어렵기 때문이다.
예를 들어 프로필을 변경할 때,
- setProfileImage()은 왜 set을 사용해서 변경해주는지 의미를 알기 어렵다.
- replaceProfileImage()은 메소드 이름에서 목적성이 보인다.
| Member.java
// 회원이 작성한 게시글 추가
public void addPost(Post post) {
post.setMember(this);
posts.add(post);
}
post.setMember(this);
처럼 set을 사용했다.| Post.java
// 게시글 작성한 회원
public void registerMember(Member member) {
this.member = member;
}
| Member.java
// 회원이 작성한 게시글 추가
public void addPost(Post post) {
post.registerMember(this);
posts.add(post);
}