1. 스프링은 프레임 워크이다
- 스프링은 짜여진 틀이다. 짜여진 틀 안에서 코드를 짜면 된다.
2. 스프링은 오픈소스이다.
- 스프링은 내부 구조를 공개 해놓았다. 사용자의 편의에 따라 내부 소스를 변경할 수 있지만 이는 실력이 늘은 이후에 가능하다.
3. 스프링은 IoC 컨테이너를 가진다.
- Inversion of Controll 로 제어의 역전을 의미한다. 롤로 비유하자면 class 설계도 이고 abstract class 는 캐릭터이다. 실체화가 가능한 누누 는 object 이고 Instance는 실제화가 된 누누를 의미한다. 한 메서드에서 의자1 객체를 생성하면 이는 heap 메모리에 저장된다. 하지만 다른 메서드에서는 같은 의자 객체를 생성할 수 없고 이는 의자2 가 되어 저장된다. 의자2가 아닌 의자1을 넘겨 받고 싶으면 스프링을 이용할 수 있다. 스프링이 객체들을 읽어서 메모리에 올려준다. 이것이 제어의 역전이다.
4. 스프링은 DI 를 지원한다.
- Dependency Injection 으로 의존성 주입을 의미한다. 스프링이 관리하는 객체들을 모든 클래스의 메소드에서 사용할 수 있다. 싱글톤으로 관리된다. ( 의자1 만 주입 )
5. 스프링은 엄청나게 많은 필터를 가지고 있다.
- 필터 = 문지기 이다. 성곽이 톰켓이라면 궁전은 스프링 컨테이너 이다. 톰켓의 필터는 필터라고 부르고, web.xml 파일이다. 왕의 집의 필터는 인터셉터 라고 부른다.
6. 스프링은 엄청나게 많은 어노테이션을 가지고 있다. (Refraction, Complie checking )
- 어노테이션 : 컴파일러가 체크할 수 있게 힌트를 줌. 주석+힌트. 컴파일러가 무시하지 않음. ex) 오버라이딩 확인,
어노테이션으로 객체 생성 가능 ex) @Component ( heap 메모리에 로딩 ), @Autowired ( heap 메모리에서 찾아 로딩 된 객체를 해당 변수에 대입)
리플랙션 : 분석하는 기법. 런타임 시 분석.
7. 스프링은 MessageConverter 을 가지고 있다. 기본값은 현재 Json 이다.
- 영어 한국어 사이에 통역기 처럼 역할을 하는 것이 Json 이다. MessageConverter 는 요청 시와, 응답 시 Json 으로 변경해준다.
8. 스프링은 BufferedReader 와 BufferedWriter 를 쉽게 사용할 수 있다.
- BufferedReader 는 가변길이의 문자를 받을 수 있게 해준다.
@ResponseBody -> Bufferedwriter 등장, @ReqestBody -> Bufferreader 등장
'🟢 개념 정리 > Spring' 카테고리의 다른 글
| @Configuration, @Bean (0) | 2022.08.02 |
|---|---|
| 테스트 코드, @Test (0) | 2022.08.02 |
| 좋은 객체 지향 설계의 5가지 원칙 ( SOLID ) (0) | 2022.08.01 |
| 스프링 작동 원리 (0) | 2022.07.27 |
| JPA 란 무엇인가? (0) | 2022.07.27 |