프로세스 모델
프로세스 모델 (Process Model)
소프트웨어 개발 생명주기(SDLC) 모델들
빌드 앤 픽스 (Build-and-Fix)
- 분석/설계 없이 코드 작성 후 클라이언트 만족까지 수정
- 단일 개발자 중심, 명세 없이 구축
- 현대 환경에서는 부적합
폭포수 모델 (Waterfall)
- 순차적·단계 기반·문서지향
- 각 단계의 출력이 다음 단계의 입력
- 문제점:
- 변경사항 피드백 어려움
- 테스트가 후반에 집중
- 결과 불일치 시 큰 비용 발생
진화적 모델 (Evolutionary)
- 실제 사용자에게 제공 → 피드백 수집 → 설계/목표 조정
- 증분 접근법(Incremental): 계단식 개발, 일련의 미니 폭포수 모델
- 프로토타이핑:
- Throw-away Prototype: 탐색 후 폐기
- Evolutionary Prototype: 발전시켜 최종 제품으로
V 모델
- 폭포수 모델의 확장판
- 각 개발 단계에 대응하는 테스트 단계가 존재
- 요구사항 변경 가능성이 크면 하이 리스크
나선형 모델 (Spiral)
- 위험 분석 중심의 메타 모델
- 각 반복마다 위험 분석 수행 → 비용 높음
- 프로젝트 위험 수준에 따라 진행 방향 결정
DevOps 모델
- 개발(Dev)과 운영(Ops)을 결합 → 신속, 협업, 자동화
- 지속적 통합(CI) → 지속적 전달(CD) → 지속적 배포
- 마이크로서비스 아키텍처, 코드 기반 인프라, 모니터링/로깅
애자일 방법론 (Agile)
XP (Extreme Programming)
- 4가지 가치: 의사소통, 단순성, 피드백, 용기
- 12가지 실천사항 (페어 프로그래밍, TDD, 지속적 통합 등)
Scrum
- 3가지 기둥: 투명성(Transparency), 검사(Inspection), 적합성(Adaptation)
- 스프린트 기반 반복 개발 (1~4주)
| 산출물 | 설명 |
|---|---|
| Product Backlog | 전체 기능 목록 (우선순위 정렬) |
| Sprint Backlog | 현재 스프린트에서 할 작업 목록 |
| Product Increment | 스프린트 완료 후 동작하는 결과물 |
| Burn-down Chart | 남은 작업량 시각화 |
관련 개념
- 품질과 프로젝트 관리 - WBS, PERT, Kanban
- 테스팅 - V 모델의 각 단계별 테스트