어플리케이션

Software Development Life Cycle (SDLC)에 대해 알아보겠습니다.

forward error correction Circle 2024. 12. 24. 08:49
반응형

Ⅰ. Software Development Life Cycle (SDLC)란?

 소프트웨어 개발의 효율성과 품질을 높이기 위해 체계적으로 설계된 프로세스입니다. SDLC는 소프트웨어 개발 프로젝트를 관리하고, 요구사항 수집에서 배포 및 유지보수에 이르기까지 모든 단계를 포괄합니다.

Ⅱ. Software Development Life Cycle (SDLC) 목적

 ⅰ. 품질 보장: 고품질 소프트웨어를 적시에 제공.
 ⅱ. 비용 효율성: 불필요한 작업과 리소스 낭비 방지.
 ⅲ. 시간 관리: 프로젝트 일정과 리소스를 효율적으로 관리.
 ⅳ. 위험 최소화: 프로젝트 위험을 예측하고 예방.

Ⅲ. Software Development Life Cycle (SDLC) 주요 7 단계

No 단계명 목표 활동 결과물
1 요구사항 분석
(Requirement Analysis)
고객 또는 이해관계자의 요구사항을 명확히 정의. 비즈니스 요구사항 수집.
기술적 요구사항 정의.
요구사항 문서(SRS, Software Requirement Specification) 작성.
SRS, 요구사항 모델(예: Use Case, UML 다이어그램).
2 계획 (Planning) 프로젝트 범위, 일정, 비용, 리소스를 계획. 프로젝트 계획 수립.
예산 산정 및 리소스 할당.
위험 분석 및 관리 계획 수립.
프로젝트 계획 문서, 리스크 관리 계획.
3 설계 (Design) 소프트웨어의 아키텍처 및 기술적 설계를 구체화. 시스템 설계(데이터베이스, 인터페이스, 모듈 등).
설계 문서 작성(HLD: High-Level Design, LLD: Low-Level Design).
설계 문서, 데이터 모델, UI 설계.
4 개발 (Implementation) 설계 문서에 따라 코드를 작성하고 소프트웨어를 구현. 프로그래밍 및 모듈 개발.
버전 관리 도구 사용(Git, SVN 등).
내부 코드 리뷰 및 초기 단위 테스트(Unit Test).
실행 가능한 소프트웨어 코드.
5 테스트 (Testing) 소프트웨어의 품질 및 안정성을 확인. 단위 테스트, 통합 테스트, 시스템 테스트, 회귀 테스트 실행.
테스트 계획서 작성 및 버그 관리.
사용자 요구사항과의 일치 여부 검증.
테스트 보고서, 문제 해결 기록.
6 배포 (Deployment) 소프트웨어를 운영 환경에 배포. 운영 환경 배포(온프레미스, 클라우드 등).
사용자 교육 및 문서화.
배포 후 초기 문제 모니터링.
배포된 소프트웨어, 사용자 매뉴얼.
7 유지보수 (Maintenance) 소프트웨어가 안정적으로 작동하도록 지속적인 지원 제공. 버그 수정 및 최적화.
새로운 기능 추가 및 업데이트.
사용자의 피드백 수집 및 반영.
유지보수 기록, 업데이트 로그.

Ⅳ. Software Development Life Cycle (SDLC) 모델

SDLC를 실행하는 방식은 프로젝트 요구사항과 팀의 작업 스타일에 따라 달라집니다. 

No 모델명 설명 장점 단점
1 폭포수 모델 (Waterfall Model) 각 단계가 순차적으로 진행.
이전 단계로 돌아갈 수 없음.
단순하고 구조적. 유연성이 낮아 변경 사항 반영이 어려움.
2 애자일 모델 (Agile Model) 짧은 개발 주기(Sprint)로 반복 작업.
고객 피드백을 중심으로 지속적인 개선
유연하고 고객 중심적. 문서화 부족, 초기 계획이 불명확할 수 있음.
3 스파이럴 모델 (Spiral Model) 위험 분석을 포함한 반복적 프로세스.
각 반복에서 요구사항 분석, 설계, 개발, 테스트 수행.
대규모 프로젝트에 적합. 복잡하고 비용이 높음.
4 V-모델 (V-Model) 폭포수 모델에 테스트 단계를 추가한 구조.
각 개발 단계에 대응하는 테스트 단계 포함.
품질 보장. 유연성이 낮음.
5 빅뱅 모델 (Big Bang Model) 초기 계획 없이 모든 리소스를 투입하여 개발 진행. 단순한 소규모 프로젝트에 적합. 복잡한 프로젝트에 비효율적

Ⅴ. Software Development Life Cycle (SDLC) 장·단점

No Software Development Life Cycle(SDLC) 장점 Software Development Life Cycle(SDLC) 단점
1 체계적이고 구조적인 접근 초기 요구사항 의존성
2 명확한 요구사항 관리 시간과 비용 소모
3 품질 보장 변화에 대한 제한
4 프로젝트 위험 최소화 문서화 부담
5 프로젝트 관리 효율성 테스트 단계의 지연
6 문서화로 인한 유지보수 용이 모든 프로젝트에 적합하지 않음
7 다양한 모델 선택 가능 고객 참여 부족

Ⅵ. Software Development Life Cycle (SDLC) 한계

 ⅰ. 시간 소요: 모든 단계를 따르기 때문에 긴 개발 주기 필요.
 ⅱ. 초기 의존성: 초기 요구사항 정의가 정확하지 않으면 후속 작업에 영향.
 ⅲ. 변경 어려움: 일부 모델은 단계가 고정되어 유연성이 부족.

반응형