| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- python 기초
- 데이터 시각화
- 자연어처리
- Transformer
- 객체지향
- 힙정렬
- 알고리즘
- 에이전트
- 트랜스포머
- CNN
- RNN
- 기초
- 소프트웨어 개발
- RDBMS
- 랭그래프
- 데이터엔지니어
- 캐글
- 정보처리기사
- python기초
- LangGraph
- Python
- SQL
- UMAP
- 머신러닝
- CLIP
- 생성형 인공지능
- ASR
- dementional reduction
- 딥러닝
- TTS
Archives
- Today
- Total
수달이네 기술 블로그
1. 소프트웨어 설계(설계, 소프트웨어 아키텍처) 본문
설계 모델링
요구사항 분석 → 필수 기능 정의 → 구체적인 구현방법 명시
원칙
- 변경이 쉽도록 구조화
- 필요한 자료만 사용하도록 규제
- 모듈 단위로 분할
- 계층적 구조
소프트웨어 설계 유형
| 유형 | 설명 | 구성요소 |
| 구조 모델링 | • 컴포넌트의 유형, 인터페이스, 구조, 연결구조, 연결관계특성 모델링 | 프로시저, 데이터구조, 모듈, 파일 구조 |
| 행위 모델링 | • 구성요소의 기능, 언제, 어떤 순서로 기능할지 모델링 | 입출력 데이터, 데이터 흐름, 데이터 변환, 데이터 저장 |
소프트웨어 설계 유형
| 유형 | 설명 |
| 자료구조 설계 | • 자료구조로 변환하는 과정 설계 |
| 아키텍처 설계 | • 소프트웨어 시스템 전체 구조, 컴포넌트간 관계 설계 |
| 인터페이스 설계 | • 시스템 ↔ 사용자의 통신 방법 설계 |
| 프로시저 설계 | • 모듈의 기능을 절차적 기술로 바꾸는 설계 |
| 협약에 의한 설계 | • 클래스에 대한 여러 가정을 공유하도록 명세한 설계 • 선행조건: 컴포넌트의 오퍼레이션 사용 전에 참이 되어야할 조건 • 결과조건: 사용후 만족 되어야할 조건 • 불변조건: 오퍼레이션 실행동안 만족되어야 할 조건 |
소프트웨어 설계 원리
상향식 설계
- 하위 기능부터 상위기능으로 접근
- 인터페이스가 성립되어야 기능추가가 쉽다.(기존 컴포넌트 조합)
하향식 설계
- 상위기능 부터 하위기능으로 접근
- 레벨이 낮은 데이터 구조의 세부사항은 설계 초기부터 필요
- 통합이 간단함.
- 시스템 명세가 명확하거나 새로 개발할때 적합함.
코드 설계
데이터의 분류/조합을 쉽게 하기 위한 사물의 코드 설계(KR, EN…)
- 표준화, 분류, 식별, 배열, 간소화, 연상, 암호화, 오류 검출
종류
| 종류 | 설명 |
| 연상코드 | 코드만 보고 대상을 연상할 수 있게 구성(나라이름:KR) |
| 블록코드 | 공통성 있는 것 끼리 구분, 각 블록에서 일련번호 부여(전화번호) |
| 순차코드 | 기준에 따라 순서대로 일련번호 부여(대기 번호) |
| 표의 숫자코드 | 대상의 물리적 수치를 표시(ex: 길이-넓이-용량을 통한 코드 > 20-10-300) |
| 십진코드 | 10진수 형태로 표현(바코드) |
| 그룹 분류식 코드 | 대상을 기준에 따라 대분류, 중분류, 소분류로 구분해 번호 생성(학번) |
코드 오류
- 사본오류(오탈자), 전위오류(순서 바뀜), 생략오류(빼먹음), 첨가오류(더넣음), 이중전위오류(전위오류가 중복)
HIPO(Hierarchy Input Process Output)
하향식 개발 문서화 도구
- 시스템 분석, 설계에 사용
종류
- 가시적 도표: 전체 기능을 보여주는 계층 구조도
- 총체적 도표: 입력, 처리, 출력의 정보를 제공하는 도표(프로그램 기능)
- 세부적 도표: 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술
소프트웨어 아키텍처
SW 구서용소, 구성요소의 특성, 구성요소 간의 관계를 표현
뷰
유스케이스 뷰: 유스케이스, 아키텍처를 도출 설계해 다른 뷰를 검증
- 외부 행위자에 의해 인식되는 시스템의 기능 요구사항을 보여주는데 초점
- 사용자, 설계자, 개발자, 테스트 관점
논리뷰: 시스템의 기능적 요구사항의 제공 내역을 설명
- 설계자 개발자 관점
프로세스 뷰: 자원의 효율적 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현
- 개발자, 시스템 통합자 관점
구현 뷰: 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여줌
- 컴포넌트 구조와 의존성을 보여주고, 컴포넌트의 부가적 정보를 정의
배포 뷰: 컴포넌트가 물리적 아키텍터에 어떻게 배치되는가 매핑
- 시스템의 각 부분의 분산 형태, 설치에 초점
비용 평가 모델
SAAM(변경 용이성, 기능성) , ATAM(아키텍처 품질 속성), CBAM(경제적 의사결정)
소프트웨어 아키텍처 패턴**


'공부 > 정보처리기사' 카테고리의 다른 글
| 2. 소프트웨어 개발(자료구조) (0) | 2026.05.05 |
|---|---|
| 1. 소프트웨어 설계(인터페이스) (1) | 2026.05.04 |
| 1. 소프트웨어 설계(객체지향, 디자인 패턴) (3) | 2026.05.01 |
| 1. 소프트웨어 설계(에자일, UI, 모델링)(정보처리기사 1일차) (0) | 2026.04.30 |
| 1. 소프트웨어 설계(요구사항, UML)(정보처리기사 1일차) (1) | 2026.04.30 |