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)보다 가볍고 상대적으로 사람이 읽고 이해하기 쉬움
요약
- Client/Server 구조에서 Server는 Client의 요청에 따라 적절한 처리를 한 후에 결과를 응답
- Server는 단순 문자열, HTML, JSON 등 다양한 형태의 데이터 응답 가능
- 최신 웹 개발 시 가장 많이 사용되는 응답 포멧은 JSON 데이터
- Spring Boot에서는 객체를 반환하면 적절한 JSON 형식으로 변환하여 Client로 최종응답
- 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 |