inblog logo
|
LHS's Study Space
    스프링부트

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

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

    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
    Contents
    1. BoardResponse2. BoardService

    LHS's Study Space

    RSS·Powered by Inblog