일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로젝트
- 티스토리
- spring
- 운영체제
- MongoDB
- 유사코드
- resilience4j
- 문법 정리
- 리눅스
- hyperledger
- smart cast
- 오라클
- oracle
- gradle
- dynamic query
- 자바
- 자바 프로젝트
- auto configure
- K6
- JVM
- 초대장
- SQL
- c#
- 파이썬
- 백준 알고리즘
- 알고리즘
- 파이썬 소스
- 오라클 디비
- 학점
- jsp
Archives
- Today
- Total
모종닷컴
DI(Dependency Injection)을 사용하는 이유? 본문
반응형
1. 의존 객체를 직접 생성하는 방식
아래와 같은 객체를 생성해야 한다는 가정을 들어보자.
new A( new B);
이렇게 의존 객체를 직접 생성하는 방식을 사용하게 되었을 때 내용은 아래 사진과 같이 되게 된다.
이렇게 구성되어 있을 때 만약 A가 생성할 때 B가 아닌 C를 참조해야 한다고 할 때, 다음과 같이 작성했던 모든 클래스들에 대해서 코드를 고쳐야 하는 상황이 온다.
2. 의존 객체를 외부에서 조립하여 내리는 방식
의존 객체를 직접 생성하는 방식과 달리 Dependency Injection는 의존 객체를 외부로부터 전달받는 구현 방식이다.
이 경우 A가 B가 아닌 C를 참조하게 되었을 때는 이를 정의하고 있는 파일만 고쳐주게 되면 된다는 것이다.
지금 설명할 때에는 3개의 클래스만 영향을 받기 때문에 직접 구현하는 것도 나쁘지 않다 생각할 수 있지만, 이를 몇 십개 이상의 파일을 직접 찾아 고친다고 생각하고 다시 한번 생각해보자.
반응형
'Programming > Spring' 카테고리의 다른 글
Spring Security 필터에 걸러지기 전의 요청 정보들 (0) | 2019.02.28 |
---|---|
Spring Framework 개념2 (0) | 2018.11.08 |
ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: (0) | 2018.11.06 |
Spring Framework 개념1 (0) | 2018.11.05 |
[Spring Security] CSRF 설정 (0) | 2018.10.17 |