스프링(Spring) 및 자바(JAVA)

스프링 부트 개념 정리 - 이론03

Dev.99_tale 2025. 3. 7. 10:56

스프링은 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