코드 위의 하루 (A Day on the Code)

Chapter 2 정리 - 소프트웨어 생명주기 완전 정복 본문

🍚전공이 밥 먹여준다믄/📕 소프트웨어공학

Chapter 2 정리 - 소프트웨어 생명주기 완전 정복

code.with.siyeon 2025. 5. 12. 18:57

📌 과목 개요

  • 과목명: 소프트웨어공학
  • 교재: 『쉽게 배우는 소프트웨어공학 2판』 - 김치수 저
  • 중간고사 범위: Chapter 1 ~ Chapter 6
  • 시험 스타일: 각 생명주기 단계의 의미 설명, 개발 모델 비교, 장단점 서술 문제

📚 Chapter 2 핵심 개념 요약

1. 소프트웨어 생명주기(SDLC, Software Development Life Cycle)

  • 소프트웨어가 기획 → 개발 → 운영 → 폐기되기까지의 전 과정
  • 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수 단계로 구성됨

2. 각 단계 간단 요약

  • 계획(Planning): 프로젝트 목적 설정, 범위, 일정 수립
  • 분석(Analysis): 요구사항 수집 및 정제 (무엇을 만들 것인가?)
  • 설계(Design): 시스템 구조 정의 (어떻게 만들 것인가?)
  • 구현(Implementation): 실제 프로그램 개발
  • 테스트(Testing): 오류 제거, 기능 검증
  • 유지보수(Maintenance): 배포 후 수정/기능 추가

3. 개발 프로세스 모델

🔹 폭포수 모델(Waterfall)

  • 각 단계를 순차적으로 수행
  • 이전 단계로 되돌아갈 수 없음
  • 문서화 철저, 일정 예측 용이

✔️ 장점: 구조적이고 명확한 계획 가능
✔️ 단점: 요구사항 변경 어려움, 초반 실수 → 전체 오류로 연결


🔹 프로토타입 모델(Prototype)

  • 미리 **시제품(프로토타입)**을 만들어 사용자에게 피드백을 받으며 개발
  • 요구사항 명확하지 않을 때 유용

✔️ 장점: 사용자와 의사소통 쉬움, 요구사항 변경 반영 용이
✔️ 단점: 시제품에 너무 의존하거나, 최종 제품 품질 저하 우려


🔹 반복적 모델(Iterative)

  • 일정 기능 단위로 점진적 반복 개발
  • 점점 완성도를 높여가는 방식

🔹 애자일 모델(Agile)

  • 반복적 + 협업 중심
  • 유연하게 변화에 대응
  • 대표 방식: 스크럼(Scrum), XP

✔️ 장점: 빠른 피드백, 유연한 대응
✔️ 단점: 큰 프로젝트나 명확한 규격이 필요한 경우 부적합


📊 주요 모델 비교 요약


💡 자주 나오는 시험 유형

  • 폭포수 vs 프로토타입 vs 애자일 모델 장단점 비교
  • 각 개발 단계 설명
  • 생명주기의 순서를 나열하거나 정의
  • “요구사항이 명확하지 않을 때 적합한 모델은?” 같은 사례형 문제

🎯 교수님이 강조한 포인트

  • 폭포수는 되돌아갈 수 없다는 점 꼭 기억
  • 프로토타입은 요구사항 파악에 효과적
  • 애자일은 반복 + 협업 기반이며, 고정된 요구사항보다 변화에 적합

📌 내 오답노트 & 복습 포인트

  • 단계 순서를 틀리거나 빠뜨림 (계획-분석-설계 순서 주의)
  • 프로토타입과 애자일의 차이 혼동
  • 유지보수 단계를 단순히 오류 수정이라고만 오해함

📝 마무리 요약

  • 소프트웨어 생명주기는 제품의 전 생애를 구조화한 개념
  • 각 모델은 상황에 따라 적합한 방식이 다르며, 장단점 중심으로 외워두기
  • 시험에서는 모델 비교, 개발 단계 순서, 적용 사례가 핵심

📘 다음 편 예고
《전공이 밥 먹여준다믄 - 소프트웨어공학 Chapter 3 정리》
요구사항 공학과 유스케이스 다이어그램 쉽게 정리하기