6.1 RequestDTO

사용자가 입력한 값이 application/x-www-form-urlencoded 방식으로 전달되면, 스프링은 요청 파라미터를 DTO 필드와 자동 매핑해 컨트롤러 메서드에 주입합니다. x-www-form-urlencoded은 key=value 형태로 구성되며 & 로 구분합니다.

1.png

1.png

save-form.mustache를 확인합니다.

save-form.mustache

2.png

2.png

<aside> 💡 <input> 태그의 name 속성은 DTO의 필드명과 일치해야 매핑이 가능합니다.

</aside>

board 폴더에 BoardRequest.java 파일을 생성합니다.

src > main > java > com >metacoding > springv1 > board

3.png

3.png

사용자가 입력한 데이터를 받는 DTO는 BoardRequest.java 에 내부 클래스로 구현하면 DTO가 많아도 관리하기 좋습니다. BoardResponse.java 파일은 이번 챕터에서는 사용하지 않습니다.

다음과 같이 SaveDTO 클래스를 작성합니다.

BoardRequest.java

package com.metacoding.springv1.board;

import lombok.Data;

public class BoardRequest {

    @Data
    public static class SaveDTO {
        private String title;
        private String content;
    }   
}

6.2 Service

@Transactional 은 트랜잭션의 시작과 끝을 정의하는 어노테이션입니다. 데이터의 입력, 수정, 삭제와 같은 작업이 포함된 로직이 모두 정상적으로 실행되면 자동으로 COMMIT 되고, 중간에 하나라도 실패하면 전체가 ROLLBACK 되어 데이터의 무결성과 일관성을 보장합니다.