소프트웨어 공학 핵심 정리 — SDLC 모델·개발 방법론·정보공학·두음암기
소프트웨어 공학(Software Engineering)의 핵심 개념과 개발 모델·방법론 체계를 정리했습니다. 정보관리기술사·컴퓨터시스템응용기술사 시험 준비의 가장 기초가 되는 뼈대입니다. 폭포수부터 RAD까지 SDLC 모델 비교, 정보공학 방법론, 그리고 암기 두음표까지 담았습니다.
1. 소프트웨어 공학의 개요 및 목표
소프트웨어 공학은 소프트웨어의 위기(예산 초과, 납기 지연, 품질 저하)를 극복하기 위해 체계적·정량적·공학적 접근 방식을 도입한 학문입니다.
- 특징 (비복변무순): 비가시성, 복잡성, 변경성, 무형성, 순응성
- 발전원리 (공표자품): 공학적 접근, 표준화, 자동화 도구 활용, 품질보증체계
- 핵심 목표 (QCD): 고품질(Quality), 비용 절감(Cost), 납기 준수(Delivery)
- SWEBOK 구성 (방구다프): 방법(Method), 도구(Tool), 패러다임(Style), 프로세스(Process)
2. 소프트웨어 개발 생명주기(SDLC) 모델
① 폭포수 모델 (Waterfall Model)
- 특징: 순차적, 하향식, 고전적. 각 단계가 끝나야 다음 단계로 진행(Frozen Delivery)
- 장점: 관리의 용이성, 체계적 문서화
- 단점: 오류 발견 시점이 늦고, 요구사항 변경에 취약
- 적용: 요구사항이 명확하고 기술적 위험이 낮은 프로젝트
② 프로토타이핑 모델 (Prototyping Model)
- 특징: 시제품(Prototype)을 제작하여 고객 피드백을 수렴
- 단계 (요프검피상설): 요구분석 → Prototype 개발 → 검토 → Feedback → 상세설계 → 설치/운영
- 장점: 요구사항 불확실성 해소, 의사소통 활성화
③ 나선형 모델 (Spiral Model)
- 특징: 위험 분석을 반복 수행하며 점진적으로 시스템 완성
- 구성요소 (계위개고): 계획 및 정의 → 위험분석(핵심) → 개발 및 검증 → 고객 평가
- 적용: 대규모 시스템, 위험 부담이 큰 프로젝트
④ 반복적 개발 모델 (Iterative Model)
- 증분(Incremental): 기능별로 분할하여 병렬 개발 (속도 중시)
- 진화(Evolutionary): 핵심 기능 개발 후 피드백을 통해 지속 발전 (유연성 중시)
⑤ RAD 모델 (Rapid Application Development)
- 특징: CASE 도구를 활용하여 2~3개월 내 단기 완성. 사용자 참여 극대화
- 단계 (지라크씨): JRP(계획) → JAD(설계) → Construction(구축) → Cutover(전환)
3. 소프트웨어 개발 방법론 및 정보공학(IE)
- 방법론의 구성요소: 절차, 방법, 산출물, 관리, 기법, 도구
- 발전 과정: 구조적 → 정보공학 → 객체지향 → CBD → Agile
정보공학 방법론 (Information Engineering)
- 데이터 중심(Data Driven) 분석 및 설계
- ISP 중심: 기업 전체의 정보 전략 계획 강조
- 4단계 절차 (ASS 피라미드):
- ISP: 정보전략계획
- BAA: 업무영역분석
- BSD: 업무시스템설계 (ERD, DFD 활용)
- SC: 시스템구축
4. 기술사적 제언
최근 소프트웨어 공학의 트렌드는 과거의 '계획 중심'에서 '가치와 피드백 중심'으로 이동하고 있습니다. 하지만 모든 프로젝트에 Agile이 정답은 아닙니다.
- Tailoring의 중요성: 프로젝트의 규모·위험도·요구사항 명확도에 따라 적절한 SDLC 모델(Waterfall vs Spiral vs Agile)을 선택하고 최적화하는 역량이 필요
- 품질 보증의 Shift-Left: 폭포수 모델의 한계를 극복하기 위해 테스트와 품질 검토를 개발 초기 단계로 앞당기는 전략이 실무적으로 매우 중요
- 현대적 확장: SWEBOK의 기초 위에 DevSecOps, MLOps 등 최신 엔지니어링 패러다임을 결합하면 답안이 차별화됨
5. 핵심 두음 정리표
| 구분 | 두음 | 두음 내용 | 핵심 설명 |
|---|---|---|---|
| SW 특징 | 비복변무순 | 비가시성, 복잡성, 변경성, 무형성, 순응성 | SW가 물리적 형태가 없고 복잡하며 변경이 잦은 특성 |
| 발전 원리 | 공표자품 | 공학적 접근, 표준화, 자동화, 품질보증 | SW 위기를 극복하기 위한 공학적 해결 방안 |
| SWEBOK | 방구다프 | 방법, 도구, 패러다임, 프로세스 | SW 공학 지식 체계를 구성하는 4대 요소 |
| 나선형 모델 | 계위개고 | 계획, 위험분석, 개발, 고객평가 | 위험 분석을 중심으로 반복 수행하는 모델 |
| 프로토타이핑 | 요프검피상설 | 요구분석, 프로토타입 개발, 검토, 피드백, 상세설계, 설치 | 시제품을 통한 반복적 요구사항 도출 과정 |
| RAD 단계 | 지라크씨 | JRP, JAD, Construction, Cutover | CASE 도구를 활용한 단기 고속 개발 절차 |
| 방법론 구성 | 절방산관기도 | 절차, 방법, 산출물, 관리, 기법, 도구 | 방법론을 구성하는 6가지 필수 요소 |
| 정보공학 | ISP-BAA-BSD-SC | 전략계획, 영역분석, 시스템설계, 구축 | 데이터 중심의 기업 업무 시스템 구축 체계 |

기술사 시험을 준비하며 정리한 소프트웨어 공학 핵심 노트입니다. 추가로 다루었으면 하는 토픽이 있으면 댓글로 남겨주세요.
'소프트웨어 공학(Software Engineering)' 카테고리의 다른 글
| 소프트웨어 아키텍처 패턴과 MSA·DDD — 4+1 View·SOA·UML·GoF 디자인 패턴 (1) | 2026.07.02 |
|---|---|
| 소프트웨어 아키텍처 평가 핵심 정리 — ISO 42010·ATAM·CBAM·품질 속성 (0) | 2026.06.30 |
| DevOps·SRE·무중단 배포 핵심 정리 — Error Budget·SLO·DevSecOps·Blue-Green·Canary (0) | 2026.06.30 |
| 소프트웨어 재사용과 현대 개발 기법 — CBD·Product Line·요구공학·AOP·TDD (0) | 2026.06.30 |
| 객체지향 5대 특징과 SOLID 설계 원칙 — 캡슐화·다형성·디자인 패턴 연계 (0) | 2026.06.11 |