← 목록으로

[정처기 실기] 4. SW 설계

정보처리기사 실기 — 4. SW 설계

출제 확률: ★(낮음) ~ ★★★★★(매우 높음)


0. SW 설계 과목 한눈에

항목내용
예상 문제 수1~3문제
★★★★★디자인 패턴
★★★응집도·결합도, UML 다이어그램, 클래스 다이어그램 관계
★★SOLID, 럼바우

1. 디자인 패턴 ★★★★★

행위 패턴 = 객체 간 상호작용을 패턴화한 것

1.1 패턴 분류 — 암기

분류암기포함 패턴
생성 패턴싱팩빌프앱Singleton, Factory Method, Builder, Prototype, Abstract Factory
구조 패턴어데퍼프 브플컴Adapter, Decorator, Facade, Proxy, Bridge, Flyweight, Composite
행위 패턴전옵 중방이상인 매커책템Strategy, Observer, Mediator, Visitor, Iterator, State, Interpreter, Memento, Command, Chain of responsibility, Template Method

1.2 생성 패턴 (Creational)

패턴핵심 키워드
싱글톤 (Singleton)객체 하나만 생성, 어디서든 참조
팩토리 메서드 (Factory Method)상위 = 인터페이스 정의 / 하위 = 실제 생성
빌더 (Builder)동일 생성 절차, 다른 표현 결과, 텔레스코핑 문제 해결
프로토타입 (Prototype)인스턴스 복제(복사), 필요한 부분만 수정
앱스트랙트 팩토리 (Abstract Factory)조합을 만드는 인터페이스(API) 제공, Kit

1.3 구조 패턴 (Structural)

패턴핵심 키워드
어댑터 (Adapter)서로 다른 인터페이스 연결
데코레이터 (Decorator)기존 코드 수정 없이 객체를 감싸서 기능 추가·확장
퍼사드 (Facade)단순한 인터페이스 제공, 결합도 낮춤
프록시 (Proxy)객체의 대리자가 대신 처리
브리지 (Bridge)기능 클래스–구현 클래스 연결, 추상 계층 분리
플라이웨이트 (Flyweight)메모리 절약, 클래스 경량화, 가상화
컴포지트 (Composite)트리 구조, 복합·단일 객체 동일하게 다룸

1.4 행위 패턴 (Behavioral)

패턴핵심 키워드
전략 (Strategy)알고리즘군 정의(캡슐화), 동적 교체
옵저버 (Observer)한 객체 변경 → 의존 객체에 연락·자동 갱신, 발행/수신
중재자 (Mediator)객체 간 통신 중앙 관리, 통신 빈도 낮음
방문자 (Visitor)메서드가 각 클래스를 돌아다님, 새 기능(연산) 추가 시
이터레이터 (Iterator)컬렉션 내 모든 요소 순차 탐색, Cursor
상태 (State)내부 상태 변경 시 객체 행동 방식 함께 변경
인터프리터 (Interpreter)특정 언어 문법 정의, 문장 해석
메멘토 (Memento)실행 취소, 객체 내부 상태 외부 노출 X
커맨드 (Command)실행 취소, 요청 자체를 객체로 캡슐화
책임 연쇄 (Chain of Responsibility)처리 가능 객체 연결, 요청이 순서대로 전달
템플릿 메서드 (Template Method)상위 = 추상 메서드(골격) / 하위 = 세부 처리 구체화

2. 응집도·결합도 ★★★

개념정의
응집도 (Cohesion)모듈 내부 요소들이 얼마나 밀접하게 관련되어 있는지
결합도 (Coupling)모듈과 모듈 상호 의존 정도

응집도는 높을수록 좋고, 결합도는 낮을수록 좋다.
표 순서: 강할수록 위쪽 (응집도·결합도 각각)

2.1 응집도 (강 → 약)

암기: 우논시절통순기 (거꾸로 읽으면 약→강)

응집도영어키워드
기능적Functional모든 기능 단일 목적 위해 수행
순차적Sequential이전 출력을 다음 입력으로 사용
통신적(교환적)Communicational동일한 입력·출력 사용
절차적Procedural입출력 연관 X, but 순서에 따라 수행
시간적Temporal특정 시간에 처리
논리적Logical논리적 유사하지만 실제로는 다른 기능
우연적Accidental모듈 내부 요소 연관 없음

2.2 결합도 (강 → 약)

암기: 내공외제스자 (거꾸로 읽으면 약→강)

