[면접을 위한 CS 전공지식 노트] 1.1. 디자인 패턴
1. 디자인 패턴이란? 디자인 패턴에 대해 설명해 주세요 - 프로그램을 설계할 때 발생했던 문제점들을 쉽게 해결할 수 있도록 '규약' 형태로 만들어 놓은 것을 의미합니다. - 디자인 패턴에는 싱글톤 패턴, 팩토리 패턴, 전략 패턴, 옵저버 패턴, 프록시 패턴, MVC 패턴 등이 있습니다. 2. 싱글톤 패턴 싱글톤 패턴의 정의와 장단점에 대해 말해주세요 - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴입니다. - 하나의 인스턴스를 여러 모듈에서 공유하기에 인스턴스 생성 비용이 줄어드는 장점이 있습니다. - 그렇기에 의존성이 높아져서 모듈간 독립적으로 테스트를 해야 하는 단위 테스트를 수행하기 어렵다는 단점이 있습니다. - 이러한 높은 의존성을 의존성 주입(Dependency Injection)을 통해..