스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
✅ MessageConverter란?
"스프링이 데이터를 JSON으로 변환해 주는 기능!"
스프링은 데이터를 주고받을 때 MessageConverter를 사용합니다.
현재 기본 설정된 변환 형식은 JSON이며, 이를 자동으로 변환해 줍니다.
📌 "MessageConverter는 요청(Request)과 응답(Response) 모두 JSON으로 변환해 준다!"
🔹 JSON 변환 예제
class Animal {
int num = 10;
String name = "tiger";
}
📌 위 클래스를 JSON으로 변환하면
{"num": 10, "name": "tiger"}
스프링이 자동으로 객체를 JSON으로 변환해주기 때문에, 개발자가 직접 변환할 필요가 없습니다!
🔹 MessageConverter와 Jackson
스프링은 기본적으로 Jackson 라이브러리를 사용하여 JSON 변환을 수행합니다.
| 개념 | 역할 |
| MessageConverter | 요청과 응답을 JSON으로 변환 |
| Jackson | JSON 변환을 담당하는 라이브러리 |
📌 "MessageConverter는 내부적으로 Jackson을 이용해 데이터를 변환한다!"
스프링은 BufferdReader와 BufferedWriter를 쉽게 사용할 수 있다.
✅ BufferedReader와 BufferedWriter
"스프링은 데이터 통신을 쉽게 처리할 수 있도록 BufferedReader와 BufferedWriter를 제공한다!"
🔹 데이터 통신의 원리
컴퓨터는 데이터를 비트(bit) 단위로 전송합니다.
- 0 = 전류가 흐르지 않음
- 1 = 전류가 흐름
- 최소 8비트(1바이트) = 2⁸ = 256가지 문자 표현 가능
- 한글은 최소 16비트 필요
- 국제적으로 유니코드(UTF-8)를 사용하여 문자 인코딩 수행
📌 "UTF-8을 사용하면 전 세계 모든 언어를 통신할 수 있다!"
🔹 바이트 스트림(Byte Stream)이란?
| 개념 | 설명 |
| Byte Stream | 1Byte(=8bit) 단위로 데이터를 처리 |
| InputStream | 바이트 단위로 데이터를 읽음 |
| OutputStream | 바이트 단위로 데이터를 씀 |
📌 "자바는 InputStream을 사용해 데이터를 바이트 단위로 읽는다!"
🔹 InputStream → 문자 변환
바이트 데이터를 문자로 변환할 때 InputStreamReader를 사용합니다.
InputStreamReader reader = new InputStreamReader(inputStream, "UTF-8");
📌 "InputStreamReader를 사용하면 바이트를 문자(Character)로 변환할 수 있다!"
✅ BufferedReader와 BufferedWriter
"문자를 효율적으로 읽고 쓰기 위한 스트림!"
🔹 BufferedReader
BufferedReader는 가변 길이의 문자를 받을 수 있어 더 효율적입니다.
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line = reader.readLine(); // 한 줄씩 읽기
📌 "BufferedReader를 사용하면 문자를 한 줄씩 읽을 수 있다!"
🔹 BufferedWriter vs PrintWriter
| 방식 | 설명 |
| BufferedWriter | 데이터를 효율적으로 출력 |
| PrintWriter | 더 편리하게 문자열 출력 가능 |
📌 "JSP에서는 out 객체가 기본적으로 PrintWriter이다!"
✅ Spring과 @ResponseBody & @RequestBody
"스프링은 BufferedReader와 BufferedWriter를 애너테이션으로 자동 처리해준다!"
| 에너테이션 | 설명 |
| @RequestBody | 요청 데이터를 BufferedReader로 읽어옴 |
| @ResponseBody | 응답 데이터를 BufferedWriter로 출력 |
📌 "스프링은 @RequestBody와 @ResponseBody를 통해 JSON 변환을 자동으로 처리한다!" 🚀
🔥 핵심 정리
| 개념 | 설명 |
| MessageConverter | 요청 & 응답 데이터를 JSON으로 변환 |
| Jackson | JSON 변환을 담당하는 라이브러리 |
| BufferedReader | 입력(데이터 읽기) |
| BufferedWriter | 출력(데이터 쓰기) |
| @RequestBody | 요청 데이터를 JSON으로 변환 |
| @ResponseBody | 응답 데이터를 JSON으로 변환 |
📢 마무리
스프링은 MessageConverter를 활용해 데이터를 JSON으로 변환하고,
BufferedReader & BufferedWriter를 이용해 데이터 통신을 효율적으로 처리합니다.
이제 개발자는 JSON 변환을 신경 쓸 필요 없이 스프링이 자동으로 처리해주기 때문에,
더욱 쉽게 REST API를 만들 수 있습니다!
스프링은 계속 발전 중이고 많은걸 할 수 있다. 스프링부트가 나오면서 쉬워졌다.
https://getinthere.tistory.com/9
스프링부트 with JPA 1강 - 스프링이란!
1. 스프링이란? 스프링은 프레임워크이다. 스프링은 오픈소스이다. 스프링은 IoC 컨테이너를 가진다. 스프링은 DI 를 지원한다. 스프링은 엄청나게 많은 필터를 가지고 있다. 스프링은 엄청나게
getinthere.tistory.com
'스프링(Spring) 및 자바(JAVA)' 카테고리의 다른 글
| 스프링 부트 개념 정리 - 이론06 (0) | 2025.03.08 |
|---|---|
| 스프링 부트 개념 정리 - 이론05 (0) | 2025.03.08 |
| 스프링 부트 개념 정리 - 이론04 (1) | 2025.03.07 |
| 스프링 부트 개념 정리 - 이론02 (0) | 2025.03.06 |
| 스프링 부트 개념 정리 - 이론 01 (0) | 2025.03.06 |