결합도영어키워드
내용Content모듈 내부 변수
공통Common전역 변수 참조·갱신
외부External외부 데이터 사용
제어Control**제어 신호(요소)**로 통신
스탬프Stamp자료구조(배열, 객체, 구조 등) 전달
자료Data파라미터로 전달

3. SOLID ★★

소프트웨어 유지보수성·확장성을 높이기 위한 객체 지향 설계 원칙

약자영어한글키워드
SRPSingle Responsibility Principle단일 책임 원칙하나의 클래스 = 하나의 책임
OCPOpen-Closed Principle개방-폐쇄 원칙확장은 열려, 변경은 닫혀
LSPLiskov Substitution Principle리스코프 치환 원칙서브타입, 기반 타입 간 교체 가능
ISPInterface Segregation Principle인터페이스 분리 원칙사용하지 않는 메서드와 의존 관계 X
DIPDependency Inversion Principle의존성 역전 원칙고수준 모듈은 저수준 모듈에 의존 X

4. 럼바우 (OMT) ★★

객체 모델링 3가지 유형 — Object Modeling Technique

한글영어키워드
객체(정보) 모델링Object (Information) Modeling객체/ER 다이어그램, 객체 간 관계
동적 모델링Dynamic Modeling상태 다이어그램, 시간·제어 흐름
기능 모델링Functional Modeling자료 흐름도(DFD), 자료 흐름

5. UML 다이어그램 ★★★

5.1 분류 — 암기

구분암기다이어그램
정적클객컴배복패Class, Object, Component, Deployment, Composite, Package
동적유시커상활타Use case, Sequence, Communication, State, Activity, Timing

추가 암기: 베네딕트 컴배비치 + 시커스톤 (정적·동적 보조)

5.2 정적 다이어그램

다이어그램핵심 키워드
클래스 다이어그램속성·메서드 포함, 클래스 간 관계 표현
객체 다이어그램객체 모델링, 인스턴스
컴포넌트 다이어그램구현 단계 인터페이스/의존 관계
배치 다이어그램물리적 위치
복합체 다이어그램내부 구조
패키지 다이어그램폴더 모양, 유스케이스 요소 그룹화

5.3 동적 다이어그램

다이어그램핵심 키워드
유스케이스 다이어그램사용자 관점 표현
시퀀스 다이어그램객체 메시지 + 흐름
커뮤니케이션 다이어그램객체 메시지 연관 관계
상태 다이어그램럼바우 동적 모델링 + 상태 변화
활동 다이어그램어떤 기능 수행
타이밍 다이어그램시간 제약 명시적

6. 클래스 다이어그램 관계 ★★★

암기: 포집 연의 일실 (포함·집합·연관·의존·일반화·실체화)

6.1 강약 마름모 ◆ ◇

관계모양키워드
포함(복합) Composition강한 마름모 ◆ (속 찬)영구적
집합 Aggregation약한 마름모 ◇ (속 빈)포함되어 있는 관계

6.2 강약 화살표 → ⇢

관계모양키워드
연관 Association강한 화살표 → (실선)서로 관련(연결)
의존 Dependency약한 화살표 ⇢ (점선)짧은 시간 동안 연관 유지

6.3 강약 속 빈 화살표 ─▷

관계모양키워드
일반화 Generalization강한 속 빈 화살표 ─▷ (실선)일반적인지 구체적인지
실체화 Realization약한 속 빈 화살표 - -▷ (점선)기능으로 그룹화, 자식 클래스 추상 메서드

7. 시험 포인트 체크리스트

  • 생성 패턴 — 싱팩빌프앱 (Singleton, Factory, Builder, Prototype, Abstract Factory)
  • 구조 패턴 — 어데퍼프 브플컴
  • 행위 패턴 — 전옵 중방이상인 매커책템, 상호작용 패턴화
  • 싱글톤(하나) / 프록시(대리자) / 어댑터(인터페이스 연결) / 옵저버(발행·수신)
  • 응집도 — 우논시절통순기 (기능적이 가장 강함)
  • 결합도 — 내공외제스자 (내용이 가장 강함)
  • 응집도 ↑ 좋음 / 결합도 ↓ 좋음
  • SOLID — SRP(단일 책임), OCP(확장 O·변경 X), DIP(고수준→저수준 의존 X)
  • 럼바우 — 객체(ER), 동적(상태), 기능(DFD)
  • UML 정적 — 클객컴배복패 / 동적 — 유시커상활타
  • 상태 다이어그램 ↔ 럼바우 동적 모델링
  • 클래스 관계 — 포집 연의 일실
  • Composition(◆ 영구) vs Aggregation(◇ 포함) vs Dependency(점선·짧은 연관)