스프링은 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 프로그램을 할 때 영구적으로 데이터를 저장하는데 필요한 인터페이스)
'JAVA > - Spring' 카테고리의 다른 글
web.xml이란, Front Controller 패턴 (0) | 2022.01.04 |
---|---|
소켓 통신, 아파치, 톰켓, 서블릿 (0) | 2022.01.03 |
JPA의 컴포지션, http 간략히 설명 (0) | 2022.01.02 |
JPA는 ORM, 반복적인 CRUD 작업을 생략, 영속성 컨텍스트가짐, DB와 OOP의 불일치성을 해결하기 위한 방법론 제공 (0) | 2022.01.01 |
[Spring] Ioc 란?, DI란?, 필터들, 어노테이션, 리플렉션 (0) | 2021.12.30 |