정보처리기사/내용

2023, 2024 정보처리기사 실기 핵심 요약 정리 - 디자인패턴&UML&다이어그램

내가 그린 코딩 그림 2023. 10. 6. 19:23
반응형

목차

- 디자인패턴

- UML

- 다이어그램

용어


1. 디자인패턴

 

생성 패턴

패턴 설명
추상 팩토리(Abstract Factory) - 구체적인 클래스에 의존하지 않고 서로 연관된 객체들의 조합을 만드는 인터페이스 제공
빌더(Builder) - 복합객체 생성과 표현을 분리
- 동일 생성 절차에서도 다른 표현 결과
팩토리 메서드(Factory Method) - 객체 생성을 서브클래스로 위임
프로토타입(Prototype) - 원본 객체를 복사함으로써 객체 생성
싱글톤(Singleton) - 인스턴스를 하나로만 규정하고 돌려쓰는 패턴

 

구조 패턴

패턴 설명
어댑터(Adapter) - 인터페이스를 변환해 다른 클래스가 이용할 수 있도록
브릿지(Bridge) - 구현부에서 추상층 분리
- 각자 독립적으로 확장할 수 있도록(다리처럼 이어주는게 아님)
컴포지트(Composite) - 객체들의 관계를 트리 구조로 구성
- 복합 객체와 단일 객체를 구분없이 다룸
데코레이터(Decorator) - 객체에 다른 객체를 덧붙이는 방식
퍼사드(Facade) - 서브시스템 인터페이스 집합에 대해 통합된 고수준 인터페이스 제공
플라이웨이트(Flyweight) - 작은 객체는 매번 생성하지 않고 되도록 공유할 있도록 해서 메모리 절약
프록시(Proxy) - 객체의 대리자 제공 "대리"라는 단어 나오면 무조건

 

행위 패턴

패턴 설명
옵저버(Observer) - 한 객체 상태가 변할 때 관련 객체들에게 자동으로 연락
방문자(Visitor) - 수행할 연산에 대해 분리하고 별도 클래스 지정
전략(Strategy) - 알고리즘을 정의하고 캡슐화하여 상호작용 가능하도록
상태(State) - 객체 상태에 따라 동일한 동작을 다르게 처리
반복자(Iterator) - 내부를 노출하지 않고 어떤 객체 원소를 순차적으로 접근할 수 있도록
템플릿메서드(Template Method) - 상위클래스는 알고리즘 골격만 규정 하위클래스가 구체적인 처리할 있도록
메멘토(Memento) - 객체를 특정 상태로 돌아갈 수 있도록 내부 상태 실체화
책임 연쇄(Caing of Responsbility) - 요청을 받는 객체를 묶어 객체 Chain을 따라 요청을 전달
커맨드(Command) - 요청을 객체 형태로 캡슐화해서 재사용이나 취소할 수 있도록
인터프리터(Interpreter) - 특정 언어 문법 표현을 정의
중재자(Mediator) - 한 집합에 속한 객체들의 상호작용을 캡슐화해서 새로운 객체 정의

 

2021년 2회

디자인 패턴 중 (  ) 패턴은 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로 클래스나 객체들이 상호작용하는 방법이다. 관련 패턴으로는 Interpreter, Observer, Command 등이 있다.

 

2020년 2회

한 객체 상태가 바뀌면 의존 객체에게 연락이 가는 디자인패턴은?"

 

2023년 1회

(  ) 은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체를 조합하는 패턴에 속하며, 대리라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해주고 외부에서는 객체 세부인 내용을 숨기는 역할을 한다.

 

2022년 3회

( A )은/는 기능을 처리하는 클래스와 구현을 담당하는 추상 클래스로 구분하며, 구현뿐 아니라 추상화도 독립적 변경이 필요할 때 ( A )패턴을 사용한다.

( B ) 은/는 한 객체 상태가 변경되면 객체에 상속되어 있는 다른 객체들에게도 변화된 상태를 전달해주는 패턴이다.


2. UML

UML의 구성요소

사물, 관계, 다이어그램

 

UML에서의 관계

1) 일반화 관계(Generalization)

- 한 클래스가 다른 클래스를 포함하는 상위 개념일 때 관계

- 상속관계라고도함

2) 연관 관계(Association)

- 2개 이상 사물이 서로 연관된 관계

3) 의존 관계(Dependency)

- 연관 관계와 비슷하나 매우 짧은 시간만 유지

4) 실체화 관계(Realization)

- 인터페이스를 구현받아 추상 메서드를 오버라이딩 하는 것을 의미

5) 집합 관계 - 집약 관계(Aggregation)

- has a 관계

- 전체 객체가 사라져도 부분 객체는 사라지지 않음

6) 집합관계 - 합성 관계(Composition)

- 긴밀한 필수적 관계


3. 다이어그램

구조 다이어그램

종류 설명
클래스 다이어그램 - 클래스의 속성과 클래스 사이의 관계를 표현
- 시스템 구조 파악 및 구조상 문제점 도출
객체 다이어그램 - 클래스에 속한 객체를 특정 시점의 객체와 객체 사이 관계로 표현
컴포넌트 다이어그램 - 컴포넌트 사이 관계나 인터페이스를 표현
배치 다이어그램 - 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표현
복합체 다이어그램 - 클래스나 컴포넌트가 복합구조를 가질 시 그 내부 구조 표현
패키지 다이어그램 - 유스케이스나 클래스 등 모델 요소들을 그룹화한 패키지들의 관계 표현

 

행위 다이어그램

종류 설명
유스케이스 다이어그램 - 사용자 요구를 분석해 기능 모델링 작업
- 외부에서 보는 시스템 동작, 객체들이 어떻게 상호작용하는지 모델링
- 구성요소: Actor, Use Case, System
시퀀스 다이어그램 - 특정 행동이 어떤 순서로 어떤 객체와 상호작용하는지 표현
- 현재 시스템이 어떤 시나리오로 움직이고 있는지 나타냄
커뮤니케이션 다이어그램 - 동작에 참여한 객체들이 주고받는 메시지와 객체 간 연관까지 표현
상태 다이어그램 - 객체가 자신이 속한 클래스의 상태 변화 및 다른 객체 간 상호작용에 따라 상태변화 표현
활동 다이어그램 - 어떤 기능을 수행하는지에 따라 처리 흐름을 순서에 따라 표현
상호작용 다이어그램 - 상호작용 다이어그램 간 제어 흐름 표현
타이밍 다이어그램 - 객체 상태 변화와 시간 제약을 명시적으로 표현

 

21년 3회

이 다이어그램은 문제 해결을 위한 도메인 구조를 나타내어 보이지 않는 도메인 안의 개념과 같은 추상적인 개념을 기술하기 위해 나타낸 것이다. 또한 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 사용할 수 있다. 이 다이어그램은 속성(attribute)과 메서드(method)를 포함한다.

 

22년 3회

구성 요소로는 사물, ( 1 ), 다이어그램으로 이루어져 있으며, 구조 다이어그램 중, ( 2 ) 다이어그램은 시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램이다. 또한 UML 모델링에서 ( 3 )은/는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트를 정의하는 모델 요소이다.

 

더보기

21년 3회 : 클래스 다이어그램

22년 3회 : 관계, 클래스, 인터페이스

반응형