CS 기초 · 기초
빌더(Builder) 패턴은 복잡한 객체를 생성할 때 어떤 이점을 제공하며, 일반적인 생성자(Constructor) 방식과 비교했을 때의 차이점은 무엇인가요?
힌트 · 빌더 패턴은 복잡한 객체의 생성 과정을 여러 단계로 나누어 가독성을 높이고, 필수 인자와 선택 인자의 조합이 많을 때 유용합니다. 생성자 오버로딩의 단점을 보완합니다.
불변객체가변성단계별_생성유연성가독성
모범답안
빌더 패턴은 복잡한 객체를 생성할 때 유용합니다. 특히 필수 인자와 선택적 인자가 많아 생성자 오버로딩이 복잡해지는 경우에 효과적입니다.
일반적인 생성자 방식은 객체 생성 시 모든 인자를 한 번에 전달해야 하지만, 빌더 패턴은 단계별로 필요한 인자만 설정하고 최종적으로 객체를 생성할 수 있습니다. 이를 통해 코드 가독성을 높이고, 객체의 불변성을 유지하기 용이합니다.
예를 들어, 자동차 객체를 생성할 때 엔진, 타이어, 색상 등 다양한 옵션을 빌더를 통해 설정하고, 필요한 옵션만 선택적으로 설정하여 자동차 객체를 만들 수 있습니다. 이렇게 하면 생성자 오버로딩으로 인한 복잡성을 줄이고 유연하게 객체를 생성할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 디자인 패턴 면접 질문
- 싱글톤(Singleton) 패턴은 어떤 상황에서 사용하기 적합하며, 이 패턴을 구현할 때 주의해야 할 점은 무엇인가요?
- 팩토리 메서드(Factory Method) 패턴은 언제 사용하며, 이 패턴을 적용했을 때 얻을 수 있는 장점은 무엇인가요?
- 추상 팩토리(Abstract Factory) 패턴은 팩토리 메서드 패턴과 어떻게 다르며, 어떤 종류의 문제를 해결하는 데 효과적인가요?
- 스트래티지(Strategy) 패턴은 다양한 알고리즘을 유연하게 교체해야 할 때 어떻게 활용될 수 있는지 설명해주세요.
- 옵저버(Observer) 패턴은 객체 간의 일대다 의존성을 어떻게 관리하며, 주로 어떤 시스템에서 효과적으로 사용될 수 있나요?
- 실무에서 Singleton 패턴을 사용할 때 발생할 수 있는 문제점(예: 테스트 용이성, 멀티스레딩 환경)과 이를 해결하기 위한 방법에 대해 설명해 주세요.