1. BoardResponse
public class BoardResponse {
@Data
public static class DTO {
private int id;
private String title;
public DTO(Board board) {
this.id = board.getId();
this.title = board.getTitle();
}
}
}
@Data
: 게터, 세터,toString()
,equals()
,hashCode()
메서드를 자동으로 생성해주는 롬복 어노테이션
public static class DTO
:BoardResponse
의 내부 정적 클래스- 정적 클래스로 정의되어 있어, 외부 클래스의 인스턴스를 생성하지 않고도 사용할 수 있다.
public DTO(Board board)
:id
와title
을 개별적으로 받는 대신,Board
객체를 매개변수로 받아 해당 데이터를 복사하여 손쉽게DTO
객체를 생성할 수 있다.
2. BoardService
@RequiredArgsConstructor
@Service
public class BoardService {
private final BoardRepository boardRepository;
public List<BoardResponse.DTO> 게시글목록보기() {
List<BoardResponse.DTO> dtoList = new ArrayList<>();
List<Board> boardList = boardRepository.findAll();
for (Board board : boardList) {
BoardResponse.DTO dto = new BoardResponse.DTO(board);
dtoList.add(dto);
}
return dtoList;
}
}
for
문을 사용하여Repository
에서 받은boardList
를DTO
로 변환하고, 변환된DTO
객체들을dtoList
에 추가하여 반환한다.
- 이를 통해 뷰에서 필요한 데이터만 효율적으로 전달할 수 있다.
Share article