객체를 생성하려는데 DTO와 Entity의 구분이 명확하지 않아서 둘의 차이점에 대해 공부한 뒤 적절하게 사용해보기로 했다.
기본적으로 스프링 패키지 구조는 위와 같다.
@Entity
@Getter
@NoArgsConstructor
@Table(name = "tb_users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private String userId;
@Column(name = "user_password")
private String userPassword;
@Column(name = "user_name")
private String userName;
private String nickname;
private String gender;
@Column(name = "img_url")
private String imgUrl;
@Column(name = "manner_temp")
private double mannerTemp;
@Column(name = "phone_num")
private String phoneNum;
@Column(name = "region_cnt")
private int regionCnt;
@Builder
public User(String userId, String userPassword, String userName,
String nickname, String gender, String imgUrl, double mannerTemp,
String phoneNum, int regionCnt){
this.userId = userId;
this.userPassword = userPassword;
this.userName = userName;
this.nickname = nickname;
this.gender = gender;
this.imgUrl = imgUrl;
this.mannerTemp = mannerTemp;
this.phoneNum = phoneNum;
this.regionCnt = regionCnt;
}
}
@Getter
@Setter
@NoArgsConstructor
public class UserDTO {
private String userId;
private String userPassword;
private String userName;
//dto -> entity (db에 등록할 때 사용)
public User toEntity(){
return User.builder()
.userId(userId)
.userName(userName)
.userPassword(userPassword)
.build();
}
//entity -> dto(db를 조회할 때 사용)
public AccountDTO(User entity){
this.userId = entity.getUserId();
this.userName = entity.getUserName();
this.userPassword = entity.getUserPassword();
}
}
https://velog.io/@mimmimmu/spring-boot-Entity%EC%99%80-DTO-%EB%B6%84%EB%A6%AC