Language/C#3 C# DI 컨테이너 services와 provider 완전 정리 C# 프로젝트에서 DI(Dependency Injection)를 구성할 때 가장 핵심이 되는 두 가지 요소가 있습니다.바로 services와 provider입니다.이 글에서는 services와 provider가 각각 어떤 역할을 하는지, 그리고 실제 사용 방법을 체계적으로 정리합니다.1. services란 무엇인가?1.1 IServiceCollection 타입var services = new ServiceCollection();services는 IServiceCollection 타입입니다.어떤 인터페이스에 어떤 구현체를 연결할지를 등록하는 DI 컨테이너 구성용 객체입니다.단순한 객체 리스트가 아니라, 의존성 주입 규칙을 등록하는 역할을 합니다.2. services를 사용하는 이유DI를 제대로 활용하려면,.. 2025. 4. 28. C# DI(Dependency Injection)와 DI 컨테이너 정리 클래스 간의 의존성을 효과적으로 관리하기 위해, C#에서는 의존성 주입(Dependency Injection) 패턴과 DI 컨테이너를 널리 사용합니다.이 글에서는 DI의 개념부터 DI 컨테이너의 사용법까지 체계적으로 정리해봅니다.1. DI(Dependency Injection)란 무엇인가?1.1 DI를 쉽게 설명하면"내가 직접 필요한 객체를 만들지 않고, 외부에서 만들어서 주입해주는 것"을 의미합니다.1.2 일반 방식 (직접 생성)public class MyController{ private readonly Logger _logger; public MyController() { _logger = new Logger(); // 직접 생성 } public void Do.. 2025. 4. 27. C#에서 로깅 서비스를 모듈화하는 방법 클래스 기반 프로그램 구조에서는 로깅(logging) 기능을 별도의 서비스로 분리하는 것이유지보수, 테스트, 확장성 모두에 큰 장점을 가져옵니다.이 글에서는 C#에서 로깅을 모듈화하는 방법을 순서대로 소개합니다.1. ILogger 인터페이스 정의가장 먼저, 로깅 기능의 일관성을 위해 인터페이스를 정의합니다.public interface ILogger{ void Log(string message);}ILogger는 "로그를 남긴다"는 하나의 역할만 담당합니다.이 인터페이스를 기반으로 다양한 로거 클래스를 만들어 사용할 수 있습니다.2. 로거 구현체 만들기인터페이스를 구현한 실제 클래스를 만들어야 합니다.2.1 UI에 출력하는 로거Windows Forms의 ListBox에 로그를 출력하는 예시입니다.멀.. 2025. 4. 27. 이전 1 다음