디자인 패턴 개요
20 Questions
3 Views

디자인 패턴 개요

Created by
@AffableDravite8704

Questions and Answers

디자인 패턴을 배우는 주된 이유는 무엇인가?

  • 더 나은 마케팅 전략을 위해
  • 문제 해결을 위한 영감을 얻고 의사소통을 효율적으로 하려는 것 (correct)
  • 프로젝트 관리 기술을 향상시키기 위해
  • 비용을 절감하기 위해
  • 구조 패턴은 객체나 클래스의 알고리즘과 책임 할당에 관한 디자인 패턴이다.

    False

    디자인 패턴은 몇 가지 큰 종류로 나눌 수 있는가?

    3가지

    싱글톤 패턴은 하나의 클래스에 _____ 인스턴스만 가지는 패턴이다.

    <p>하나의</p> Signup and view all the answers

    다음 디자인 패턴과 그 설명을 매칭하시오:

    <p>싱글톤 패턴 = 하나의 인스턴스만을 공유 팩토리 패턴 = 객체 생성의 조건을 분리 옵저버 패턴 = 상태 변화를 구독자에게 통지 데코레이터 패턴 = 기존 객체에 기능 추가</p> Signup and view all the answers

    다음 중 생성 패턴에 포함되지 않는 것은?

    <p>스트래티지 패턴</p> Signup and view all the answers

    프레임워크는 일반적으로 라이브러리에 비해 규칙이 더 엄격하다.

    <p>True</p> Signup and view all the answers

    TDD에서 싱글톤 패턴의 주된 문제점은 무엇인가?

    <p>의존성이 높아지고 인스턴스 독립성이 결여된다.</p> Signup and view all the answers

    정적 멤버는 _____ 때 모든 클래스를 로드하여 싱글톤 인스턴스를 생성한다.

    <p>최초의 JVM이 클래스 로딩</p> Signup and view all the answers

    다음 중 행동 패턴에 포함되지 않는 것은?

    <p>프록시 패턴</p> Signup and view all the answers

    싱글톤 패턴의 구현 방식 중 하나로, 인스턴스가 없을 때만 잠금을 거는 방식을 무엇이라고 하는가?

    <p>이중 확인 잠금</p> Signup and view all the answers

    Enum을 사용한 싱글톤 패턴은 스레드 세이프를 보장하지 않는다.

    <p>False</p> Signup and view all the answers

    팩토리 패턴의 주된 장점은 무엇인가?

    <p>유연성을 높이고 유지보수성을 증가시킨다.</p> Signup and view all the answers

    의존성 주입은 메인 모듈이 직접 하위 모듈에 대한 __을 주기보다는 중간에 의존성 주입자가 이 부분을 가로채는 방식이다.

    <p>의존성</p> Signup and view all the answers

    다음 디자인 패턴과 그 의미를 매칭하시오:

    <p>싱글톤 = 단 하나의 인스턴스를 보장 옵저버 = 상태 변화 알림 전략 = 행동 알고리즘 교체 팩토리 = 객체 생성의 방식 결정</p> Signup and view all the answers

    다음 중 이터레이터 패턴의 장점이 아닌 것은?

    <p>성능 저하</p> Signup and view all the answers

    DI와 DIP는 동일한 개념으로 간주될 수 있다.

    <p>False</p> Signup and view all the answers

    전략 패턴의 목적은 무엇인가?

    <p>상호 교체 가능한 알고리즘을 제공하는 것.</p> Signup and view all the answers

    ___ 패턴은 객체 접근 흐름을 가로채는 역할을 한다.

    <p>프록시</p> Signup and view all the answers

    다음 중 의존성 주입의 단점으로 옳은 것은?

    <p>모듈 복잡도 증가</p> 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.

    Quiz Team

    Description

    디자인 패턴의 중요성과 종류에 대해 알아보세요. 이 퀴즈는 생성패턴, 구조패턴, 행동패턴 등 디자인 패턴의 다양한 유형을 탐구하는 데 도움을 줄 것입니다.

    More Quizzes Like This

    Design Patterns: Abstract Factory
    40 questions
    Design Patterns
    22 questions

    Design Patterns

    AdorableSpessartine avatar
    AdorableSpessartine
    Use Quizgecko on...
    Browser
    Browser