일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- vue2
- eslint
- watchOverflow
- JavaScript
- archiver
- vscode
- querySelector
- javascirpt
- slideChange
- classlist
- jquery
- slidePerGroup
- error
- index
- v-bind
- eslint prettier
- Vue
- centerSlides
- slidePerView
- activeIndex
- js
- display
- 인덱스
- swiperOption
- swiper
- realIndex
- prettier
- css
- CORS
- loop:true
- Today
- Total
코딩하는 둥둥
[ Springboot ] Spring 개념잡기 : 필터란 무엇인가요? 본문
Spring의 핵심 9가지
1. 스프링은 Framework이다
2. 스프링은 오픈 소스이다
3. 스프링은 IoC 컨테이너를 가진다 ★
4. 스프링은 DI를 지원한다. ★
5. 스프링은 엄청나게 많은 필터를 가지고 있다.
※ 필터
: 일종의 문지기
- 1. 검열의 기능 ( 주로 filter )
- 2. 특정한 권한을 가진 경우 ( 주로 interface )
스프링 자체의 필터 또는 직접 필터를 생성해서 사용할 수 있음
* AOP의 경우 나중에 코드로 설명할 예정
6. 스프링은 엄청나게 많은 어노테이션을 가지고 있다.
※ 어노테이션 : 주석(컴파일러가 무시하는것) + 힌트(컴파일러가 뭔가를 체크할수 있도록 힌트를 줌)
= 컴파일러가 무시하지 않음
●
java에서 Animal이라는 클래스에 run이라는 메소드가 있고, Dog라는 클래스에서 Animal을 부모클래스로 상속받아 run이라는 메소드를 재정의할 경우
@Override를 붙이면 자바가 실행되고 Dog를 컴파일할때 Animal이라는 부모가 run을 가지고있을것으로 예상하고 확인
가지고 있을시 → 정상
없을시 → 에러 발생
● 스프링에서는 어노테이션을 이용해 객체 생성
@Component : 클래스 메모리에 로딩
@Autowired : 로딩된 객체를 해당 변수에 집어넣기
개발자가 직접 새로운 클래스를 new하는 방식 보다는 스프링에서는IoC를 사용
→ @Component 를 붙이면 스프링이 해당 클래스를 읽어서 heap메모리 공간에 A라는 클래스를 로딩
Spring이 Class B를 스캔할때(읽어들일때) B클래스 내부에 어떤것이 있는지 분석 (리플렉션)
리플렉션을 통해 특정 class안에 어떤 메서드, 필드, 어노테이션이 있는지 checking할수 있음
체크하는것에서 끝나는것이 아니라 무엇인가를 하라고 설정(지시)할수도 있음
※ 리플렉션
: 어떤 해당 클래스가 어떤 메서드, 어떤 필드, 어떤 어노테이션을 들고있는지 분석하는 기법 → 런타임시 분석
* DI
Spring이 IoC를 이용해 집어넣은 객체를 읽어들였을때 해당타입(A)와 동일한것이 있는지 확인
- A가 없으면 : null
- A가 있으면(같은 타입의 데이터가 있으면)
: IoC로 집어넣은 객체중 같은것을 타입을 이용해서 찾기때문에 a는 A가 들어가게 됨
7. 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
8. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.
9. 스프링은 계속 발전 중이다.
'Backend > 스프링부트 개념정리(이론)' 카테고리의 다른 글
[ Springboot ] JPA개념잡기 : 영속성 컨텍스트란 무엇인가요? (0) | 2022.02.14 |
---|---|
[ Springboot ] JPA개념잡기 : ORM이란 무엇인가요? (0) | 2022.02.11 |
[ Springboot ] JPA개념잡기 : JPA란 무엇인가요? (0) | 2022.02.10 |
[ Springboot ] Spring 개념잡기 : 메시지 컨버터가 무엇인가요? (0) | 2022.02.09 |
[ Springboot ] Spring 개념잡기 : 스프링의 핵심은 무엇인가요? (0) | 2022.02.07 |