본문 바로가기
공부중/스프링부트 개념정리

스프링부트 개념정리(1) - 스프링

by 식빵ee 2023. 12. 19.

-스프링은 Framwork이다

 

-스프링은 오픈소스이다.

 

-스프링은 ioc컨테이너를 가진다 

ioc컨테이너(inversion of controll):주도권이 스프링한테 있다.

 

-스프링은 DI를 지원한다.(Dependency injection):의존성 주입

 

-스프링은 엄청나게 많은 필터를 가지고 있다. 필터는 권한을 체크함

톰캣이 가지고 있는 필터 : 필터

스프링컨테이너가 가지고있는 필터 : 인터셉터(AOP)

 

-스프링은 엄청나게 많은 어노테이션을 가지고있다.(리플렉션, 컴파일체킹)

어노테이션:주석은 컴파일러가 무시하는데 어노테이션은 컴파일러가 뭔가를 체킹할 수 있도록 힌트를 주기때문에 컴파일러가 무시를 하지 않는다.(주석 + 힌트)

스프링에서는 어노테이션으로 주로 객체 생성을 한다.

리플렉션 : 어떤 클래스 내부에 어떤 필드, 메소드, 어노테이션 어떤 것들을 들고있는지 분석하는 기법인데 런타임 시 분석한다.

 

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

자바프로그램과 파이썬이 서로 요청을 할때 중간언어로써 사용될 수 있는 그런거임

 

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

영어 한 문자가 8bit이기 때문에 8bit씩 끊어읽어! 그럼 한 문자씩 받을 수 있을거야하고 해서

8bit = 1byte : 통신단위가 되었다. 한국은 2byte

전세계적으로 각자 표현하고자 하는 문자의 바이트 수가 다르다.

그래서 통신할때 여러개의 문자가 담긴 배열로도 문자를 받을 수 있는데

맥스치가 있다보니 맥스를 정해두면 낭비되는 데이터가 있다.

그래서 BufferedReader로 데이터를 받게되면 가변길이의 문자를 받을 수 있다.

BuffereadReader와 BufferedWriter : 바이트 스트림을 통해서 데이터를 전송할때 전송단위가 문자열로 가변 길이의 데이터를 쓰게 해주는 클래스이다. 그리고 우리가 사용할 때 이 클래스를 구현할 필요없이 @Response라는 어노테이션을 제공해준다. 데이터를 받을 때는 @RequestBody사용하면 버퍼드리더가 적용한다.

 

-스프링은 계속 발전중이다.

 

 

 

 

댓글


post image post image post image post image post image post image post image post image