제이제이
article thumbnail

 

1. 스프링은 프레임 워크입니다.


❓ 프레임 워크란?

🔥 Frame Work = Frame(틀) + work(동작한다) = 틀 안에서 동작함을 의미합니다.

 

2. 스프링은 오픈소스입니다.


❓ 오픈 소스란?

🔥 무료이며 소스코드가 모두 공개된 코드를 의미합니다.

 

따라서 스프링 부트는 오픈 소스를 뜯어서 내부가 어떻게 생겼는지 열어 볼 수 있습니다.

즉, 이 의미는 사용하다가 나중에 불편한 점들을 직접 뜯어 고쳐 오픈소스에 기여 할 수 있음을 의미합니다.

3. 스프링은 IOC 컨테이너를 가진다.


❓IOC이란?

🔥 제어의 역전을 의미하며 프로그램의 주도권이 스프링에게 있다는 것을 의미합니다.

 

 

이를 이해하기 위해서는 자바의 Class, Object,Instance에 대한 개념의 이해가 필요합니다.

 

위의 예시를 살펴보면 가구는 실체화가 가능하지 않으므로 Object가 아니라고 소개했습니다.

가구는 의자, 책상 등등 여러 가지로 분류할 수 있고 이 모든 것을 포함하는 가구라는 단어는 추상적인 개념이기 때문입니다.

 

❓ 프로그램의 제어가 스프링에게 있다는 의미는 무슨 의미일까요?

다음의 그림을 살펴봅시다.

 

이를 보다 더 자세하게 이해하기 위해 자바 코드로 살펴봅시다.

 

❓ 위의 코드에서 의자 S와 의자 V는 동일한 Object일까요?

🔥 서로 각각 다른 의자입니다.(의자 s ≠ 의자 v)

 

또한 각 인스턴스의 주소는 각각의 메소드가 관리합니다.

(의자 S 는 make 메소드가 관리, 의자 v는 use메소드가 관리)

 

메모리의 heap 부분

 

반면에 스프링은 다음과 같이 Object를 관리합니다.

 

정리

🔥 스프링이 코드를 스캔하면 딱 1번만 heap 메모리에 올려지게 되고 의자 인스턴스를 어디에서 쓰든 해당 인스턴스를 공유해서 사용할 수 있습니다.

 

4. 스프링은 DI를 지원합니다.


❓DI란?

DI = Dependency Injecton(의존성 주입)을 의미합니다.

 

이전에 스프링이 코드를 스캔해서 모든 Object를 heap메모리에 띄운다는 점을 알아봤습니다.(IOC = 스프링이 인스턴스들을 관리함)

 

❓그럼 DI란 무엇일까요?

🔥 스프링이 관리하는 Object를 스캔해서 만든 인스턴스를 내가 원하는 모든 곳에서 가져와 사용할 수 있음을 의미합니다.

 

  • 해당 인스턴스는 싱글톤으로 오게 됩니다.

 

📒 Reference(참고자료)


 

[무료] 스프링부트 개념정리(이론) - 인프런 | 강의

스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, - 강의 소개 | 인프런...

www.inflearn.com

 

 

profile

제이제이

@아사비치즈스틱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!