[Software Engineering] 소프트웨어 생명주기 (Software Life Cycle)

서승·2025년 5월 31일

기술 지식

목록 보기
3/12

최근에 기술면접을 보았는데, 방법론과 생명주기를 혼동하는 것 같다는 피드백을 받아 개념 정리를 위해 기술합니다.

소프트웨어 생명주기는 소프트웨어가 탄생하고 사용되며 사라지기까지의 전 과정을 체계적으로 정의한 것이다.

  • 요구분석부터 유지보수까지 전 공정을 체계화한 절차
  • 시스템의 개발부터 유지보수까지 어떠한 작업이 이뤄지는지 단계별 정리
생명주기 모델 단계
요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 배포 및 유지보수
1. 요구사항 분석
  • 고객으로부터 원하는 기능이나 제약 조건을 수집
  • 시스템이 무엇을 해야 하는지 명확히 정의하는 단계
2. 설계
  • 요구사항을 바탕으로 시스템의 구조와 기능을 설계
  • 아키텍처 설계, 인터페이스 설계, 데이터베이스 설계를 포함
3. 구현
  • 설계한 내용을 실제 코드로 작성
  • 개발자가 중심이 되는 단계
4. 테스트
  • 구현된 시스템이 요구사항에 맞게 동작하는지 확인
  • 단위 테스트, 통합 테스트, 시스템 테스트 등이 포함
5. 배포 및 유지보수
  • 사용자에게 소프트웨어를 제공하고, 이후 문제를 해결하거나 기능을 개선
  • 소프트웨어는 실제 사용 이후에도 오류 수정, 성능 향상 등을 위해 관리
주요 소프트웨어 생명주기 모델 종류
모델 이름특징 요약적합한 상황
폭포수 모델 (Waterfall Model)각 단계를 순차적으로 진행. 뒤로 돌아가지 않음.요구사항이 명확하고 변경이 적은 프로젝트
V 모델 (V-Model, 검증 및 확인 모델)폭포수 모델 + 각 단계에 대응하는 테스트 단계 포함신뢰성과 안정성이 중요한 시스템 (예: 의료, 항공)
프로토타입 모델 (Prototype Model)빠르게 프로토타입을 만들고 피드백 받아 개선사용자 요구를 정확히 파악하기 어려운 경우
나선형 모델 (Spiral Model)반복과 점진적 개발 + 위험 관리 강조대규모, 고위험, 복잡한 프로젝트
반복적 모델 (Iterative Model)기본 구조를 반복적으로 확장하며 개발요구사항이 유동적인 프로젝트
애자일 모델 (Agile Model)빠른 반복, 사용자 피드백, 변화에 유연소규모 팀, 빠르게 변화하는 환경
정리

"생명주기"는 소프트웨어가 거치는 전체 과정이고 그 과정을 '어떻게' 밟을지에 따라 다양한 생명주기 모델(=개발 방법)이 있다.

  • 소프트웨어 생명주기 = 개발에서 유지보수까지의 일반적인 큰 틀
(요구 분석 → 설계 → 구현 → 테스트 → 유지보수)
  • 생명주기 모델 = 이 생명주기를 어떻게 적용할지 정리한 방식들
(폭포수 모델, 애자일 모델, 나선형 모델 등)
  • 개발 방법론 = 그 모델 안에서 실제로 프로젝트를 운영하는 구체적인 절차와 기법
(예: 애자일 모델 안의 스크럼, XP)
profile
정진 또 정진

0개의 댓글