인터페이스 3일차 (DTO)

2023. 1. 5. 12:44코딩배움일지/인터페이스 구현

DTO

  • Data Transfer Object
  • 계층간 데이터 전송을 위한 객체
  • getter / setter / toString 메서드 만을 포함하고 있는 클래스 (추가적으로 다른 메서드를 포함할 수도 있음 예: equals 등)

 

@Data

  • @Getter, @Setter, @ToString, @RequiredArgsConstructor, @EqualsAndHashCode 어노테이션이 합쳐진 어노테이션

@NoArgsConstructor

  • 매개변수가 없는 생성자를 작성해주는 어노테이션

@AllArgsConstructor

  • 모든 멤버변수를 매개변수로 받는 생성자를 작성해주는 어노테이션

@Getter

  • Class 멤버변수들의 Getter 메서드를 작성해주는 어노테이션

@Setter

  • Class 멤버변수들의 Setter 메서드를 작성해주는 어노테이션

@ToString

  • Class 멤버변수들의 toString 메서드를 작성해주는 어노테이션

@EqualsAndHashCode

  • 인스턴스간 속성 값들이 같은지 비교해주는 메서드와 동일한 클래스의 인스턴스인지 비교해주는 메서드를 작성해주는 어노테이션

@RequiredArgsConstructor

  • 필수 멤버변수들을 매개변수로 받는 생성자를 작성해주는 어노테이션

 

 

package com.jingu.board.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor

public class HelloDto {
	private String name;
	private int age;
}

 

@RequestBody

  • JSON 형태의 Request Body 데이터를 Java 객체로 변환해 주는 어노테이션
// @PostMapping(end-point) : 해당 end-point로 Post 방식의 Request 가 왔을 때 동작
	@PostMapping(HELLO)
	// @RequestBody : 해당 Request의 Body 에서 JSON 을 인식해 인스트너스로 변경
	public String postHello(@RequestBody HelloDto requestBody) {
		return requestBody.toString();
	}

 

 

/////////////////////////

// @PostMapping(end-point) : 해당 end-point로 Post 방식의 Request 가 왔을 때 동작
	@PostMapping(HELLO)
	// @RequestBody : 해당 Request의 Body 에서 JSON 을 인식해 인스트너스로 변경
	public HelloDto postHello(@RequestBody HelloDto requestBody) {
		return requestBody;
	}

JSON 으로 반환