의존성 주입 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
29번째 줄: 29번째 줄:
*의존성은 테스트를 어렵게 한다.
*의존성은 테스트를 어렵게 한다.


==의존성 주입의 장점==
== 의존성 주입의 장점 ==
'''클라이언트 관점'''
'''클라이언트 관점'''
{| class="wikitable"
{| class="wikitable"
38번째 줄: 38번째 줄:
(Reduced Dependencies)
(Reduced Dependencies)
|
|
*컴포넌트의 종속성이 감소하면 변경에 민감하지 않게 됨
* 컴포넌트의 종속성이 감소하면 변경에 민감하지 않게 됨
|-
|-
|결합도 감소
|결합도 감소
(Reduced coupling)
(Reduced coupling)
|
|
*결합도를 낮추어 주면서 유연성과 확장성을 향상
* 결합도를 낮추어 주면서 유연성과 확장성을 향상
|-
|-
|재사용성 증가
|재사용성 증가
(More Reusable Code)
(More Reusable Code)
|
|
*인터페이스의 구현 변경 필요한 경우, 코드 변경 없이 해당 구현을 사용하도록 컴포넌트 구성 가능
* 인터페이스의 구현 변경 필요한 경우, 코드 변경 없이 해당 구현을 사용하도록 컴포넌트 구성 가능
|}
|}
'''코드 관점'''
'''코드 관점'''
58번째 줄: 58번째 줄:
(More Testable Code)
(More Testable Code)
|
|
*실제 구현의 테스트로 사용되는 Mock 객체 활용
* 실제 구현의 테스트로 사용되는 Mock 객체 활용


*의존성을 컴포넌트에 주입할 수 있는 경우 단위 테스트 편의성을 높여준다
* 의존성을 컴포넌트에 주입할 수 있는 경우 단위 테스트 편의성을 높여준다
|-
|-
|코드 가독성 향상
|코드 가독성 향상
(More Readable Code)
(More Readable Code)
|
|
*컴포넌트의 종속성을 보다 쉽게 파악할 수 있으므로 코드를 쉽게 읽을 수 있다.
* 컴포넌트의 종속성을 보다 쉽게 파악할 수 있으므로 코드를 쉽게 읽을 수 있다.
|-
|-
|코드 단순화  
|코드 단순화  
Simplify code)
Simplify code)
|
|
*의존 관계 제거와 사용 관점의 단순화로 프로그램 코드 전체의 단순화
* 의존 관계 제거와 사용 관점의 단순화로 프로그램 코드 전체의 단순화
|}
|}


81번째 줄: 81번째 줄:
(Constructor Injection)
(Constructor Injection)
|
|
*필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통한 의존성을 주입
* 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통한 의존성을 주입
|-
|-
|세터(Setter)를 통한 주입
|세터(Setter)를 통한 주입
(Method(Setter) Injection)
(Method(Setter) Injection)
|
|
*의존성을 입력받는 Setter 메소드를 만들고 이를 통한 의존성을 주입
* 의존성을 입력받는 Setter 메소드를 만들고 이를 통한 의존성을 주입
|-
|-
|인터페이스(Interface)를 통한 주입
|인터페이스(Interface)를 통한 주입
(Field Injection)
(Field Injection)
|
|
*의존성을 주입하는 함수를 포함한 인터페이스를 작성
* 의존성을 주입하는 함수를 포함한 인터페이스를 작성
*이 인터페이스를 구현하도록 함으로써 실행 시에 이를 통하여 의존성을 주입
* 이 인터페이스를 구현하도록 함으로써 실행 시에 이를 통하여 의존성을 주입
|}
|}
== 참고 문헌 ==
* 정보관리기술사 123회 하나둘셋 동기회 기출풀이집
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)