소프트웨어 생명 주기

기술노트

📜 소프트웨어 생명 주기 (SDLC)

소프트웨어 생명 주기(SDLC, Software Development Life Cycle)는 소프트웨어 시스템이 탄생(요구사항 분석)부터 소멸(유지보수 및 폐기)에 이르기까지 거치는 모든 단계를 체계적으로 정의한 모델입니다. 소프트웨어 개발의 전 과정을 계획하고, 관리하며, 통제하기 위한 프레임워크 역할을 합니다.


📚 SDLC의 주요 단계

SDLC 모델에 따라 단계의 명칭이나 순서가 조금씩 다를 수 있지만, 일반적으로 다음과 같은 주요 단계를 포함합니다.

1. 요구사항 분석 (Requirements Analysis) : 사용자와 이해관계자의 요구사항을 수집하고, 분석하여 명확하게 정의합니다. (무엇을 만들 것인가?) 2. 설계 (Design) : 분석된 요구사항을 바탕으로 시스템의 구조, 아키텍처, 데이터베이스, 사용자 인터페이스 등을 설계합니다. (어떻게 만들 것인가?) 3. 구현 (Implementation / Coding) : 설계된 내용을 바탕으로 실제 코드를 작성합니다. 4. 테스트 (Testing) : 구현된 소프트웨어가 요구사항을 충족하고, 오류 없이 동작하는지 검증합니다. 5. 배포 및 유지보수 (Deployment & Maintenance) : 개발된 소프트웨어를 실제 운영 환경에 설치하고, 사용자의 피드백을 반영하거나 버그를 수정하며 시스템을 지속적으로 관리합니다.


📚 SDLC 모델의 종류

  • 폭포수 모델 (Waterfall Model) : 각 단계가 순차적으로 진행되며, 이전 단계가 완료되어야 다음 단계로 넘어갈 수 있는 선형적인 모델입니다. 단순하고 이해하기 쉽지만, 요구사항 변경에 취약합니다.
  • 프로토타이핑 모델 (Prototyping Model) : 사용자의 요구사항을 정확히 파악하기 위해, 실제 시스템의 축소판(프로토타입)을 먼저 만들어 사용자에게 보여주고 피드백을 반영하여 점진적으로 개발하는 모델입니다.
  • 나선형 모델 (Spiral Model) : 폭포수 모델의 순차적인 개발과 프로토타이핑 모델의 반복적인 개발을 결합한 모델입니다. 위험 관리(Risk Management)를 강조하며, 대규모 프로젝트에 적합합니다.
  • 애자일 모델 (Agile Model) : 짧은 개발 주기(스프린트)를 반복하며, 변화하는 요구사항에 민첩하게 대응하는 것을 목표로 하는 모델입니다. 고객과의 지속적인 소통과 피드백을 강조합니다.

💡 정보처리기사 핵심 Point

  • SDLC는 소프트웨어 개발의 전체 과정을 이해하는 데 가장 기본적인 개념입니다.
  • 각 SDLC 모델의 특징, 장단점, 그리고 어떤 프로젝트에 적합한지 명확히 구분하여 이해하는 것이 중요합니다.
  • 정보처리기사 시험에서는 각 모델의 개념과 함께, 특정 상황에 어떤 모델이 적합한지를 묻는 문제가 자주 출제됩니다.