Spring/SpringBoot

스프링부트 개념정리 with JPA - 스프링의 핵심 & 필터

느리지만 꾸준하게 2022. 5. 6. 08:07

1. 스프링이란?

  • 스프링은 프레임워크 & 오픈소스

프레임워크는 틀이다. 틀을 벗어나는 개발을 하면 안된다.

 

그리고 오픈소스이다. => 공개되어있고 내부를 뜯어 고칠 수 있다. 기여도 할 수 있다

 

 

  • IoC 컨테이너를 가진다.

Inversion of Control 제어의 역전이다. 주도권이 스프링에게 있다.

 

Class -> 설계도!

 

Object -> 실체화가 가능한 것!(아직 실체화 안된 것)

 

Instance -> 실체화가 된 것(세상에 튀어나온 것)

 

 

가구  => 의자  / 침대 => Object

 

의자의 주소관리는 어떻게 한다?

 

 

 

  • DI를 지원한다.

스캔을 하면 딱 한번만 메모리에 뜨고 한번 뜬 의자를 공유해서 사용할 수 있다.

IoC와 DI를 하면 굉장히 프로그램일 짜는게 편하게 된다.

 

 

 

 

  • 엄청나게 많은 필터를 가지고 있다.

 

  • 많은 어노테이션을 가지고 있다.

 

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

 

  • BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.

 

  • 계속 발전중이다.

 

 

 

필터

필터는 문지기다.

 

스프링 자체!

 

필터! (사용)

 

필터 (사용 x -> 사용)

 

직접 필터 생성 !

 

 

 

 

 

 

 

 

 

 

인터셉터(AOP)에서도 권한을 체크하고 있으면 들어가게 해주고 없으면 나가게 해준다.

 

 

컴파일 체킹도 한다.

어노테이션(주석 + 힌트) <- 컴파일러 무시 x !

// 글 ~ (주석) <- 컴파일러 무시!

 

 

 

리플렉션은 런타임시 분석하는 기법이다. 리플렉션시 / 필트 / 어노테이션을 보는데 어노테이션이 Autowired이면 로딩된 객체를 해당 변수에 집어넣어라는 뜻을 찾아준다.

 

 

 

참고: <출처: 스프링부트 개념정리 with JPA 1강 - 스프링의 핵심은 무엇인가요?>

https://www.youtube.com/watch?v=XBG6CUtVCIg&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=1 

https://www.youtube.com/watch?v=mAFLNA9MYg8&list=PL93mKxaRDidG_OIfRQ4nztPQ13y74lCYg&index=2