생각정리/항해99
[Weekly I Learned]9월 1주차
생각중임
2023. 9. 4. 13:20
DI (Dependency Injection : 의존성 주입)
외부에서 의존성을 주입하여 객체간의 결합을 느슨하게 만들어 사용하는 스프링의 핵심 개념으로 구현 방식, 기술이라고 할 수 있다. (객체를 사용하기 위해서 객체를 받아서 사용하는 것)
클라이언트가 어떤 서비스를 사용할 것인지 직접 정해서 사용하는 것이 아니라 클라이언트에게 해당 서비스를 주고 사용할 수 있도록 해주는 것이다.
DI 장점
- 의존성으로 부터 격리시켜 코드 테스트에 용이하다.
- DI를 통하여, 불가능한 상황을 Mock와 같은 기술을 이용하여, 안정적으로 테스트 가능하다.
- 코드를 확장하거나 변경 할 때 영향을 최소화 한다. (추상화)
- 순환참조를 막을 수 있다.
IoC (Inversion of Control : 제어의 역전)
객체를 직접 생성해서 개발자가 관리하는 것이 아니라 Spring Container에서 관리하는 것
개발자에서 프레임워크로 제어의 객체 관리의 권한이 넘어가 이를 제어의 역전이라고 한다.
Bean
스프링 컨테이너에서 관리되고 있는 클래스나 객체들을 Bean이라 부른다.
이제 기본 강의는 다 보고 과제를 진행하면서 부족한 부분들을 다시 보면서 진행을 하고 따로 개념적인 부분들과 영속성과 시큐리티쪽은 부족하다고 생각해 다른 추가 강의를 보면서 추가적으로 이해를 할 수 있도록 해야겠다.