소프트웨어를 어떻게 개발할 것인가에 대해 정의한 최상위 수준의 프로세스

역할

  • 소프트웨어 개발 단계 정의
  • 소프트웨어 개발 접근 방식 제공
  • 마일스톤과 일정 수립의 기준 제공
  • 소프트웨어 비용 산정의 기준 제공

두 가지 접근 방식

”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단계 반복:

  1. 계획 및 정의 (목표, 대안, 제약사항 결정)
  2. 위험 분석 (각 대안의 위험 분석 및 접근방법 선택)
  3. 개발 (개발과 다음 단계 작업 산출물의 검증)
  4. 고객 평가 (평가결과와 다음 반복을 위한 계획)

자동차 산업에서의 채택

자동차 SW는 V-Model을 표준 생명주기로 사용하며, 자동차 분야에서는 IVM(Iterative V-Model) 형태로 점진적 적용한다.

방법론 진화

변화 방향

작게 시작, 빠른 피드백, 고객/시장이 정말로 원하는 욕구 반영.

  • Waterfall — 프로젝트 끝에 하나의 큰 결과물(Big outcome at end). 고객은 개발 후반에야 동작 SW 확인.
  • Agile — 스프린트마다 누적되는 결과물(Cumulative outcomes). 빈번한 의사결정 포인트로 피드백 반영.
  • DevOps — 개발과 운영의 경계 제거, 지속적인 흐름으로 전환.

고객 요구사항과 실제 구현의 간극은 “Tree Swing 만화”로 풍자되어 왔다 — 이 간극을 줄이는 것이 진화의 핵심 동기.

방법론별 특징 비교

구분WATERFALLSCRUMDevOps
MethodologyMonolithMicroservicesCloud-native / Microservices
ArchitectureData CenterData CenterPublic Cloud
Team BuildingDev · Test · OpsDev&Test · Dev&Test · OpsDevOps · 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 참조.

같이 보기