728x90

DI 3

Spring(스프링) - 객체지향 적용 및 스프링 기본

(interface) interface = new (구현 obj) 인터페이스를 통해 객체를 생성한 곳에서 객체 생성 부분만 변경 해 주면 쉽게 서비스 변경이 가능 => 문제점 : 클라이언트의 코드를 수정해야 함 DIP : 인터페이스에 의존을 하고 있지만 동시에 객체를 생성하기 때문에 구현 클래스에도 의존하고 있음 OCP : 구현 클래스를 교체 해야 하는 순간 의존하는 클라이언트의 소스를 변경 해야 함 => 해결하기 위해서는 인터페이스에만 의존 하도록 해야함. 즉, 누군가 구현 클래스를 대신 생성해서 사용하는 클래스의 인터페이스에 주입 해주어야 함 관심사의 분리 인터페이스의 역할을 인터페이스가 정하는 것이 아닌 애플리케이션 단위에서 정해야 함 => AppConfig 사용 AppConfig는 구현 객체를 생..

Spring - 자동 의존 주입

자동 의존 주입 @Autowired 어노테이션을 사용하여 자동으로 관련된 의존 주입을 처리해주는 방식입니다. @Autowired 어노테이션을 필드나 setter메소드에 사용하면 필드나 메소드의 인자에 Bean 객체를 사용하고 수행하며 설정객체에서 DI부분을 삭제하여 간단하게 표현이 가능합니다. 이때 설정 클래스에서는 기본 생성자를 사용하여 객체를 생성하므로 기본 생성자를 작성하여야 합니다. 기본적으로 @Autowired는 객체 타입을 통해 주입하므로 상속관계는 하나의 타입으로 인지하게 됩니다. 이때 사용하는것이 @Qualifier어노테이션입니다. @Autowired 어노테이션이 사용되는 곳에 @Qualifier 어노테이션을 사용하여 식별자를 사용하고 설정 클래스에서 내가 주입하고자 하는 클래스를 @Qua..

Spring - DI(의존주입)

의존이란 클래스 내부에서 다른 클래스의 메소드를 사용하는 것으로 클래스의 변화에 영향을 받는 관계를 말합니다. 의존 객체의 직접 생성하는 경우는 클래스 내부에서 의존 객체를 new 연산자를 사용하여 직접 생성하여 사용하는 방식을 말합니다. 의존 객체를 직접 생성하는 경우 다형성이 불가하여 유지보수 측면에서 문제가 생깁니다. 의존 주입, 즉 DI의 경우에는 생성자나 setter메서드를 통해 객체를 받아오는 방식을 말합니다. 의존 주입은 의존 클래스를 변경할 때 사용됩니다. 예를 들어 A라는 클래스를 상속 받는 B클래스를 사용해야 할 때 직접생성의 경우 클래스 내부에서 new 연산자를 통해 객체 생성하는 부분을 모두 바꿔 주어야 합니다. 그러나 의존 주입을 통해 생성자나 setter 메서드를 사용할 경우 클..