@NoArgsConstructor와 @Setter 사용시에 문제가 있음
객체 외부에서 변경을 할 수 있게 할 때 좋지 않은 점
@Builder 패턴 도입
class위에 @Builder를 붙이는 것을 지양해야 한다.
@Builder.Default 사용
// class에 Builder를 붙이는 것을 추천하지 않는다.
// 추후 리팩토링 예정
@AllArgsConstructor
@Builder
@Getter
public class Member {
private long memberId;
private String email;
private String password;
private String displayName;
@Builder.Default
private MemberRole role = MemberRole.ROLE_USER;
// 변경이 필요하다면 method를 구현함
public void updatePassword(String encodedPassword) {
this.password = encodedPassword;
}
}