열렬히.뛰기

IOC 이해해보기

웹 프로그래밍 > Spring > IOC 이해해보기

스프링의 주요한 특징인 DI와 IOC를 이해해보자.

IOC란?

스프링을 이용해서 코드를 만들었을 때, 객체 A 안에 객체 B 가 있다고 생각해보자.

  • 만약, B의 생성자나 getter / setter가 바뀐다고 치자. 그럼 A의 코드도 바뀌어야겠네?
  • 이런 관계가 한두번 엮인게 아니라면? 코드를 하나하나 수정하기 너무 불편할 것이다.
  • 그래서 탄생한 것이 IOC (inversion of control = 제어의 역전)
  • 스프링은 개발자가 객체를 만들고 지우지 않도록 해준다. 개발자는 필요한 코드만 잘 치면 된다.

스프링 컨테이너

그럼 스프링에서 객체는 어떻게 만들어지는 걸까?

  • 객체를 만드는 공장을 스프링 컨테이너라고 부른다.

IoC를 코드로!

그러면, IoC를 어떻게 코드로 구현할 것인가?

여기에는 크게 두 가지 방법이 존재한다.

  1. DI (Dependency injection) : 의존성 주입
  2. 서비스 로케이터 (Service Locator)