Notice
Recent Posts
Link
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

지니의 개발로그

[Spring] HTTP 응답에서 데이터 표현 형식의 차이 (text/plain vs. application/json) 본문

내일배움캠프

[Spring] HTTP 응답에서 데이터 표현 형식의 차이 (text/plain vs. application/json)

지니♥︎ 2024. 5. 21. 10:30

🚩 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 파서가 포함되어 있다.