목차

의존성 주입(주제)

의존성 주입(Dependency Injection, DI)은 서로 독립적인 객체에 의존성을 부여하거나, 이미 의존성이 있는 객체 사이에 개입하는 것을 의미한다.

관점에 따른 해석

시스템 통합(SI)

시스템 통합(SI)에서 보는 의존성 주입(DI)이란 소프트웨어 엔지니어링의 객체지향(OOP)에서 나온 개념이다.

서로에게 어떠한 의존 관계도 없는 독립적인 객체들이 서로에게 의존하는 관계를 맺어야 할 때, 서로의 객체가 각각 누구에게 어떠한 형식으로 의존하여야 하는지를 정의한 새로운 객체를 만드는 것이다.

비유로 말하면, 기록매체(돌판, 종이 등)가 발명되기 전에는 자신의 모든 사회적 관계(신분, 계약 등)를 표현하기 위해 자신의 신체에다가 표시를 해야 했다면, 기록매체가 발명된 이후부터는 돌판이나 종이에 사회적 관계를 표시한 것과 같다.

객체지향 프로그래밍 개념(예: class)을 이용하여 구현하는 것이 일반적이나, 일부 프레임워크(예: 스프링 프레임워크)에서는 XML 등으로도 표현할 수 있도록 지원한다.

컴퓨터 보안(CS)

컴퓨터 보안(CS)에서 보는 의존성 주입이란, 컴퓨팅 시스템을 이루는 객체 각각의 특성이 하드웨어인지 소프트웨어인지 가리지 않고, 서로 의존 관계에 있는 모든 것 사이에 공격을 목적으로 개입하는 것을 의미한다.

이러한 행위들은 엄연한 의존성 주입의 일종이지만 연관된 개념을 설명할 때 잘 사용하지 않는 용어이므로, 컴퓨터 보안에서 이러한 행위들은 각기 공격의 특성에 맞게 MITM(네트워크), (DLL, SQL, Command)-injection(웹/시스템), Supply-chain attack(공급망 공격) 등으로 구분하여 부른다.

유의어