🧭 소프트웨어 생명주기 (Software Life Cycle)
**소프트웨어 생명주기(軟體生命週期)**란
소프트웨어가 처음 만들어져서 폐기되기까지의 전 과정을 체계적으로 구분한 단계를 말한다.
즉, “소프트웨어의 탄생부터 소멸까지의 생애를 관리하는 절차적 과정”이다.
이 개념은 ‘개발’에만 국한되지 않고,
계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수 → 폐기
에 이르는 모든 단계를 포함한다.
1. 개념 설명
소프트웨어는 한 번 만들고 끝나는 제품이 아니다.
시간이 지나면 요구사항이 바뀌고, 기술도 발전하고, 오류도 발견된다.
따라서 체계적으로 개발하고,
개발 이후에도 지속적으로 유지·보수하며,
최종적으로 폐기까지 관리하는 하나의 **“순환 구조(Cycle)”**를 가진다.
이 일련의 과정을 단계별로 정의한 것이 바로 소프트웨어 생명주기이다.
2. 목적
소프트웨어 생명주기를 정의하는 목적은 다음과 같다.
- 개발 절차의 표준화: 누구나 동일한 단계로 작업할 수 있게 함.
- 품질 향상: 각 단계에서 검증을 거치므로 오류를 조기에 발견.
- 비용 및 일정 관리: 단계별 산출물과 일정 관리가 용이.
- 유지보수 용이성: 개발 이후에도 변경·보완이 체계적으로 이루어짐.
즉, 생명주기는 프로젝트 관리의 기준 틀이 된다.
3. 주요 단계 (기본 구조)
① 요구사항 분석(要求事項分析)
사용자가 원하는 기능과 제약 조건을 명확히 파악한다.
② 설계(設計)
요구사항을 기반으로 시스템 구조, 데이터, 인터페이스를 설계한다.
③ 구현(具現)
설계 내용을 실제 코드로 작성하여 시스템을 구축한다.
④ 테스트(檢證)
프로그램이 설계와 요구사항대로 동작하는지 검증한다.
⑤ 유지보수(維持補修)
운영 중 발견된 오류 수정, 성능 개선, 환경 변화에 대한 대응을 수행한다.
⑥ 폐기(廢棄)
시스템이 더 이상 필요하지 않거나 새로운 시스템으로 대체될 경우 종료한다.
4. 생명주기 모형의 종류
생명주기는 위 단계를 어떻게 적용하느냐에 따라 여러 가지 모형으로 나뉜다.
대표적인 생명주기 모형은 다음과 같다.
- 폭포수 모형(Waterfall Model) – 순차적 단계 진행, 전통적 방식
- 프로토타입 모형(Prototype Model) – 시제품을 통한 반복적 개발
- 나선형 모형(Spiral Model) – 위험 분석과 반복적 개발의 결합
- 반복적 모형(Iterative Model) – 여러 번의 주기로 점진적 완성
- 애자일(Agile Model) – 유연하고 신속한 피드백 중심 개발
이 모든 모형은 “생명주기의 단계 구조” 위에서 각각의 접근 방식을 다르게 취하는 것뿐이다.
5. 정처기 실기 정의 문장
“소프트웨어 생명주기란 소프트웨어를 개발, 운용, 유지보수, 폐기하는 전 과정을
체계적으로 구분하여 관리하기 위한 절차적 모형을 말한다.”
핵심 키워드: 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수 → 폐기
6. 생명주기 관리의 중요성
소프트웨어는 하드웨어보다 더 빨리 노후화된다.
따라서 생명주기 관리를 잘해야 시스템의 지속성과 품질을 보장할 수 있다.
특히 공공사업, SI, ERP 등 장기 프로젝트에서는
**생명주기 관리 체계(SDLC: Software Development Life Cycle)**가
프로젝트 성공의 핵심 기준이 된다.
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
소프트웨어(Software)
영어 soft(부드러운) + ware(제품)
: 눈에 보이지 않는 논리적 명령 구조. 하드웨어를 제어하는 지적 시스템.
생명주기(生命週期) / Life Cycle
날 생(生), 목숨 명(命), 돌 주(週), 기 기(期)
: 한 생물이 태어나 자라고 사라지는 전 과정.
영어 cycle은 그리스어 kyklos(둥근, 순환)에서 유래.
요구사항(要求事項) / Requirement
구할 요(要), 구할 구(求), 일 사(事), 항목 항(項)
: 사용자가 시스템에 바라는 기능과 조건. 영어 require는 라틴어 requirere(다시 찾다, 요구하다)에서 유래.
설계(設計) / Design
베풀 설(設), 꾀할 계(計)
: 목적에 맞게 구조를 짜는 일. 영어 design은 라틴어 designare(표시하다, 계획하다)에서 유래.
구현(具現) / Implementation
갖출 구(具), 나타날 현(現)
: 계획된 내용을 실제로 실현하는 것. 영어 implement는 라틴어 implere(채우다, 이행하다)에서 유래.
검증(檢證) / Test
검사할 검(檢), 증거 증(證)
: 결과가 올바른지 확인하는 절차. 영어 test는 라틴어 testum(그릇, 실험용기)에서 유래.
유지보수(維持補修) / Maintenance
지탱할 유(維), 가질 지(持), 도울 보(補), 닦을 수(修)
: 시스템의 정상적인 상태를 지속적으로 보전하는 일. 영어 maintain은 라틴어 manus(손) + tenere(잡다)에서 유래.
폐기(廢棄) / Disposal
버릴 폐(廢), 버릴 기(棄)
: 더 이상 필요 없는 것을 버림. 영어 dispose는 라틴어 disponere(배치하다, 처리하다)에서 유래.
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
🧭 스크럼 기법 (Scrum) (0) | 2025.10.10 |
---|---|
🧭 애자일 방법론 (Agile Methodology) (0) | 2025.10.10 |
프로토타입 모형이란? (0) | 2025.10.10 |
🧭 소프트웨어 개발 프레임워크 (Software Development Framework) (0) | 2025.10.10 |
🧭 소프트웨어 개발 방법론 테일러링 (Software Development Methodology Tailoring) (0) | 2025.10.10 |