지니의 개발로그
[Spring] HTTP 응답에서 데이터 표현 형식의 차이 (text/plain vs. application/json) 본문
🚩 20240520 TIL 내일배움캠프 #35일차
🟠 Content-Type란?
데이터의 표현 형식을 나타내는 것
예시 :
text/plain : 일반 텍스트 데이터임을 의미
application/json : JSON 형식의 데이터임을 의미
클라이언트는 Content-Type 헤더를 보고 응답 데이터를 어떻게 해석해야 하는지 알 수 있다.
text/plain은 그대로 텍스트로 표시하고,
application/json은 JSON 파서를 사용하여 구조화된 데이터로 해석한다.
🟠 Content-Type은 어떻게 결정될까?
Content-Type의 차이는 반환되는 값의 타입에 따라 결정
예시 :
문자열 Stiring을 반환하면 Content-Type은 text/plain
Star 객체를 반환하면 Content-Type은 application/json
(Spring은 객체를 JSON 형식으로 자동 변환하여 응답)
🟠 파서(parser)
해당 데이터 형식의 문법을 이해하고 프로그래밍 언어의 객체로 변환하는 역할
예시 :
JSON 파서(parser)는 JSON 형식의 데이터를 구문 분석하여 프로그래밍 언어에서 사용할 수 있는 객체로 변환하는 역할
JSON(JavaScript Object Notation)은 키-값 쌍으로 이루어진 데이터 교환 형식이기 때문에
이 JSON 데이터를 프로그램에서 직접 사용하기 위해서는 파싱(parsing) 작업이 필요
즉, JSON 문자열을 받아 이를 구문 분석하여 프로그래밍 언어의 객체로 변환하는 역할을 하는 것이 '파서'
🟢 정리
Spring MVC에서 @ResponseBody 애노테이션을 사용하면
메서드의 리턴 값을 HTTP 응답 본문에 직접 작성한다.
이때 리턴 값의 타입에 따라 Content-Type이 결정된다.
클라이언트는 Content-Type 헤더를 보고 응답 데이터를 어떻게 해석해야 하는지 알 수 있다.
text/plain은 그대로 텍스트로 표시하고,
application/json은 JSON 파서를 사용하여 구조화된 데이터로 해석한다.
※ JSON 파서(parser) : JSON 형식의 데이터를 구문 분석하여 프로그래밍 언어에서 사용할 수 있는 객체로 변환하는 역할
나는 파서를 구현 한 적이 없는데?
Spring Boot는 기본적으로 Jackson JSON 라이브러리를 내장하고 있으며,
이 라이브러리에 JSON 파서가 포함되어 있다.
'내일배움캠프' 카테고리의 다른 글
프레임워크와 라이브러리의 차이점 (0) | 2024.05.23 |
---|---|
@RestController와 @Controller 차이 (0) | 2024.05.22 |
[Spring] @ResponseBody로 데이터 반환하기 (0) | 2024.05.18 |
API란? (TIL #31일차) (0) | 2024.05.17 |
서버와 네트워크 (TIL #29일차) (0) | 2024.05.16 |