의존성 주입

    [Spring] 스프링 DI, IoC 이해하기

    자동차에서 만약 엔진이 오래되서 엔진을 바꾸고 싶다면, 자동자 전체가 아닌 엔진만 뽑아서 바꿔주면 됩니다. 객체 지향 프로그래밍에서도 클래스에 대한 변경이 필요하면 다른 클래스에 영향을 끼치지 않으면서 변경이 가능해야 합니다. 이러한 상황에 더 수월하게 변경이 가능케 도와줄수 있도록 도입된 기능이 바로 DI(Dependency Injection)와 IoC(Inversion of Control)입니다. 자바로 프로그래밍을 하면서 객체를 생성할 때 직접 클래스에 new 연산자를 이용하여 생성했습니다. 하지만 DI는 개발자가 직접 코딩을 하여 객체를 생성하는 것이 아니라, 컨테이너가 이를 생성시켜 주는 것입니다. 그렇게 된다면 코드에서 직접적인 연관 관계가 발생하지 않아 각 클래스들의 변경이 자유로워 집니다...