SDLC
SDLC(Software Development Life Cycle, 소프트웨어 생명주기)는 시스템의 요구분석부터 폐기까지의 전 과정을 단계별로 체계화한 절차다. 어떤 방법론을 따르든 이 단계들을 어떻게 배치하고 반복할 것인가가 차이일 뿐, 본질은 동일하다.
표준 단계
- 요구사항 분석: 무엇을 만들지 정의 → Requirement Specification
- 설계: 시스템 구조와 모듈을 설계 → 소프트웨어 아키텍쳐
- 구현: 실제 코드 작성
- 테스트: 단위/통합/시스템 테스트/인수 테스트
- 배포: 운영 환경에 릴리스
- 유지보수: 결함 수정 및 기능 개선
대표 모델
폭포수(Waterfall)
앞 단계가 끝나야 다음 단계로 진행. 요구가 안정적인 프로젝트에 적합. 변경에 취약.
V-모델
폭포수 + 각 단계마다 대응되는 검증 단계 추가.
프로토타이핑
초기 프로토타입을 만들고 사용자 피드백을 받으며 발전.
나선형(Spiral)
계획 → 위험분석 → 개발 → 평가의 사이클을 반복하며 점진적 확장.
애자일(Agile)
짧은 반복(스프린트)으로 가치 있는 결과물을 자주 배포 → Agile
모델 선택 기준
| 요인 | 선호 모델 |
|---|---|
| 요구가 명확·고정 | 폭포수, V-모델 |
| 요구가 불확실 | 프로토타이핑, 애자일 |
| 위험 높음·대규모 | 나선형 |
| 빠른 시장 검증 | 애자일 + MVP |