IoC 3주차 DI, IoC, POJO DI, IoC, POJO 7장 p.234 IoC/DI -제어의 역전/의존성 주입 스프링의 IoC(Inversion of Control / 제어의 역전)라고도 하는 DI(Dependency Injection / 의존성 주입)를 알아보기 전에 프로그래밍에서 의존성이란? A 객체에서 B, C객체를 사용(의존)할 때 A 객체에서 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 B, C객... POJOIoCdiIoC DI & IoC & Bean 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. 첫번째 방법은 A객체가 B와 C 객체를 New 생성자를 통해 직접 생성하는 방법이고, 두번째 방법은 외부에서 생성된 객체를 setter()를 통해 사용하는 방법이다. 바로 이 두번째 방법이 의존성 주입의 예시인데, A 객체에서 B, C 객체를 사용(의존)할 때 A 객체에서 직접 생성하는 것이 아니라 외부(IOC컨테이... 의존성Spring제어의역전IoC의존성주입beanIoC [스프링 기초] 스프링이란? 사람이 붕어빵을 만들 때 미리 준비 해 둔 반죽을 틀에 넣을 때 다양한 도구들을 사용할 수 있는데 주전자를 통해서 넣어도 되고 국자를 사용해서 넣어도 됩니다. 반면 자바 구성의 경우에는 @Configuration 어노테이션과 @Bean 어노테이션을 통해서 ServiceConfiguration 클래스가 스프링 애플리케이션 컨텍스트에 빈을 제공한다는 것을 명시해주고 등록된 빈들은 컨테이너의 관리... IoCdi스프링SpringIoC Spring (2) - IoC에 대하여 객체의 생명주기(생성-설정-초기화-소멸)부터 생명주기의 관리를 개발자가 아닌 스프링 프레임워크로 모든 객체에 대한 제어권이 바뀐, 즉 주체가 되어 담당하는 것을 말합니다. 즉, 제어의 역전(IoC)은 메서드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것을 의미하며, 줄여서 제어의 흐름을 바꾼다는 뜻으로도 볼 수 있겠습니다. 객체지향 프로그래밍은 각 객체마다 자기의 역할과 ... Inversion Of ControlSpring제어의역전IoC스프링Inversion Of Control SPRING - 오브젝트와 의존관계 (7) 🔧 런타임 의존관계 설정 service클래스의 의존관계 UserRepositoryV5.java UserRepositoryV5Impl.java UserServiceV5.java 이렇게, 인터페이스에 대해서만 의존관계를 만들어두면 인터페이스 구현 클래스와의 관계는 느슨해지면서 변화에 영향을 덜 받는 상태가 됩니다. service 클래스는 repository인터페이스에게만 의존한다고 볼 수 도 있... SpringIoCdidependencyIoC SPRING - 오브젝트와 의존관계 (5) 스프링의 핵심을 담당하는 것은 빈 팩토리 또는 애플리케이션 컨텍스트라고 불리는 것입니다. 애플리케이션 컨텍스트, 빈 팩토리 빈의 생성과 관계설정 같은 제어를 담당하는 IOC 오브젝트를 빈 팩토리 또는 애플리케이션 컨텍스트라고 부릅니다. 별도의 설정 정보(오브젝트를 어떻게 생성하고, 어떤 의존관계를 맺어주고)를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄합니다. 이러한 (롬복을 사용하... SpringIoCdidependencyIoC SPRING - 오브젝트와 의존관계 (6) 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만 존재하는 것이고 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐 두 개의 각기 다른 오브젝트가 메모리상에 존재하는 것, 변수 명이 같다거나 등등 적절한 동등성 기준을 두고 판단 스프링 애플리케이션 컨텍스트와 순수 자바 코드로 만든 오브젝트 팩토리의 동일성을 판별해봅시다. 스프링 빈 애플리케이션 컨텍스트는 동일성을 충족했다는 것을 알 수 ... SpringIoCdidependencyIoC 제어의 역전/의존성 주입 - IoC/DI (1) - DI 본 상황에서는 여러 종류의 Internet Service Provider가 있고 Client는 Internet Service Provider를 변경할 수 있다고 가정한다. 다음과 같이 여러종류의 Internet Service에 연결할 수 있는 코드가 있다고 가정해보자. 바로 Client가 특정 InternetService에 과하게 의존하고 있다는 것이다. 위 코드에서는 Client가 특정 I... 의존성 주입제어의 역전스프링diIoCSpringIoC SPRING - 오브젝트와 의존관계 (4) 기능을 구현한 코드는 그런 변화에 영향을 받지 않고 유지할 수 있으므로 변경에는 닫혀 있다고 할 수 있습니다. 높은 응집도와 낮은 결합도 즉, 변경이 일어날 때 모듈의 많은 부분이 함께 바뀐다면 응집도가 높다고 말할 수 있습니다. 모듈의 일부분만 변경이 일어난다면, 어떤 부분이 변경 되었는지 파악하기 어렵고, 그 변경으로 인해 다른 부분에 영향을 끼칠 수 도 있습니다. 작업은 항상 전체적으로... IoCdiSpringdependencyIoC
3주차 DI, IoC, POJO DI, IoC, POJO 7장 p.234 IoC/DI -제어의 역전/의존성 주입 스프링의 IoC(Inversion of Control / 제어의 역전)라고도 하는 DI(Dependency Injection / 의존성 주입)를 알아보기 전에 프로그래밍에서 의존성이란? A 객체에서 B, C객체를 사용(의존)할 때 A 객체에서 직접 생성 하는 것이 아니라 외부(IOC컨테이너)에서 생성된 B, C객... POJOIoCdiIoC DI & IoC & Bean 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. 첫번째 방법은 A객체가 B와 C 객체를 New 생성자를 통해 직접 생성하는 방법이고, 두번째 방법은 외부에서 생성된 객체를 setter()를 통해 사용하는 방법이다. 바로 이 두번째 방법이 의존성 주입의 예시인데, A 객체에서 B, C 객체를 사용(의존)할 때 A 객체에서 직접 생성하는 것이 아니라 외부(IOC컨테이... 의존성Spring제어의역전IoC의존성주입beanIoC [스프링 기초] 스프링이란? 사람이 붕어빵을 만들 때 미리 준비 해 둔 반죽을 틀에 넣을 때 다양한 도구들을 사용할 수 있는데 주전자를 통해서 넣어도 되고 국자를 사용해서 넣어도 됩니다. 반면 자바 구성의 경우에는 @Configuration 어노테이션과 @Bean 어노테이션을 통해서 ServiceConfiguration 클래스가 스프링 애플리케이션 컨텍스트에 빈을 제공한다는 것을 명시해주고 등록된 빈들은 컨테이너의 관리... IoCdi스프링SpringIoC Spring (2) - IoC에 대하여 객체의 생명주기(생성-설정-초기화-소멸)부터 생명주기의 관리를 개발자가 아닌 스프링 프레임워크로 모든 객체에 대한 제어권이 바뀐, 즉 주체가 되어 담당하는 것을 말합니다. 즉, 제어의 역전(IoC)은 메서드나 객체의 호출을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것을 의미하며, 줄여서 제어의 흐름을 바꾼다는 뜻으로도 볼 수 있겠습니다. 객체지향 프로그래밍은 각 객체마다 자기의 역할과 ... Inversion Of ControlSpring제어의역전IoC스프링Inversion Of Control SPRING - 오브젝트와 의존관계 (7) 🔧 런타임 의존관계 설정 service클래스의 의존관계 UserRepositoryV5.java UserRepositoryV5Impl.java UserServiceV5.java 이렇게, 인터페이스에 대해서만 의존관계를 만들어두면 인터페이스 구현 클래스와의 관계는 느슨해지면서 변화에 영향을 덜 받는 상태가 됩니다. service 클래스는 repository인터페이스에게만 의존한다고 볼 수 도 있... SpringIoCdidependencyIoC SPRING - 오브젝트와 의존관계 (5) 스프링의 핵심을 담당하는 것은 빈 팩토리 또는 애플리케이션 컨텍스트라고 불리는 것입니다. 애플리케이션 컨텍스트, 빈 팩토리 빈의 생성과 관계설정 같은 제어를 담당하는 IOC 오브젝트를 빈 팩토리 또는 애플리케이션 컨텍스트라고 부릅니다. 별도의 설정 정보(오브젝트를 어떻게 생성하고, 어떤 의존관계를 맺어주고)를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄합니다. 이러한 (롬복을 사용하... SpringIoCdidependencyIoC SPRING - 오브젝트와 의존관계 (6) 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만 존재하는 것이고 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐 두 개의 각기 다른 오브젝트가 메모리상에 존재하는 것, 변수 명이 같다거나 등등 적절한 동등성 기준을 두고 판단 스프링 애플리케이션 컨텍스트와 순수 자바 코드로 만든 오브젝트 팩토리의 동일성을 판별해봅시다. 스프링 빈 애플리케이션 컨텍스트는 동일성을 충족했다는 것을 알 수 ... SpringIoCdidependencyIoC 제어의 역전/의존성 주입 - IoC/DI (1) - DI 본 상황에서는 여러 종류의 Internet Service Provider가 있고 Client는 Internet Service Provider를 변경할 수 있다고 가정한다. 다음과 같이 여러종류의 Internet Service에 연결할 수 있는 코드가 있다고 가정해보자. 바로 Client가 특정 InternetService에 과하게 의존하고 있다는 것이다. 위 코드에서는 Client가 특정 I... 의존성 주입제어의 역전스프링diIoCSpringIoC SPRING - 오브젝트와 의존관계 (4) 기능을 구현한 코드는 그런 변화에 영향을 받지 않고 유지할 수 있으므로 변경에는 닫혀 있다고 할 수 있습니다. 높은 응집도와 낮은 결합도 즉, 변경이 일어날 때 모듈의 많은 부분이 함께 바뀐다면 응집도가 높다고 말할 수 있습니다. 모듈의 일부분만 변경이 일어난다면, 어떤 부분이 변경 되었는지 파악하기 어렵고, 그 변경으로 인해 다른 부분에 영향을 끼칠 수 도 있습니다. 작업은 항상 전체적으로... IoCdiSpringdependencyIoC