[Spring Boot] 서버 -> 클라이언트로 데이터 전달 (ResponseEntity)

2025. 2. 5. 21:33· BE/Spring Boot
목차
  1. 서버 -> 클라이언트한테 데이터를 전달하는 방법
  2. 1. 응답용 DTO 생성 
  3. 2. ResponseEntity 사용 
  4. 3. BaseResponse 사용
  5. 4. 상속 사용
728x90

서버 -> 클라이언트한테 데이터를 전달하는 방법

1. 응답용 DTO 생성 

응답용 DTO 클래스를 만들고 객체를 생성해서

객체의 변수에 값을 저장하고 컨트롤러의 메소드가 returm 해주면 알아서 json 형태로 변경해준다.

 

 

응답용 DTO

public class ResponseDto {
private int id;
private String name;
private String message;
// getter, setter 생략
}
@RestController
@RequestMapping("/test04")
public class Test04Controller {
@GetMapping("ex01")
public ResponseDto ex01() {
ResponseDto responseDto = new ResponseDto();
responseDto.setId(1);
responseDto.setName("test01");
responseDto.setMessage("zzzzz");
return responseDto;
}
}

 

 

 

 

 

2. ResponseEntity 사용 

단순 DTO만 사용하면 HTTP 응답 코드를 제어할 수 없다. => 따라서 ResponseEntity를 함께 사용한다.

ResponseEntity로 응답 코드를 제어할 수 있다.

@GetMapping("/ex02")
public ResponseEntity<ResponseDto> ex02() {
ResponseDto responseDto = new ResponseDto();
responseDto.setId(1);
responseDto.setName("test01");
responseDto.setMessage("zzzzz");
return ResponseEntity.status(500).body(
responseDto
);
}

status(500) 으로 설정해놔서 500 에러가 뜨는 걸 확인할 수 있다.

 

 

3. BaseResponse 사용

여러 요청에 대해서 일관된 양식으로 응답을 주고 싶다면 BaseResponse 같은 방식을 사용할 수 있다.

 

BaseResponseGeneric

public class BaseResponseGeneric<T> {
private int code;
private String message;
private T results;
public BaseResponseGeneric(int code, String message, T results) {
this.code = code;
this.message = message;
this.results = results;
}
public static <T> BaseResponseGeneric<T> success(T results) {
return new BaseResponseGeneric<>(20000, "요청 성공", results);
}
public static <T> BaseResponseGeneric<T> error(int status, String message) {
return new BaseResponseGeneric<>(status, message, null);
}
// getter, setter 생략
}

 

 

컨트롤러

// success
@GetMapping("/ex03")
public ResponseEntity<BaseResponseGeneric<ResponseDto>> ex03() {
ResponseDto responseDto = new ResponseDto();
responseDto.setId(3);
responseDto.setName("test03");
responseDto.setMessage("zzzzzz");
return ResponseEntity.ok(
BaseResponseGeneric.success(responseDto)
);
}
// error
@GetMapping("/ex04")
public ResponseEntity<BaseResponseGeneric<ResponseDto>> ex04() {
ResponseDto responseDto = new ResponseDto();
responseDto.setId(3);
responseDto.setName("test03");
responseDto.setMessage("zzzzzz");
return ResponseEntity.status(500).body(
BaseResponseGeneric.error(300002, "그런 에러가 났어요")
);
}

 

 

 

4. 상속 사용

상속을 사용해서 응답 데이터를 전달한다.

제네릭을 쓰면 상속이 되지 않기 때문에 제네릭을 사용하지 않는다.

 

BaseResponseExtends

public class BaseResponseExtends {
private int code;
private String message;
}

 

BaseResponseExtends를 상속 받아 사용한다.

public class Test04Res extends BaseResponseExtends {
int idx;
String email;
}

 

 

@GetMapping("/ex05")
public ResponseEntity<BaseResponseExtends> ex05() {
BaseResponseExtends response = new Test04Res();
response.setCode(20000);
response.setMessage("정상");
return ResponseEntity.ok(response);
}

728x90
저작자표시 비영리 변경금지 (새창열림)

'BE > Spring Boot' 카테고리의 다른 글

[Spring Boot] Repository 메서드 생성 규칙 (findAll, findBy)  (1) 2025.02.07
[Spring Boot] JPA란? / JPA 구성 요소(Entity, Repository) / JPA로 DB 다루기  (1) 2025.02.06
[Spring Boot] 클라이언트 -> 서버로 데이터 전달 (RequestMapping)  (0) 2025.02.05
[Spring Boot] IntelliJ에서 스프링 부트 프로젝트 생성 / 초기 설정  (0) 2025.02.05
[Spring Boot] Controller와 RestController 차이  (0) 2025.02.05
  1. 서버 -> 클라이언트한테 데이터를 전달하는 방법
  2. 1. 응답용 DTO 생성 
  3. 2. ResponseEntity 사용 
  4. 3. BaseResponse 사용
  5. 4. 상속 사용
'BE/Spring Boot' 카테고리의 다른 글
  • [Spring Boot] Repository 메서드 생성 규칙 (findAll, findBy)
  • [Spring Boot] JPA란? / JPA 구성 요소(Entity, Repository) / JPA로 DB 다루기
  • [Spring Boot] 클라이언트 -> 서버로 데이터 전달 (RequestMapping)
  • [Spring Boot] IntelliJ에서 스프링 부트 프로젝트 생성 / 초기 설정
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 백트래킹
  • 구현
  • be
  • Java
  • 리눅스
  • 자료구조
  • web
  • bfs
  • db
  • 회고
  • 우선순위 큐
  • 오블완
  • fe
  • cs
  • 티스토리챌린지
  • 알고리즘
  • AWS
  • 프로그래머스
  • dfs
  • 그리디
  • Gateway
  • spring boot
  • js
  • DP
  • 주간회고
  • 실습
  • 백준
  • 네트워크
  • 트리
  • vue

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[Spring Boot] 서버 -> 클라이언트로 데이터 전달 (ResponseEntity)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.