< IoC >
- 인터페이스를 사용하는 입장에서는 어떤 것을 쓸지 제어 할 수 없다
=> 외부에서 관리함
예: AppConfig vs. OrderServiceImpl
< 깨달음 >
- 라이브러리와 프레임워크 차이
=> 라이브러리: 내가 만든 체계에서 직접 호출한다
=> 프레임워크: 내가 만든 것을 알아서 호출한다
< DI >
- 정적인 클래스 의존 관계
=> import만 보고 쉽게 파악 가능
=> 세부 기능이 바뀌어도 바뀌면 안된다
- 동적인 객체 의존 관계
=> 실제 실행 봐야 알 수 있음
=> 세부 기능에 따라 바뀜
- DI:
-- 인스턴스 생성한다
-- 참조하는 값에 넣어준다
< 깨달음 >
- 의존 관계는 두가지 이다
=> 정적: 클래스 의존 관계
=> 동적: 객체 의존 관계
- 툴로 분석 가능
=> Intellij: diagram - show diagram
- 설계 할 때는
-- 인터페이스 설계 그리고
-- 객체 설계 까지 두루 한다
< IoC, DI 컨테이너 >
- 뜻: 객체를 생성하고 연결해주는 역할을 하는 아이
- 예: AppConfig, 스프링, Assembler, Object factory
< 깨달음 >
- 잘 만든 코드는 코드 블럭을 가지고 조립하는 것이다