개발 언어 & 프레임워크/C# 프로그래밍 마스터하기

인터페이스와 의존성 주입(DI) 구조 설계

프로잉2 2025. 5. 29. 20:18
728x90

📘 개념 요약

인터페이스와 의존성 주입(DI)은 객체 지향 설계의 핵심으로, 결합도를 낮추고, 확장 가능하고 테스트 가능한 구조를 만드는 데 필수입니다.


🧠 용어 설명

용어 설명
Interface 동작만 정의, 구현은 별도 클래스
DI (Dependency Injection) 외부에서 필요한 객체를 주입
Loose Coupling 모듈 간 결합도 최소화
IoC Container DI 자동 관리 도구 (ASP.NET Core 기본 제공)
 

💻 코드 예제

 
public interface ILogger
{
    void Log(string message);
}

public class ConsoleLogger : ILogger
{
    public void Log(string message)
    {
        Console.WriteLine($"[로그]: {message}");
    }
}

public class App
{
    private readonly ILogger _logger;
    public App(ILogger logger)
    {
        _logger = logger;
    }

    public void Run()
    {
        _logger.Log("프로그램 시작됨.");
    }
}

🔧 사용법 정리

  • 테스트 시 FakeLogger 등으로 쉽게 교체 가능
  • ASP.NET Core에서는 생성자 기반 DI 기본 제공
  • 유지보수성과 모듈화 향상

🏷 추천 태그

C#, DI, 의존성 주입, 인터페이스, 객체지향 설계, 테스트 가능 코드, SOLID, IoC, 유지보수

728x90