Questions and Answers
디자인 패턴을 배우는 주된 이유는 무엇인가?
구조 패턴은 객체나 클래스의 알고리즘과 책임 할당에 관한 디자인 패턴이다.
False
디자인 패턴은 몇 가지 큰 종류로 나눌 수 있는가?
3가지
싱글톤 패턴은 하나의 클래스에 _____ 인스턴스만 가지는 패턴이다.
Signup and view all the answers
다음 디자인 패턴과 그 설명을 매칭하시오:
Signup and view all the answers
다음 중 생성 패턴에 포함되지 않는 것은?
Signup and view all the answers
프레임워크는 일반적으로 라이브러리에 비해 규칙이 더 엄격하다.
Signup and view all the answers
TDD에서 싱글톤 패턴의 주된 문제점은 무엇인가?
Signup and view all the answers
정적 멤버는 _____ 때 모든 클래스를 로드하여 싱글톤 인스턴스를 생성한다.
Signup and view all the answers
다음 중 행동 패턴에 포함되지 않는 것은?
Signup and view all the answers
싱글톤 패턴의 구현 방식 중 하나로, 인스턴스가 없을 때만 잠금을 거는 방식을 무엇이라고 하는가?
Signup and view all the answers
Enum을 사용한 싱글톤 패턴은 스레드 세이프를 보장하지 않는다.
Signup and view all the answers
팩토리 패턴의 주된 장점은 무엇인가?
Signup and view all the answers
의존성 주입은 메인 모듈이 직접 하위 모듈에 대한 __을 주기보다는 중간에 의존성 주입자가 이 부분을 가로채는 방식이다.
Signup and view all the answers
다음 디자인 패턴과 그 의미를 매칭하시오:
Signup and view all the answers
다음 중 이터레이터 패턴의 장점이 아닌 것은?
Signup and view all the answers
DI와 DIP는 동일한 개념으로 간주될 수 있다.
Signup and view all the answers
전략 패턴의 목적은 무엇인가?
Signup and view all the answers
___ 패턴은 객체 접근 흐름을 가로채는 역할을 한다.
Signup and view all the answers
다음 중 의존성 주입의 단점으로 옳은 것은?
Signup and view all the answers
Study Notes
디자인 패턴
- 문제 해결 시 영감을 제공하고 팀원 간의 의사소통을 효율적으로 만든다.
디자인 패턴의 종류
- 생성패턴: 객체 생성에 관한 패턴. (싱글톤, 팩토리, 추상팩토리, 빌더, 프로토타입 등)
- 구조패턴: 객체 및 클래스 구조를 유연하고 효율적으로 만드는 방법. (프록시, 어댑터, 브리지, 복합체, 데코레이터, 퍼사드, 플라이웨이트 등)
- 행동패턴: 객체나 클래스 간의 알고리즘과 책임 할당에 관한 패턴. (이터레이터, 옵저버, 전략, 책임연쇄, 커맨드, 중재자, 메멘토, 상태, 템플릿 메서드, 비지터 등)
라이브러리 vs 프레임워크
- 라이브러리: 특정 기능을 모듈화, 규칙이 없음, 사용법에 대한 규칙 존재, 커스텀이 가능.
- 프레임워크: 특정 기능을 모듈화, 규칙이 존재, 라이브러리에 비해 엄격함.
싱글톤 패턴
- 하나의 클래스에 오직 하나의 인스턴스를 가지는 패턴.
- 장점: 비용 절감, I/O 바운드 작업에 많이 사용.
- 단점: 의존성 증가, TDD(단위 테스트)에서 독립적인 인스턴스 생성 어려움.
싱글톤 패턴 구현 방법
- 메소드 방식: 인스턴스가 없으면 생성하고, 있으면 반환.
- synchronized: 첫 접근 스레드에 잠금을 걸어 다른 스레드 접근 차단, 성능 저하.
- 정적 멤버/블록: 최초 JVM에서 클래스 로딩 시 인스턴스 생성, 불필요한 자원 낭비 발생.
- Lazy Holder(중첩 클래스): 내부 클래스에서 인스턴스 생성.
- 이중 확인 잠금(DCL): 잠금을 소유하며 인스턴스가 없을 때만 생성.
- enum: 스레드 안전성을 보장하며 인스턴스 생성.
팩토리 패턴
- 상위 클래스가 객체 생성의 뼈대를 결정하고 하위 클래스에서 구체적 내용을 결정.
- 유연성 증가 및 유지보수성 강화.
이터레이터 패턴
- 이터레이터를 사용하여 컨테이너의 요소에 접근.
- 다양한 자료구조를 동일한 인터페이스로 순회 가능.
DI와 DIP
- 의존성 주입: 주 모듈이 하위 모듈에 대한 의존성을 간접적으로 주입.
- 의존관계 역전 원칙(DIP): 의존성 주입 시 적용.
- 단점: 모듈 복잡도 증가, 에러 사전 탐지가 어려움.
전략 패턴
- 캡슐화한 알고리즘을 컨텍스트 안에서 상호 교체 가능하게 만드는 디자인 패턴.
옵저버 패턴
- 주체가 객체 상태 변화를 관찰하고 변화를 옵저버에게 통지하는 패턴.
프록시 패턴
- 대상 객체 접근을 가로채 필터링하거나 수정하는 역할을 하는 디자인 패턴.
Flux 패턴
- 단방향 데이터 흐름 관리 디자인 패턴.
전략 패턴과 의존성 주입의 차이
- 전략 패턴: 행동 계약을 기반으로 다양한 구현의 명시된 인터페이스 생성.
- 의존성 주입: 일부 동작을 구현하고 의존성을 주입하는 패턴.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
디자인 패턴의 중요성과 종류에 대해 알아보세요. 이 퀴즈는 생성패턴, 구조패턴, 행동패턴 등 디자인 패턴의 다양한 유형을 탐구하는 데 도움을 줄 것입니다.