<강한 결합>
- 강한 결합의 문제점
- Controller 5 개가 각각 Service1 을 생성하여 사용 중 (각각 객체를 생성하여 사용중)
- Repository1 생성자 변경에 의해..
- ⇒ 모든 Contoller 와 모든 Service 의 코드 변경이 필요
- 강한 결합 해결방법 = 느슨한 결합으로 만들어주기
- 각 객체에 대한 객체 생성은 딱 1번만!!
- 생성된 객체를 모든 곳에서 재사용!!!
<DI 의존성 주입의 이해>
=> 제어의 역전 (IoC : Inversion of Control) : 프로그램의 제어 흐름이 바뀜
- 일반적: 사용자가 자신이 필요한 객체를 생성해서 사용
- IoC (제어의 역전)
- 용도에 맞게 필요한 객체를 그냥 가져다 사용
- "DI (Dependency Injection)" 혹은 한국말로 "의존성 주입"이라고 부릅니다.
- 사용할 객체가 어떻게 만들어졌는지는 알 필요 없음
- 실생활 예제) 가위의 용도별 사용
- 용도에 맞게 필요한 객체를 그냥 가져다 사용
<스프링 IoC 컨테이너 사용하기>
DI를 하기 위해서는 객체생성이 우선!
어디서? -> 스프링 프레임워크가 필요한 객체를 생성하여 관리하는 역할을 대신해줌
- 빈 (Bean): 스프링이 관리하는 객체 (@Component)
- 스프링 IoC 컨테이너: '빈'을 모아둔 통 (@Autowired->생략가능함)
'🌿SPRING > 🍀공부 [SPRING]' 카테고리의 다른 글
[SPRING] Spring Security - 쿠키 vs 세션 vs JWT + Token (0) | 2022.08.23 |
---|---|
[SPRING] spring framwork의 이해 (0) | 2022.08.22 |
[SPRING] Controller, Service, Repository (0) | 2022.08.22 |
[SPRING] MVC 패턴 (0) | 2022.08.18 |
[SPRING] JPA / ORM (0) | 2022.08.18 |