스프링의 IoC 컨테이너 종류 중에서 가장 많이 사용되는 것이 WebApplication이다. 먼저 공부한 내용을 내가 이해한 내용을 정리하기에 앞서 IoC에 대해서 간략하게 정리하자면, 객체의 생명과 관리에 대한 제어권을 바뀐다는 의미이다. 

A라는 객체를 만드고 B에 대입한다면, B는 A에 의해 종속된다. 종속된다는 의미는 A의 동작이 바뀐다면 B의 동작도 같이 바뀌게 된다. 그렇기에 B의 동작이 유연하지가 않다. 스프링은 이러한 관계를 대신해준다. IoC컨테이너 관리하는 객체를 Bean이라고 부른다.

 

대충 이런 관계이지 않을까 싶다. 아직 공부가 부족해서 이러한 구조가 많은 것인지 잘 모르겠다.

그리고 솔직히 왜 IOC/DI가 좋다고들 하는데 지금으로써 나는 이론만 공부하고 있을 뿐이지 예제를 많이 구현해본 것이 아니라 좋은 건지 잘 모르겠다..ㅎㅎ

 

어쨌든 여러 가지 IoC컨테이너가 있는데 StaticApplicationContext, GenericApplicationContext 등이 있지만 주로 WebApplication을 사용한다.

 

IoC 계층구조 : 각자 독립적으로 자신이 관리하는 빈을 갖고있기는 하지만 DI를 위해 빈을 찾을 때는 부모 애플리케이션 콘텍스트의 빈까지 모두 검색한다.

중요한 건 자신의 부모 콘텍스트에게만 빈 검색을 요청하지 자식 콘텍스트에게는 요청하지 않는다는 점이다. 그런 이유로 같은 레벨에 있는 형제 콘텍스트의 빈도 찾을 수 없다.

 

오늘 공부한 내용을 간략하게 정리했지만 아직 코딩을 해보지 않아서 왜 좋은건지 잘 모르겠다.. 한번 해봐야겠다.

+ Recent posts