์ด์ ์๊ฐ UserSignUpDTO (ํ์๊ฐ์ ์์ฒญ DTO) ์ ๋ํด ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ค.
์ด์ ํ์๊ฐ์ ์์ฒญ์ ํ์ผ๋ฉด ์๋ต์ด ์์ด์ผ๋๋๊น ๊ทธ ๋ถ๋ถ์ ๋ํด DTO๋ฅผ ๋ง๋ค์ด ๋ณด๋๋ก ํ๊ฒ ๋ค.
์ผ๋จ ๋ค์ ํ๋ฒ MVC ํ๋ฆ์ ๋ํด ๋ณด๊ณ ์์ํ์
UserSignUpResponseDTO ์ ์ฒด ์ฝ๋
package com.example.projectpicker.user.dto;
import com.example.projectpicker.user.entity.UserEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.time.LocalDateTime;
// ํ์๊ฐ์
์๋ฃ ํ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ตํ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ฐ์ฒด ( ํด๋ผ์ด์ธํธ <---- DB )
@Getter @Setter @ToString
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(of = "email") // email ๋ง ๋น๊ตํด๋ผ. ๊ตณ์ด ๋น๋ฒ,์ด๋ฆ๊น์ง ๋น๊ตํ ํ์x
public class UserSignUpResponseDTO {
private String email;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:ss")
private LocalDateTime joinDate;
//์ํฐํฐ๋ฅผ DTO๋ก ๋ณ๊ฒฝํ๋ ์์ฑ์
public UserSignUpResponseDTO(UserEntity userEntity) {
this.email = userEntity.getUserEmail();
this.userName = userEntity.getUserName();
this.joinDate = userEntity.getJoinDate();
}
}
/**
* DTO๋ ๋จ์ํ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ์ง๋ง, ๊ทธ๊ฒ์ด ํ์๋ ์๋๋๋ค.
*
* ๋ฌผ๋ก ๋ ์ด์ด๊ฐ ๋ฐ์ดํฐ ์ด๋์ด ํ์ํ๋ฉด DTO๋ฅผ ์ด๋ํด๋ ๋์ง๋ง, Entity๋ฅผ ์ด์ฉํ์
๋ ๋๊ณ , ๋จ์ํ String, Map๋ฑ์ ์ด์ฉํด๋ ๋ฉ๋๋ค.
*/
์ฝ๋๋ฅผ ๋ณด์.
์ผ๋จ ์๋ต์ด๊ธฐ ๋๋ฌธ์.. ํ์ ๊ฐ์ ์ ํ๊ณ ๋๋ฉด ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ์ง์ ๋ํด ์๊ฐํด๋ณด์.
์.. ๋๋ ์ด๋ฉ์ผ(email)์ด ์์์ผ๋ฉด ์ข๊ฒ ๊ณ ,, ํ์ ์ด๋ฆ!(userName)์ด ์์์ผ๋ฉด ์ข๊ฒ ์ด! ๋,,๊ฐ์ ๋ ์ง(JoinDate)๊น์ง.
private String email;
private String userName;
@JsonFormat(pattern = "yyyy-MM-dd HH:ss")
private LocalDateTime joinDate;
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋ค์ด ์ฃผ์๋ค.
์ด,, ๊ทธ๋ฐ๋ฐ ์ ๋ฒ์๊ฐ์ ๋ง๋ค์๋ UserSignUpDTO ์ ๋ค๋ฅด๊ฒ ์ด๋ฒ์๋ ์ํฐํฐ๋ฅผ DTO๋ก ๋ณ๊ฒฝํ๋ ์์ฑ์๊ฐ ์๋ค!
๋น์ฐ! ์์์ ๋ถํฐ ๊ฒ์ ๊ฐ์กฐํ์ง๋ง response๋ ์ํฐํฐ์์ DTO๋ก! ๊ฐ์ผ๋๊ธฐ ๋๋ฌธ์
์์ฒญ์ dto ์์ entity๋ก ๋ณ๊ฒฝํ๋ ์์ฑ์๊ฐ ์์๋ฐ๋ฉด ์๋ต์ ๊ทธ ๋ฐ๋๊ฒ ์ง~!!
//์ํฐํฐ๋ฅผ DTO๋ก ๋ณ๊ฒฝํ๋ ์์ฑ์
public UserSignUpResponseDTO(UserEntity userEntity) {
this.email = userEntity.getUserEmail();
this.userName = userEntity.getUserName();
this.joinDate = userEntity.getJoinDate();
}
๊ทธ๋ฆผ์ผ๋ก ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
email ์์ฃผ๋ก ๋นจ๊ฐ ์ ์ผ๋ก ๊ทธ๋ ธ๋๋ฐ, username, joindate ๋ชจ๋ ๊ฐ์ ํ๋ฆ์ด๋ค.
+ DTO ์ถ๊ฐ ์์? ใ ใ ..
DTO๋ ๋จ์ํ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ์ง๋ง, ๊ทธ๊ฒ์ด ํ์๋ ์๋๋๋ค.
๋ฌผ๋ก ๋ ์ด์ด๊ฐ ๋ฐ์ดํฐ ์ด๋์ด ํ์ํ๋ฉด DTO๋ฅผ ์ด๋ํด๋ ๋์ง๋ง, Entity๋ฅผ ์ด์ฉํ์
๋ ๋๊ณ , ๋จ์ํ String, Map๋ฑ์ ์ด์ฉํด๋ ๋ฉ๋๋ค.
'Spring๐ > ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JPA] ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ - user (UserRepository) (1) | 2023.02.11 |
---|---|
[JPA] ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ - user (LoginRequestDTO, LoginResponseDTO) (0) | 2023.02.11 |
[JPA] ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ - user (DTO) (1) | 2023.02.11 |
[JPA] ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ - user (UserEntity ์ํฐํฐ) (0) | 2023.02.11 |
[JPA] ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ - ์ด๊ธฐ ์ค์ (0) | 2023.02.11 |