말이 어렵지만 자바에서 한 클래스(A)의 메서드를 사용하기 위해 다른 클래스(B)에서 그 클래스(A)의 인스턴스를 생성해 참조한 적이 있다면, 그 방식에 의존성 주입이라는 이름을 붙였다고 생각하면 된다. B가 A에게 기대고 있기 때문이다.
스프링에서 의존성 주입을 위해서는 @Autowired
와 같은 🔗 어노테이션을 사용한다.
그런데 Maven에서는 <dependency>
란 말이 정말 많이 나온다. 메이븐에서는 프로젝트가 필요로 해서 다른 아카이브로부터 가져와서 쓰는 것을 dependency라 부르고 있다고 생각하면 된다. 즉 메이븐에서 의존성Dependency은 그냥 다른 아카이브 - 좀더 정확히 말하면 프로젝트가 기대고 있는, 즉 프로젝트의 컴파일, 빌드, 테스트, 실행을 위해 필요로 하는 JAR, ZIP파일 등등의 다른 아카이브를 말한다. 이러한 Dependency들은 pom.xml파일에 <dependencies>
로 묶여 지정된다. 🔗 Maven의 POM 설명 참고.
예를 들어 어떤 라이브러리를 추가해서 사용하고 싶을 때 이 dependency를 사용해 추가하게 된다.
pom.xml파일의 dependency와 repository 이해를 위해 🔗 Maven 참고.