의존성 주입 (Dependency Injection - DI):
- 개념: 의존성 주입은 클래스나 모듈 사이의 의존성을 외부에서 주입하는 디자인 패턴입니다. 일반적으로 클래스 내부에서 직접 의존 객체를 생성하는 것이 아니라, 외부에서 의존 객체를 주입받아 사용하는 방식을 의미합니다.
- 목적: 의존성 주입은 코드의 유연성과 테스트 용이성을 향상시킵니다. 의존성을 외부에서 주입받기 때문에, 코드 변경 없이 다양한 의존 객체를 쉽게 교체할 수 있습니다.
제어의 역전 (Inversion of Control - IoC):
- 개념: IoC는 프로그램의 흐름 제어가 개발자가 아닌 외부 컨테이너에게 넘어가는 디자인 원칙입니다. 일반적으로는 의존성 주입을 통해 객체 간의 의존성을 해결하며, 이를 통해 IoC를 구현합니다.
- 목적: IoC는 코드의 결합도를 낮추고 재사용성을 증가시킵니다. 외부 컨테이너가 제어를 가져가기 때문에, 애플리케이션의 흐름이 개발자가 아닌 컨테이너에게 의해 결정되므로, 코드의 유연성이 증가하고 변경에 더 적응할 수 있습니다.
의존성 주입과 제어의 역전은 서로 긴밀하게 연결되어 있으며, 주로 프레임워크와 컨테이너를 통해 구현되어 사용됩니다. Spring 프레임워크는 DI와 IoC를 지원하는 대표적인 예입니다.
의존성 주입(Dependency Injection - DI)과 제어의 역전(Inversion of Control - IoC)은 소프트웨어 디자인 원칙 중 하나로, 코드의 유연성과 테스트 용이성을 향상시키며 결합도를 낮추어 재사용성을 증가시키는데 목적이 있습니다.
의존성 주입 (DI):
개념: 의존성 주입은 클래스나 모듈 사이의 의존성을 외부에서 주입하는 디자인 패턴입니다. 일반적으로는 클래스 내부에서 의존 객체를 생성하는 것이 아니라, 외부에서 의존 객체를 주입받아 사용하는 방식을 채택합니다.
목적:
- 코드의 유연성 향상: 외부에서 의존 객체를 주입받기 때문에, 코드 변경 없이 다양한 의존 객체를 교체할 수 있습니다.
- 테스트 용이성: 의존 객체를 주입받아 사용하므로, 테스트 시 모의 객체(Mock) 등을 주입하여 테스트가 용이합니다.
제어의 역전 (IoC):
개념: 제어의 역전은 프로그램의 흐름 제어가 개발자가 아닌 외부 컨테이너에게 넘어가는 디자인 원칙입니다. 주로 의존성 주입을 통해 객체 간의 의존성을 해결하며, 외부 컨테이너가 객체의 생성과 생명주기를 관리합니다.
목적:
- 코드의 결합도 낮춤: 객체 간의 결합도를 낮추어 유연한 코드를 작성할 수 있습니다.
- 재사용성 증가: 외부 컨테이너가 객체의 생성과 관리를 담당하므로, 재사용성이 향상됩니다.
'면접준비' 카테고리의 다른 글
OSI 7계층에 대해 아는대로 설명해주세요. (0) | 2024.01.19 |
---|---|
객체지향 프로그래밍이란 무엇이고 어떻게 활용할 수 있나요? (0) | 2024.01.18 |
http, https 차이점에 대해 설명해주세요 - (0) | 2024.01.17 |
브라우저의 작동방식에 대해서 설명해주세요. (0) | 2024.01.17 |
HTTP 메서드에 대해 설명해주세요. (0) | 2024.01.16 |