🌐 소프트웨어 설계에서 사용되는 대표 추상화 기법 총정리
소프트웨어 설계는 복잡한 현실 세계를 단순화하고 체계적으로 분석하기 위한 과정입니다. 이때 중요한 것이 바로 **추상화(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과목에서 자주 등장하니 꼼꼼히 정리해두면 실기/필기 모두에서 도움이 됩니다.
'CERT > 정보처리기사' 카테고리의 다른 글
| [정보처리기사] 소프트웨어 설계부 오답 개념 정리 -6 (4) | 2025.07.28 |
|---|---|
| [정보처리기사] 소프트웨어 설계부 오답 개념 정리 -5 (8) | 2025.07.28 |
| [정보처리기사] 소프트웨어 설계부 오답 개념 정리 -4 (4) | 2025.07.28 |
| [정보처리기사] 소프트웨어 설계부 오답 개념 정리 -2 (2) | 2025.07.25 |
| [정보처리기사] 소프트웨어 설계부 오답 개념 정리 -1 (10) | 2025.07.24 |