[C#] Singleton, Scoped, Transient 차이점 – DI Container 생명주기 완전 정리
·
프로그래밍/C#
[C#] Singleton, Scoped, Transient 차이점 – DI Container 생명주기 완전 정리C#에서 의존성 주입(Dependency Injection)을 사용할 때, DI Container에 등록할 수 있는 Singleton, Scoped, Transient는 각기 다른 생명주기를 가지고 있습니다.실무에서 자주 쓰이는 이 3가지 생명주기의 차이점과 사용 시 주의할 점, 그리고 예제를 통한 설명을 함께 정리해보겠습니다.🔁 1. Singleton – 앱 전체에서 단 하나Singleton으로 등록된 서비스는 애플리케이션 실행 동안 딱 1개 인스턴스만 생성되어, 모든 곳에서 공유됩니다.// 등록 방법services.AddSingleton(); 처음 요청 시 1회 생성 → 이후 모든 ..
[C#] Singleton 패턴 잘못 쓰면 발생하는 문제 – 메모리 누수 & DI 문제
·
프로그래밍/C#
[C#] Singleton 패턴 잘못 쓰면 발생하는 문제 – 메모리 누수 & DI 문제C#에서 Singleton 패턴은 전역 인스턴스를 하나만 유지한다는 점에서 자주 사용됩니다. 하지만 잘못된 싱글톤 사용은 메모리 누수, 테스트 어려움, 의존성 주입(DI) 충돌 등의 문제를 발생시킬 수 있습니다.이 글에서는 Singleton 패턴의 기본 구조와 함께 실무에서 문제가 되는 사용 예, 그리고 올바른 구현 방법을 소개하겠습니다.✅ Singleton 패턴 기본 구조// 기본 싱글톤 구현 (Lazy + Thread-safe)public sealed class MyService{ private static readonly Lazy instance = new Lazy(() => new MyServ..