7.2. 책 상세 화면 응답 DTO 만들기

이번에는 책 정보를 읽어서 응답으로 내보내기 위한 DTO 객체를 만들어 보겠습니다.
굳이 엔티티를 직접 사용하지 않고 응답 객체를 따로 정의하는 이유는 실제 HTTP 응답이 테이블 하나만 대상으로 하는 경우는 거의 없기 때문입니다. 많은 경우 여러 엔티티에서 필요한 필드만 뽑아내서 조합시켜서 응답하기 때문에 응답별로 엔티티 집합을 묶어주는 응답 DTO가 필요합니다.


com.yse.dev.book.dto 패키지에 BookReadResponseDTO 클래스를 생성해 주세요.
src/main/java > com.yse.dev.book.dto > BookReadResponseDTO.java

Copypackage com.yse.dev.book.dto;  

import java.time.LocalDateTime;  

import com.yse.dev.book.entity.Book;  

import lombok.Getter;  
import lombok.NoArgsConstructor;  

@NoArgsConstructor  
@Getter  
public class BookReadResponseDTO {  
 private Integer bookId;  
 private String title;  
 private Integer price;  
 private LocalDateTime insertDateTime;  

 public BookReadResponseDTO fromBook(Book book) {  
 this.bookId = book.getBookId();  
 this.title = book.getTitle();  
 this.price = book.getPrice();  
 this.insertDateTime = book.getInsertDateTime();  
 return this;  
 }  

 public static BookReadResponseDTO BookFactory(Book book) {  
 BookReadResponseDTO bookReadResponseDTO = new BookReadResponseDTO();  
 bookReadResponseDTO.fromBook(book);  
 return bookReadResponseDTO;  
 }  
}