1.DTO(Data Transfer Object)
계층 간 데이터 전달을 위한 객체입니다.
스프링부트 애플리케이션에서는 컨트롤러, 서비스, 리포지토리 계층이 명확히 나뉘어져 있고, 이 계층 간에 데이터를 주고받기 위해 DTO를 활용합니다.
DTO는 주로 데이터를 외부 API 요청 및 응답, 또는 내부 서비스 계층과의 데이터 전달 시 사용됩니다.
2.DTO의 body요소 무시?
DTO 객체에 포함되지 않은 요청의 body 요소는 기본적으로 무시됩니다.
스프링부트에서 @RequestBody를 통해 데이터를 받을 때,
클라이언트가 요청 본문에 포함한 데이터가 DTO 클래스에 정의된 필드와 매핑됩니다.
DTO 클래스에 정의되지 않은 필드는 자동으로 매핑되지 않고, 무시됩니다.
만약 다음과 같은 상황이면 price는 무시됩니다.
{
"id": "123",
"name": "Sample Item",
"price": 5000
}
@Getter
@Setter
public class itemDTO {
private String id;
private String name;
}
3.예시
다음 Post 매핑은 @RequestBody를 통해 클라이언트가 요청 본문(body)에 담아서 보낸 데이터를 itemDTO 객체로 변환해줍니다. 그후 다시 returen해줍니다.
@PostMapping("/item")
public itemDTO registerItem(@RequestBody itemDTO item) {
return item;
}
itemDTO입니다. id와 name 을 받습니다.
클라이언트가 서버에 id와 name 값을 포함하여 요청을 보내거나, 서버가 클라이언트에게 이 데이터를 응답할 때 itemDTO 객체를 사용할 수 있습니다.
@Getter
@Setter
public class itemDTO {
private String id;
private String name;
}
다음처럼 POST 를 하면 JSON 형태로 Retrun이 잘된것을 확인할수있습니다.
'BackEnd > SpringBoot' 카테고리의 다른 글
[SpringBoot] 컨트롤러,서비스,레포지토리 관계 데이터 흐름 (0) | 2024.10.20 |
---|---|
[SpringBoot] Lombok에 대해 (0) | 2024.10.16 |
[SpringBoot] swagger 란?, SpringBoot 연동 사용법 (0) | 2024.10.16 |