반응형
Ⅰ. 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) 한계
ⅰ. 시간 소요: 모든 단계를 따르기 때문에 긴 개발 주기 필요.
ⅱ. 초기 의존성: 초기 요구사항 정의가 정확하지 않으면 후속 작업에 영향.
ⅲ. 변경 어려움: 일부 모델은 단계가 고정되어 유연성이 부족.
반응형
'어플리케이션' 카테고리의 다른 글
HPKP(HTTP Public Key Pinning)에 대해 알아보겠습니다. (0) | 2025.01.08 |
---|---|
워터링 홀(Watering Hole) 공격에 대해 알아보겠습니다. (0) | 2025.01.05 |
CI/CD(Continuous Integration/Continuous Deployment) (1) | 2024.12.20 |
robots.txt 에 대해 알아보겠습니다. (1) | 2024.12.10 |
DNS 캐시 (DNS Cache)에 대해 알아보겠습니다. (0) | 2024.12.10 |