본문 바로가기

백엔드

Response 데이터와 JSON 포맷

Client와 Server

Client가 Server에게 요청을 하면
Server는 요청에 대한 처리를 한 후 결과를 응답
ex) 단순 문자열, 이미지, HTML 페이지, JSON

Spring Controller와 Response 데이터

Controller : HTML 파일과 같은 view 응답 ex) hello.html
RestController : 메소드 반환 값 자체 응답 ex) 단순 문자열, JSON

RestController의 응답 - 객체

신규 클래스 생성

: 모든 멤버 변수를 초기화하는 생성자 추가, 모든 멤버 변수에 대한 getter 메소드 추가

public class UserDto{
  Integer id;
  String name;
  List<String> specialties;

  public UserDto(Integer id, String name, List<String> specialties){
     this.id = id;
     this.name = name;
     this.specialties = specialties;
  }

  public Integer getId() {
     return id;
  }

   public String getName() {
     return name;
  }

  public List<String> getSpecialties() {
     return specialties;
  }

UserDto 객체를 생성한 후 객체를 반환

@RestController
public class UserController{
  @RequestMapping(value="/user")
  public UserDto getUser(){

     List<String> specialties = new ArrayList<>();
     specialties.add("Java");
     specialties.add("Spring Boot");

     return new UserDto(1, "JIn", specialties);

객체 반환 시 JSON 형식의 데이터가 응답

{
   "id":1,
   "name":"Jin",
   "specialties":[
      "Java",
      "Spring Boot"
    ]
}

JSON 응답 데이터

: 웹 개발 시 가장 일반적으로 사용하는 응답 데이터 포맷
프론트엔드에서는 JSON 형식의 데이터를 응답받아 화면을 구성
프론트엔드와 백엔드 모두 정해진 JSON 데이터에 맞게 구현


JSON

: JavaScript Object Notation
데이터를 교환하는 데 사용
기존의 방법(XML)보다 가볍고 상대적으로 사람이 읽고 이해하기 쉬움


요약

  1. Client/Server 구조에서 Server는 Client의 요청에 따라 적절한 처리를 한 후에 결과를 응답
  2. Server는 단순 문자열, HTML, JSON 등 다양한 형태의 데이터 응답 가능
  3. 최신 웹 개발 시 가장 많이 사용되는 응답 포멧은 JSON 데이터
  4. Spring Boot에서는 객체를 반환하면 적절한 JSON 형식으로 변환하여 Client로 최종응답
  5. JSON은 Key/Value 형식이며 객체와 배열 등의 표현도 가능

'백엔드' 카테고리의 다른 글

Request 파라미터  (0) 2023.11.22
HTTP API  (0) 2023.11.22
Spring Boot 컨트롤러와 REST API  (0) 2023.11.22
컨트롤러의 구현 문법  (0) 2023.11.16
계층형 아키텍처  (0) 2023.11.16