.NET

.NET 디자인 패턴

Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID

24 면접 질문·
Senior
1

Dependency Injection을 사용하는 최신 .NET에서 Singleton 패턴의 주요 문제점은 무엇인가요?

답변

전통적인 Singleton 패턴(정적 인스턴스)은 강한 결합을 만들고 테스트를 어렵게 만들기 때문에 dependency injection과 충돌합니다. 최신 .NET에서는 DI를 통한 'Singleton' 서비스 lifetime(services.AddSingleton)을 사용하는 것이 좋으며, 이는 단일 인스턴스 보장을 그대로 제공하면서 injection, mocking, 테스트 용이성을 가능하게 합니다. 정적 Singleton은 DI 컨테이너를 우회하고 숨겨진 의존성을 만듭니다.

2

Factory Method 패턴에서 .NET의 Factory Method와 Abstract Factory의 차이는 무엇인가요?

답변

Factory Method는 단일 타입의 객체(예: CreateLogger)를 생성하는 가상 메서드를 정의하여 서브클래스가 어떤 구체 클래스를 인스턴스화할지 결정하게 합니다. Abstract Factory는 관련된 객체 집합(예: CreateButton, CreateTextBox를 가진 IUIFactory)을 생성하는 interface를 정의하여 일관된 여러 제품을 함께 생성할 수 있게 합니다. Factory Method는 다형성을 통한 단일 제품에 초점을 두고, Abstract Factory는 동일 패밀리의 여러 제품을 관리합니다.

3

많은 선택적 매개변수를 가진 복잡한 객체를 생성할 때, .NET에서 Builder 패턴의 주요 장점은 무엇인가요?

답변

Builder 패턴은 객체를 단계별로 구축하는 fluent interface를 제공함으로써 telescoping 생성자(서로 다른 매개변수 조합을 가진 여러 오버로드)를 피합니다. 10개 이상의 매개변수를 가진 생성자와 달리, 선택적 매개변수가 있는 복잡한 객체를 읽기 쉽고 유지보수하기 좋은 방식으로 생성할 수 있습니다. 최신 C#에서는 init 프로퍼티와 record가 단순한 경우 Builder를 대체할 수 있지만, 복잡한 검증이나 다단계 구축에는 Builder가 여전히 유용합니다.

4

SOLID에서 Single Responsibility Principle(SRP)이란 무엇이며 .NET에서 어떻게 적용하나요?

5

SOLID의 Open/Closed 원칙(OCP)이란 무엇이며 .NET에서 interface로 어떻게 구현하나요?

+21 면접 질문

다음 면접을 위해 .NET을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기