[스프링 부트] 13. DTO 구현

lhs's avatar
Nov 17, 2024
[스프링 부트] 13. DTO 구현
 

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): idtitle을 개별적으로 받는 대신, 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에서 받은 boardListDTO로 변환하고, 변환된 DTO 객체들을 dtoList에 추가하여 반환한다.
  • 이를 통해 뷰에서 필요한 데이터만 효율적으로 전달할 수 있다.
 
Share article

LHS's Study Space