코딩하는 둥둥

[ Springboot ] Spring 개념잡기 : 스프링의 핵심은 무엇인가요? 본문

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