본문 바로가기
CERT/정보처리기사

[정보처리기사] 소프트웨어 설계부 오답 개념 정리 -3

by DahnDellDev 2025. 7. 26.

 

🌐 소프트웨어 설계에서 사용되는 대표 추상화 기법 총정리

소프트웨어 설계는 복잡한 현실 세계를 단순화하고 체계적으로 분석하기 위한 과정입니다. 이때 중요한 것이 바로 **추상화(Abstraction)**입니다. 추상화는 본질적인 요소만 남기고 불필요한 세부사항을 제거하여 설계의 효율성과 재사용성을 높여줍니다.


📌 대표적인 추상화 기법

구분 설명

제어 추상화 제어의 상세한 메커니즘은 감추고 원하는 효과만 기술. 예: 반복문, 조건문 사용 없이 흐름만 기술
기능 추상화 입력 → 처리 → 출력으로 이어지는 기능 중심 설계 기능을 독립적 블록으로 표현
자료 추상화 데이터와 그 데이터를 다루는 연산을 함께 묶어 **자료 객체(Data Object)**로 표현 → 캡슐화 기반

보완 개념

  • 과정 추상화: 전체 흐름의 순서만 기술, 세부 구현은 생략 (ex. 알고리즘 설계 시 흐름 위주)
  • 데이터 추상화: 다양한 데이터 구조를 논리적 모델로 단순화 (ex. 리스트, 스택, 트리 등)

✅ 요구사항 분류

구분 설명

기능적 요구사항 시스템이 수행해야 하는 동작이나 서비스 (ex. 로그인 기능, 데이터 저장)
비기능적 요구사항 성능, 보안, 신뢰성, 확장성 등 시스템의 품질 속성에 관한 요구사항

🧱 소프트웨어 설계에 자주 쓰이는 다이어그램

유형 설명

DFD (자료 흐름도) 기능 중심, 입력-처리-출력 흐름 표현
UML (통합 모델링 언어) 클래스, 순차, 상태 등 다양한 다이어그램으로 객체지향 시스템 설계
ERD (엔터티 관계도) 데이터베이스 설계에 사용, 엔터티와 관계 표현
순차 다이어그램 객체 간 메시지 흐름 및 상호작용 순서 표현
AVL 트리 노드 간 균형을 유지하는 이진 탐색 트리의 한 형태

🧩 클래스 다이어그램 주요 개념

  • Instance (인스턴스): 실행 중인 객체, 클래스의 복사본
  • Item: 조직 구성원, 데이터 레코드, 메서드 등 개별 요소
  • Hiding (은폐): 불필요한 내부 구현을 감추는 캡슐화(Encapsulation) 개념
  • Operation: 클래스가 수행할 수 있는 동작 또는 메서드

🏗 디자인 패턴 분류

생성(Creational) 패턴

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

구조(Structural) 패턴

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

행위(Behavioral) 패턴

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

🔧 객체지향 분석 및 설계 기법

기법 설명

객체 모델링 클래스, 객체, 속성 중심의 정적 구조 표현
동적 모델링 객체 간 상호작용, 상태 변화 등 동작 표현
기능 모델링 시스템의 기능 흐름, 즉 DFD 중심 분석
  • 객체지향 분석은 상향식 방식, 데이터와 행위를 함께 묶어 캡슐화된 객체로 분석

🔄 아키텍처 패턴 - 파이프 & 필터

  • Pipe-Filter 구조: 데이터가 필터를 통해 단방향으로 흐름
  • 각 필터는 데이터를 처리하고 다음 필터에 전달
  • 단점: 필터 간 통신 시 오버헤드 발생 가능

📌 요약
소프트웨어 설계에서 추상화는 필수 개념이며, 다양한 다이어그램과 패턴을 통해 복잡한 시스템을 체계적으로 표현하고 구현합니다. 위 내용은 정보처리기사 1과목에서 자주 등장하니 꼼꼼히 정리해두면 실기/필기 모두에서 도움이 됩니다.