Backend/스프링부트 개념정리(이론)
[ Springboot ] Spring 개념잡기 : 스프링의 핵심은 무엇인가요?
둥둥
2022. 2. 7. 19:04
728x90
Spring의 핵심 9가지
1. 스프링은 Framework이다
Frame 틀 + work 동작하다 = 틀 안에서 동작하다
2. 스프링은 오픈 소스이다
소스 코드가 공개되어있다는것을 말한다
= Spring이 어떻게 만들어졌는지 내부를 볼 수 있음
즉, 내부를 뜯어고칠수 있음(고쳐서 기여contribute를 할 수 있음)
무료
3. 스프링은 IoC 컨테이너를 가진다 ★
※ IoC(Inversion of Controll = 제어의 역전 )
Class : 설계도 ( object를 만들기 위한?)
- class
- abstract class (추상 클래스)
Object : 실체화가 가능한 것
Instance : 실체화 된것
ex) 가구(추상적인 것) - 의자(objcet) / 침대(object)
제어의 역전 : 주도권을 빼았겼다. = 주도권이 Spring에 있다.
일반적으로 레퍼런스 변수 주소는 각각의 메서드가 관리함
스프링은 들고있는 수많은 오브젝트들을 class로 만들어둔 것을 스캔하고 읽어서 자기가 이 객체들을 직접 띄움(heap 메모리 공간에)
4. 스프링은 DI를 지원한다. ★
※ DI (Dependency Injection) : 의존성 주입
개발자가 아니라 spring이 object를 스캔을 해서 heap메모리 영역에 띄웠기 때문에 Spring이 관리하게 됨(IoC : 제어의 역전)
내가 원하는 모든 class의 메소드에서 heap메모리 영역에 있는 값들을 가져와서 사용할 수 있음(DI)
= 같은 "의자"를 여러곳에서 사용할 수 있음 ( 싱글톤)
→ 스캔시 딱 하나의 "의자"가 뜨고, 딱 한번 뜬 "의자"를 공유해서 사용할 수 있음
=> 필요한 곳에 가져가서 쓰는것을 DI라고 함
5. 스프링은 엄청나게 많은 필터를 가지고 있다.
6. 스프링은 엄청나게 많은 어노테이션을 가지고 있다.
7. 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
8. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.
9. 스프링은 계속 발전 중이다.
728x90