Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- docker container
- Asp Net Core
- Git
- 리덕스
- 도커 레이어
- 리액트 타입스크립트 적용하기
- react
- ASP Core
- docker layer
- 리액트 리덕스
- 도커 이미지
- 도커
- asp core 권한
- 리액트
- react typescript
- react ts
- React Redux
- asp.net core mvc
- asp core mvc
- C#
- javascript
- asp.net core
- Docker image
- vscode extension
- Docker
- c# delegate
- js
- 도커 컨테이너
- redux
- 리액트 타입스크립트
Archives
- Today
- Total
기초 메모지
ASP.Net Core - 종속성 주입(DI : Dependency Injection) 본문
Frameworks, Platforms/ASP.Net Core
ASP.Net Core - 종속성 주입(DI : Dependency Injection)
라큐브 2022. 9. 19. 11:58종속성?
종속성이란 특정 타입에 의존한다는 뜻입니다.
즉, 특정 타입(클래스)이외에는 형변환을 할 수 없어 명시적으로 타입(클래스)을 지정해야한다는 뜻입니다.
종속성이 문제가 되는 이유
1. 재사용이 불가능해 동일한 코드를 타입 별로 만들어야합니다.
2. 코드가 많아지면서 유지보수가 어려워집니다.
종속성 주입을 통해 느슨한 코드를 만들자!
종속성 문제를 해결하기 위한 대안으로 종속성 주입(Dependency Injection)이 도입되었습니다.
종속성 주입은 상위 타입인 인터페이스로 하위 타입인 클래스를 생성하는 캡슐화를 이용합니다.
이 작업을 ASP.NET Core 프레임워크가 자동으로 넣어주는 게 종속성 주입입니다.
어떻게 구성하지?
1. 상위 타입이 될 인터페이스를 생성합니다.
public interface ICar
{
public List<string> CarModels();
}
2. 하위 타입이 될 클래스를 생성합니다.
public class KiaMotors : ICar
{
public List<string> CarModels()
{
return new List<string>()
{
"K3",
"K5",
"K9"
}
}
}
3. Program.cs에서 종속성 주입 설정을합니다.
builder.Services.AddTransient<ICar, KiaMotors>();
4. 타입을 주입할 클래스에서 인터페이스 타입을 매개 변수로 받는 생성자를 생성합니다.
public class KiaCar
{
private readonly ICar _Car;
// ASP.NET Core에서 KiaMotors 클래스 타입으로 넣어(종속성 주입)줍니다.
public KiaCar(ICar Car)
{
Car = _Car;
}
public List<string> CarModels()
{
// 인터페이스 타입으로 KiaMotors 클래스를 재사용합니다.
return _Car.GetModels();
}
}
반응형
'Frameworks, Platforms > ASP.Net Core' 카테고리의 다른 글
ASP.Net Core - 도커 이미지(Docker Image) 생성 (0) | 2023.02.14 |
---|---|
ASP.Net Core - 엔티티 프레임워크(EntityFramework) (0) | 2022.09.30 |
ASP.Net Core - 미들웨어(Middleware) (0) | 2022.09.19 |
ASP.Net Core - 기본 페이지 및 뷰 설정(Default Page Setting) (0) | 2022.07.07 |
ASP.Net Core - 배포(Deploy) (0) | 2022.04.25 |
Comments