■ IoC 란?
Inversion of Control 의 줄임말로, 제어의 역전 이라는 뜻이 된다. 제어의 역전이란 메소드나 객체의 호출작업을 개발자가 아닌 외부에서 결정되는 것을 의미한다.
예를 들면 자바 프로그램은 main() 메소드에서 시작하여 개발자가 미리 정한 순서를 따라 객체가 생성되고 실행된다. 그런데 서블릿을 생각해보면 개발해서 서버로 배포할 수 있지만, 배포하고 나서는 개발자가 직접 제어할 수 없고 서블릿에 대한 제어 권한을 가진 컨테이너가 적절한 시점에 서블릿 클래스의 객체를 만들고 그 안에 메소드를 호출한다. 대부분의 프레임 워크는 이와 같은 방식으로 사용 되며, 개발자는 필요한 부분을 개발해서 끼워넣기 형식으로 개발하고 실행한다. 이와 같이 조립된 코드의 최종 호출은 개발자에 의해 제어되는 것이 아닌 프레임워크에 의해 제어 되게 되는데 이 때문에 제어의 역전이라 하는 것 이다.
■ DI 란?
Dependency Injection 의 줄임말로, 의존성 주입 이라는 뜻이 된다. 의존성 주입은 제어의 역전이 일어날때 스프링 내부에 있는 객체들간의 관계를 관리할 때 사용하는 기법이다. 자바에서는 일반적으로 인터페이스를 이용해서 의존적인 객체의 관계를 최대한 유연하게 처리할 수 있도록 한다.
의존성 주입은 의존적인 객체를 직접 생성하거나 제어하는것이 아닌, 특정 객체에 필요한 객체를 외부에서 결정해서 연결 시키는 것을 의미한다. 우리는 클래스의 기능을 추상적으로 묶어둔 인터페이스를 갖다 쓰면 되는 것 이다. 이러한 의존성 주입으로인해 모듈간의 결합도가 낮아지고 유연성이 높아진다.
'IT 용어 정리' 카테고리의 다른 글
트랜잭션 (Transaction) 이란? (0) | 2019.10.14 |
---|---|
리눅스 런레벨 간단 정리 (0) | 2019.10.14 |
Spring Boot 란? (0) | 2019.10.04 |
JVM 이란? (0) | 2019.09.30 |
DAO 와 DTO 란? (0) | 2019.09.26 |