이전 시간에 배운 것

1. 스프링은 프레임워크이다.
2. 스프링은 오픈소스이다.
3. 스프링은 IoC 컨테이너를 가진다.
4. 스프링은 DI를 지원한다.
5. 스프링은 엄청나게 많은 필터를 가지고 있다.
6. 스프링은 엄청나게 많은 어노테이션을 가지고 있다.


7. 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
영어권 국가 사람과 한국 사람이 메세지를 주고 받을때. 안녕, Hello 이렇게 주고받을 것임. 송신자가 번역해서 보내면 송신자 입장에서 힘듦. 그래서 중간데이터라는 개념이 나옴. 한국어->영어, 영어->한국어 사이의 중간언어:xml->json 중간언어는 어떤 나라의 사람이던 잘 이해할 수 있는 언어임.
자바와 파이썬 간의 데이터 송수신은 json 오브젝트로 변경해서 던져주는 형식.
자바 object가 json으로 바뀌고 파이썬 object로 바뀐다.
한국말 - 영어 - 러시아어 이렇게 한국인과 러시아인이 영어로 소통할 수 있는 느낌
그렇다면 MessageConverter가 무엇이냐. 자바 오브젝트를 파이썬 오브젝트로 전송할때 내가 직접 컨버팅할 필요 없이 대신 번역해서 던져준다. 이때 요청할 때만 쓰는 것이 아니라 응답할때도 사용된다.

8. 스프링은 BufferedReader와 BufferWriter를 쉽게 사용할 수 있다.
통신할때 데이터는 전기선(전류)을 통해서 이동한다. 전류 흐름이 bit(0, 1)로 될텐데, 영어권 국가에서 영어 한문자를 보내는 방식으로 생각해보니 총 8bit가 필요했고 256가지의 문자를 전송할 수 있었다. 하지만 한글은 8비트로는 부족하다. 최소 16bit가 필요하다. 
영어권은 8bit 씩 끊어 읽으면 한 문자씩을 받을 수 있다. 그래서 8bit를 논리적으로 1바이트라 하며 통신의 최소 단위가 되었다. 
유니코드에서 UTF-8라는 표준 규격을 정해둠 3Byte짜리임.
Byte Stream: 1Byte, 8bit
Input stream: 바이트! 문자를 char로 캐스팅해서 처리해야하는데 InputSteramReader가 바이트를 문자하나로 바꿔서 넘겨줌
배열: 여러개의 문자를 받음. 크기가 정해져야함.
BufferedReader로 데이터를 감싸면 가변 길이의 문자를 받을 수 있다.
JSP에서는 request.getReader()
BufferedWriter / PrintWriter-> Print(), Println(), out()
전송 단위가 가변길이 문자열.
@ResponseBody -> BufferedWriter존재
@RequestBody -> BufferedReader 존재

9. 스프링은 계속 발전중이다.
스프링 부트가 나오고 나서 스프링 사용이 쉬워졌다. 

다음시간에 배울 내용

1. JPA란?

  • JPA는 Java Persistence API이다.
  • JPA는 ORM 기술이다.
  • JPA는 반복적인 CRUD 작업을 생략하게 해준다.
  • JPA는 영속성 컨텍스트를 가지고 있다.
  • JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체저장 불가능)
  • JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계)
  • 방언 처리가 용이하여 Migration하기 좋음. 유지보수에도 좋음
  • JPA는 쉽지만 어렵다.
이 블로그 포스팅은 인프런 최주호님의 스프링부트 개념정리(이론) 강의에 대한 정리 포스팅입니다. 
다음은 강사님의 강의 링크입니다. 무료 강의라서 가입만 하면 볼 수 있습니다. (강의 링크)

'웹 개발 > Spring Boot' 카테고리의 다른 글

영속성 컨텍스트란 무엇인가요?  (0) 2023.07.31
ORM이란 무엇인가요?  (0) 2023.07.31
JPA란 무엇인가요?  (0) 2023.07.30
필터란 무엇인가요?  (0) 2023.07.29
스프링 부트의 핵심은 무엇인가요?  (0) 2023.07.29

+ Recent posts