Search
🧑‍💼

스프링은 어떻게 오브젝트를 관리할까? 87p~143p

생성일
2022/02/13 05:12
태그

1절 스프링이 오브젝트를 어떻게 관리하는 거지?(주제)

지금까지 스프링이 객체 지향에 어떤 가치를 두는지 알았다. 하지만 열심히 만든 객체지향적 코드가 스프링에서 어떻게 관리되는지는 알지 못했다. 알아보도록 하자!

어떻게 스프링에서는 객체지향 코드를 관리하는 거야? (개념)

관리 개념

스프링은 IOC/DI를 통하여 Bean(Object) 제어와 Bean에 다양한 IOC 서비스를 제공하고 관리하게된다.
어렵다.

체크리스트

개념을 보고도 한번에 이해하기는 어렵다. 그래서 간단히 우리가 모르는 것들을 알아보도록 하자
IOC?
Bean?
DI?

개념 설명(개념 알아보기)

IOC는 뭐지?

Bean은 뭐지?

DI는 뭐지?

정리

스프링은 제어 역전 즉, 내가 아닌 다른 곳 또는 제 3의 오브젝트를 이용하여 빈을 생성하고 관리한다. 또한 제어 역전이 적용된 컨테이너에서 DI가 이루어져 본질적으로 내가 사용하고자 하는 객체를 이용할 때는 객체가 어떻게 생성되고 무엇이 필요한지는 중요하지 않게 된다. 사용하고자하는 객체만 알고 있으면 된다. 이를 통하여 스프링은 우리가 만든 오브젝트 즉, 빈을 관리하게 된다.

2절 스프링에서는 IOC/DI를 통하여 빈의 활용을 어떤 방식으로 해주는 걸까?(주제)

우리는 이제 IOC/DI를 통하여 빈을 관리한다는 걸 알았다. 그런데 관리까진 알겠는데 그럼 스프링은 이러한 개념들을 어떻게 활용하고 있을까?

스프링은 어떻게 IOC/DI 를 활용할까?(개념)

활용 개념

스프링에서는 빈 등록 시 싱글톤레지스트리를 활용한다. 또한 여러가지 빈의 등록 방법을 지원하고 의존 관계를 검색, 주입하는 방법을 지원한다.
어렵다.

체크리스트

우리가 모르는 것이 나왔다. 또 한번 체크리스트를 통해 하나씩 알아보자.
싱글톤 레지스트리?
DI 방법?
빈 등록 방법?

활용 설명(활용 알아보기)

싱글톤 레지스트리가 뭐여?

DI방법? 여러가지야? (DI 방법이라 표현했지만 마땅히 생각나는 단어가 없었다..)

빈 등록? 여러가지야?

정리

스프링에서는 싱글톤 레지스트리를 이용하여 빈을 등록하고 사용한다. 또한 의존 관계 주입, 검색 방법 등을 제공하고 이를 통하여 기능 추가, 기능 변경에 강점을 가지게 해준다. 그리고 최종적으로 빈의 등록 방식을 다양화하여 어떤 상황(변경이 많던, 추가가 많던)에서든 오브젝트를 잘 관리 할 수 있게 하는 토대를 제공하고 활용할 수 있게 해준다.

최종 정리

1.
스프링은 IOC/DI를 이용하여 스프링 빈을 관리한다.
2.
IOC의 원리는 제어 역전에 있다.
3.
DI는 의존성 주입 즉, 스프링이 관리하는 빈들끼리의 관계에서 일어나는 행위다.
4.
빈은 스프링이 관리해야하는 대상을 지칭한다.
5.
싱글톤 레지스트리를 통하여 하나의 객체만 등록되게 활용한다.(물론 스코프도 존재한다.)
6.
스프링이 지원하는 의존 관계를 설정하는 방법은 DI(의존성 주입)과 DL(의존성 검색)이 있다.
7.
빈의 등록은 java, xml 두가지 방식이 있고 둘다 혼용해서 사용할 수 있다.
8.
이 모든 행위는 우리가 만든 객체 지향적 코드를 좀 더 잘 활용하기 위한 개념과 활용 방법이다. 더 오브젝트를 잘 설계하자

체크 리스트

주제 : (관리와 활용을 주제로 이야기하고 싶었다.)
원리 및 개념 : (관리와 활용 두가지를 나누어 설명하려고 했는데 잘 안된 것 같다.)
방법 : (관리 파트에서 Ioc/di/bean에 대한 개념을 설명하고 활용 파트에서 싱글톤 레지스트리를 활용하고 di를 어떻게 활용하고, bean을 어떻게 활용하는지를 설명하려고 했다. 하지만 생각처럼 잘 안된 것 같다. )

인용 및 참고