봄.... 스프링...

eland·2024년 7월 16일

'스프링'

이제 슬슬 자바를 배운 후 스프링을 배우기 시작했다.

강사님 께서 스프링에서 중요한 4가지 단어들을 알고 이를 설명할 줄 알아야 스프링에 대해 안다고 말할 수 있다고 하셔서 이를 설명해 보려한다.


IoC(Inversion of control,제어의 역전)
DI(Dependency Injection,의존성 주입)
Spring beans
Spring container

(강사님께서 한글이 더 어렵다고 했는 데 맞는거 같다)

우선 첫번째로는 IoC, 제어의 역전이다. 여기서 이해를 쉽게 하기 위해 제어와 역전이 무슨 뜻을 나타내는지 알아보자.


제어는 객체의 생성,사용과 같은 객체와 관련된 활동들이라고 생각을 했고, 역전은 기존의 상태와 반대로 된다고 쉽게 생각해보자. 그렇다면 제어의 역전은 기본적으로는 프로그래머가 사용하기 위해 객체를 생성하고 사용하는데, 이러한 책임을 프로그래머가 아닌 프레임워크=스프링=컨테이너가 대신 해준다는 뜻으로 이해할 수 있다.


여기서 스프링이 관리하는 객체들을 Spring Bean이라고 하고 이들을 한데 모아 관리하는 곳을 Spring Container라고 한다. 또한 Spring Container는 객체와 같은 느낌으로 class를 통해 생성한다고 볼 수도 있다.


그렇다면 DI는 무엇일까?
DI는 의존성 주입으로 이렇게 책임을 스프링으로 전가하여 만들게 된 객체를 프로그래머가 사용하기 위해서 다시 전달받는(주입받는)과정을 말한다고 이해하였다.




이를 총체적으로 정리해서 예시를 들어보았다.

IoC는 군대에서 병장이 일병에게 내가 빨래하기 싫으니 빨래하라고 시키는 것이고, 다 한 빨래를 다시 가져오라고 하는 것을 DI라고 생각했다. 여기서 빨래는 Bean이고 그 빨래를 담은 빨래통을 Container라고 이해하였다.

이전 배달의 민족 미니 프로젝트를 진행할때 Controller와 View를 구성할 때 어떤 객체를 먼저 생성해야 할지 정하는 부분에서 오류가 생겨 무한 참조를 하는 오류를 발생시킨 적이 있었는데 이와 같은 부분을 Spring은 쉽게 해결시켜줄 수 있을 것 같았다.


앞으로 Spring에 대해 계속 배울 텐데 이러한 4가지 단어를 유의하면서 학습을 진행해야겠다.
profile
더 이상 핑계를 댈 때가 아니다.

0개의 댓글