스프링 공부/게시판 프로젝트 만들기

[스프링] 13. Member 엔티티 만들기

장아장 2023. 1. 11. 13:40

이전에 멤버에 대한 구상을 해둔 상태이다. 이에 맞는 멤버를 만들어보아야 겠다. 

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Member extends BaseEntity {

    @Column(name = "MEMBER_USERNAME")
    private String username;

    @Column(name = "MEMBER_NICKNAME")
    private String nickname;

    @Column(name = "MEMBER_EMAIL")
    private String email;

    @Column(name = "MEMBER_PASSWORD")
    private String password;

    @Column(name = "MEMBER_ROLE")
    @Enumerated(value = EnumType.STRING)
    private Role role;
}

extends BaseEntity를 통해 기본적으로 가지는 id, createDate, lastModifiedDate는 이미 만든 상태에서 이를 참조시켰다. 

 

이 상태에서 프로젝트를 실행시켜, 데이터베이스에 테이블이 제대로 생성되었는지 보았다. 

 

이후에, 모든 요청에 대해 생각을 해보고, 이에 대한 DTO를 만든 후, DTO를 이용한 메서드들을 생각해 만들어야 한다. 

 

회원가입에 대한 DTO

@AllArgsConstructor
@Data
public class RegisterRequestDto {

    @NotNull(message = "")
    private String username;

    @NotNull(message = "")
    private String nickname;

    @NotNull(message = "")
    private String email;

    @NotNull(message = "")
    private String password;

    @NotNull(message = "")
    private String passwordCheck;
}

 

닉네임 변경 DTO

@AllArgsConstructor
@Data
public class ChangeNicknameRequestDto {

    private String newNickname;
}

 

이메일 변경 DTO

@AllArgsConstructor
@Data
public class ChangeEmailRequestDto {

    private String newEmail;
}

 

비밀번호 변경 DTO

@AllArgsConstructor
@Data
public class ChangePasswordRequestDto {

    private String newPassword;

    private String newPasswordCheck;
}

 

이제 이를 이용한 테스트 코드를 만들고, 메서드를 만들며 기능을 만들어가야겠다.