반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

의존 오브젝트 DI 적용 본문

반응형

결론 및 요약

스프링 컨테이너를 이용하여 의존성 주입(Dependency Injection, DI)을 구현하는 방법을 학습했습니다. HelloControllerSimpleHelloService 간의 의존 관계를 인터페이스를 통해 관리하고, 스프링 컨테이너가 이를 자동으로 처리하여 개발자가 의존성을 명시적으로 관리하지 않아도 되도록 만들었습니다.

주요 내용 요약

  1. 인터페이스 도입 및 의존성 분리:

    • 기존 SimpleHelloService 클래스는 인터페이스를 구현하지 않았으나, 이를 HelloService라는 인터페이스로 추상화하였습니다.
    • HelloService 인터페이스는 sayHello 메소드를 정의하고, SimpleHelloService는 이를 구현하는 방식으로 변경하였습니다.
    • 이렇게 인터페이스를 도입하면, HelloControllerSimpleHelloService 클래스에 직접 의존하지 않고 HelloService 인터페이스에 의존하게 됩니다.
  2. 스프링 컨테이너와 의존성 주입:

    • HelloController는 더 이상 SimpleHelloService 객체를 직접 생성하지 않고, 생성자 파라미터로 HelloService 타입의 객체를 주입받습니다.
    • 스프링 컨테이너는 SimpleHelloServiceHelloController를 빈으로 등록하고, 컨테이너가 자동으로 HelloService 객체를 생성하여 HelloController에 주입합니다.
    • 이를 통해 코드 레벨에서 의존성을 제거하고, 스프링이 의존성 관리 및 주입을 자동으로 처리하도록 구성할 수 있습니다.
  3. DI 적용을 통한 유연한 설계:

    • 의존성 주입은 코드의 유연성을 높여줍니다. 만약 SimpleHelloService 대신 다른 구현체를 사용하고 싶다면, HelloService 인터페이스를 구현한 새로운 클래스를 만들어도 HelloController의 코드를 수정하지 않고, 스프링 컨테이너에서 빈만 교체하면 됩니다.
    • 스프링 컨테이너는 DI를 통해 필요한 객체를 자동으로 생성하고 주입하여, 코드의 변경 없이도 유연하게 의존성을 관리할 수 있습니다.

결론:
스프링의 DI는 객체 간의 의존성을 자동으로 관리해주는 강력한 기능입니다. 이를 통해 코드의 결합도를 낮추고, 확장성과 유지보수성을 높일 수 있습니다.

반응형
Comments