📢 인프런의 스프링부트 개념정리(이론) - 최주호님 강의를 듣고 작성한 글 입니다.
스프링이란?
-
스프링은 프레임워크이다.
-
스프링은 오픈소스이다.
-
스프링은 IoC 컨테이너를 가진다.
- Inversion of Control (제어의 역전)
- 주도권 스프링!
- Class : 설계도, Object : 실체화가 가능한 것, Instance : 실체화 된 것
- 스프링이 직접 객체들을 스캔하여 heap 메모리에 띄움
-
스프링은 DI를 지원한다.
- IoC에서 스프링이 heap에 띄운 객체들은 그 자체로 딱 하나이고, 어디에서든지 사용할 수 있음 (싱글톤)
-
스프링은 엄청나게 많은 필터를 가지고 있다.
- 필터 == 문지기 (임무)
- 톰캣 필터 : filter, web.xml
- 스프링 컨테이너 필터 : Interceptor
-
스프링은 엄청나게 많은 어노테이션을 가지고 있다. (리플렉션, 컴파일체킹)
- 어노테이션 : 주석 + 힌트
- 리플렉션 : 분석하는 기법 -> 런타임시 분석
-
스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
- 요청, 응답 둘 다 Json 데이터
- 스프링의 라이브러리인 MessageConverter(Jackson)가 Json으로 바꿔줌
-
스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.
- @RequestBody -> BufferedReader : 요청으로 들어오는 가변길이의 문자를 받을 수 있다.
- @ResponseBody -> BufferedWriter (= PrintWriter) : 바이트 스트림을 통해 데이터를 전송하는데, 전송 단위가 문자열로 가변길이이다.
-
스프링은 계속 발전중이다.