소프트웨어를 어떻게 개발할 것인가에 대해 정의한 최상위 수준의 프로세스
역할
- 소프트웨어 개발 단계 정의
- 소프트웨어 개발 접근 방식 제공
- 마일스톤과 일정 수립의 기준 제공
- 소프트웨어 비용 산정의 기준 제공
두 가지 접근 방식
”Big Bang” Approach
고객 요구사항 → 소프트웨어 개발 (분석, 설계, 구현, 테스팅) → 확인 및 검증. 한 번에 끝내는 방식. → Waterfall이 대표적.
”Evolutionary” Approach
고객 요구사항 → 소프트웨어 개발 내에서 분석/설계/구현/테스트(R, D, C, T)를 반복. 점진적 진화 방식. → Prototyping, Spiral이 대표적.
4가지 생명주기 모델
1. 주먹구구식 개발 모델 (Build & Fix Model)
- 요구사항 개발(분석), 설계 단계 없이 구현(코딩) 후 만족할 때까지 수정
- SW 크기가 아주 작은 경우에만 가능
- 개발 현황 관리 및 유지보수 어려움
2. 폭포수 모델 (Waterfall Model)
- SW 개발 전 과정을 체계적·순차적으로 접근
- Big Bang Approach
- SW 크기가 비교적 작고 고객 요구사항이 명확한 경우에 적용
- 이전 단계 산출물 = 다음 단계 입력
- 이전 단계가 완료될 때까지 다음 단계는 대기 상태
- 단점: 고객은 개발 후반부에나 실제 동작하는 SW를 확인 가능
3. 원형 모델 (Prototyping Model)
- 원형(Prototype)을 만들어 고객과 평가 후 요구사항을 명확히 하여 완제품 제작
- Evolutionary Approach
- SW 개발 초기에 고객 요구사항 파악이 어려운 경우에 적용
- 폭포수 모델의 단점 보완 — 빠른 원형 개발 + 고객 검증이 목적
- 원형 개발 시 주요 기능만 고려 (성능, 보안 등은 일반적으로 미고려)
- 원형은 고객 확인 후 폐기됨
4. 나선형 모델 (Spiral Model)
- 폭포수 + 원형의 장점 + 위험 분석을 추가한 모델
- Evolutionary Approach
- 위험 대처 가능 → 고비용·장기간 SW 개발에 적용
- 프로젝트 수행 중 발생하는 위험 관리·최소화가 목적
- 단점: 위험 분석이 부정확하면 또 다른 문제 발생, 폭포수/원형보다 복잡 → 관리 어려움
4단계 반복:
- 계획 및 정의 (목표, 대안, 제약사항 결정)
- 위험 분석 (각 대안의 위험 분석 및 접근방법 선택)
- 개발 (개발과 다음 단계 작업 산출물의 검증)
- 고객 평가 (평가결과와 다음 반복을 위한 계획)
자동차 산업에서의 채택
자동차 SW는 V-Model을 표준 생명주기로 사용하며, 자동차 분야에서는 IVM(Iterative V-Model) 형태로 점진적 적용한다.
방법론 진화
변화 방향
작게 시작, 빠른 피드백, 고객/시장이 정말로 원하는 욕구 반영.
- Waterfall — 프로젝트 끝에 하나의 큰 결과물(Big outcome at end). 고객은 개발 후반에야 동작 SW 확인.
- Agile — 스프린트마다 누적되는 결과물(Cumulative outcomes). 빈번한 의사결정 포인트로 피드백 반영.
- DevOps — 개발과 운영의 경계 제거, 지속적인 흐름으로 전환.
고객 요구사항과 실제 구현의 간극은 “Tree Swing 만화”로 풍자되어 왔다 — 이 간극을 줄이는 것이 진화의 핵심 동기.
방법론별 특징 비교
| 구분 | WATERFALL | SCRUM | DevOps |
|---|---|---|---|
| Methodology | Monolith | Microservices | Cloud-native / Microservices |
| Architecture | Data Center | Data Center | Public Cloud |
| Team Building | Dev · Test · Ops | Dev&Test · Dev&Test · Ops | DevOps · DevOps · DevOps |
업계 전환 타임라인:
- 2017~2018 1차 파도 — Agile Transformation · Test Automation · Microservices Refactoring
- 2018~2019 2차 파도 — DevOps Transformation · Cloud Transition · Product Centricity
Agile Scrum Framework
점진적 개발·점진적 개선을 구현하는 대표 프레임워크. Product Backlog → Sprint Planning Meeting → Sprint Backlog가 산출되면, 1~4주 길이의 Sprint(내부적으로 24시간 단위 Daily Scrum)를 실행하며, Sprint 종료일과 팀 산출물은 변경 불가다.
→ 고정 기간 (Timebox) · 고정 산출물 · 변경 가능한 우선순위가 원칙.
DevOps
개발과 운영의 프로세스를 Seamless하게 연결하고 자동화로 효율을 극대화하는 방법론. DevSecOps는 여기에 보안을 통합한 확장이다. 자세한 무한 루프 구조와 보안 통합은 DevSecOps 참조.