Di 2

Angular 를 통해 바라본 의존성 주입 이해

서비스란, 애플리케이션 전역의 관심사를 구현. 의존성 주입 (Dependency Injection) 의존성의 인스턴스를 생성하는 코드와 사용하는 코드가 컴포넌트 내 같이 존재한다면 컴포넌트와 의존성이 긴밀한 결합(Tight Coupling)을 하고 있다고 할 수 있다. 긴밀한 결합을 느슨한 결합(Loose Coupling)으로 의존 관계를 갖게하려면 의존성 인스턴스를 사용하는 코드는 인스턴스 생성에 관여하지 않고 단지 필요한 인스턴스를 요구하기만 하고 외부 환경에서 요구된 인스턴스를 생성하여 전달하면 된다. 그렇게 한다면 의존성 인스턴스를 사용하는 코드는 인스턴스를 생성하는 방법을 알 필요가 없어지고, 의존성이 변경된다 하더라도 인스턴스를 전달하는 외부 환경이 변경된 의존성의 인스턴스를 전달하기만 한다면..

의존성 주입이란 무엇인가?

의존성 주입에 대해 리서칭하는 중 답변이 이해하기 좋아 댓글로 오고 간 내용을 정리해보았다. 참고: 의존성 주입이 뭔가요? 의존성 주입이란, '필요한게 있을 때 무엇이 필요하다고 선언하면 알아서 제공해줘' 즉, 관심의 분리(seperation of concern)을 의미한다. 일반적으로 class의 instance를 다음과 같이 생성하여 사용한다. MyClass myClass = new MyClass(); instance 생성 비용이 크다거나, 여러 군데서 사용한다거나, 일일히 생성할 필요가 있는지 등에 대한 이유로 instance의 생성을 컨테이너에 맡겨서 일괄적으로 진행하고, life-cycle 관리 역시 컨테이너에 맡겨버리게 된다. instance의 생성 및 관리 주체가 내가 아니라 컨테이너가 되기..