우선 회원가입을 만들 데이터 클래스를 만들생각입니다. 우선 간단하게 회원 클래스(Member)와 게시판 클래스(Board)를 만들볼 생각입니다.
@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member {
@Id @GeneratedValue
@Column(name = "member_id")
private Long id;
@Setter @NotNull
private String nickname;
@Setter @NotNull
private String password;
@NotNull
private String loginId;
@NotNull
private LocalDateTime createDate;
@Setter
private String email;
private Member(String nickname, String loginId, String password, String email) {
this.nickname = nickname;
this.loginId = loginId;
this.password = password;
this.email = email;
this.createDate = LocalDateTime.now();
}
//생성 로직
public static Member createMember(String nickname, String loginId, String password, String email) {
return new Member(nickname, loginId, password, email);
}
}
@Entity @Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Board {
@Id @GeneratedValue
@Column(name = "board_id")
private Long id;
@NotNull @Setter
private String title;
@NotNull @Setter
private String content;
@ManyToOne(fetch = LAZY)
@JoinColumn(name = "member_id")
private Member member;
private LocalDateTime createdDate;
private Board(Member member, String title, String content) {
this.member = member;
this.title = title;
this.content = content;
this.createdDate = LocalDateTime.now();
}
//생성 메소드
public static Board createBoard(Member member, String title, String content) {
return new Board(member, title, content);
}
}
우선은 생성자를 함부로 만들지 못하게 create메소드를 이용하여 생성할 생각입니다.
그리고 나중에 값이 변경될 수 도 있는 값은 Setter를 붙여주었습니다.