본문 바로가기

JAVA/- Spring

MessageConverter, Json, BufferedReader, BufferedWriter, JPA

스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.

중간언어: 영어권 사람과 한국인이 이야기를 할 때 번역 과정은 너무 힘들고 복잡해요! 그래서 중간에 언어를 만드는 데 그게 바로 Json입니다.

 

중간언어는 모든 사람, 프로그래밍 언어가 이해할 수 있습니다. 자바 Object -> JSON -> 파이썬 Object로 바꿀 수 있다는 것이죠 JSON은 {"num" : 10, "name" : "사자"} 이런 식으로 Object가 생겼습니다.

 

MessageConverter는 Object를 JSON으로 변경해주는 역할을 합니다. 반대로 JSON을 Object로 변환해주는 것도 해줍니다. (스프링에 라이브러리로 존재합니다. 기본으로 Jackson입니다.)

 

 

스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.

영어 1 문자는 8비트로 나타낼 수 있습니다. 그래서 8bit를 논리적인 단위로 1byte라고 부릅니다. 하나의 문자를 뜻하죠. 한글은 2byte, 중국어는 3byte를 써야되서 유니코드에서 utf-8으로 인코딩 제공해줍니다. 이건 3byte통신이 됩니다.

 

BufferedReader로 문자를 받게되면 가변길이의 문자를 받을 수 있습니다. 데이터 요청을 받을 때 데이터를 BuffredReader를 써서 읽습니다.

 

Byte Stream 통신을 할 때 가변길이의 문자열로 보내고, 받고 해주는 기술이 Buffered 입니다. 이전에는 @ReqeustBody길이를 정해놓고 통신을 해서 작은 것이 올 때 손실이 생겼었죠.

 

스프링에서는 @ResponseBody를 쓰면 BufferdWriter가 동작을 합니다. @ReqeustBody를 쓰면 BufferdReader가 동작을 합니다.

 

 

JPA는 Java Persistence API 이다.

persistence는 영속성이라는 뜻입니다. 하나의 데이터가 영구히 기록될 수 있게 합니다. java는 하드디스크(파일시스템) 를 조금 잘라서 DBMS가 관리합니다.

(쉽게) JPA는 java를 하드디스크 부분에 영원히 저장할 수 있게 하는 API

API집고 넘어가기

  • 애플리케이션(A) - 프로그램
  • 프로그래밍(P) - 프로그래밍
  • 인터페이스(I) - 인터페이스, 상하관계가 존재하는 약속

권한이 없는자힘 있는자의 규칙으로 인터페이스를 통해 데이터를 받아서 프로그램을 짜면 그게 API입니다.

(java 프로그램을 할 때 영구적으로 데이터를 저장하는데 필요한 인터페이스)

728x90