[QA]소프트웨어_SDLC.
[QA]소프트웨어_SDLC.
🛠 SDLC (Software Development Life Cycle)
소프트웨어 개발을 체계적으로 관리하는 과정.
계획 → 요구사항 정의 → 설계 → 구현 → 테스트 → 배포 → 유지보수 단계로 구성
🔴 계획 (Planning)
- 목표 설정, 리소스 및 일정 계획, 위험요소 식별
- 🎯 SMART 목표 설정
- 🔶 Specific (구체성): 명확한 목표 설정
- 🔷 Measurable (측정 가능성): 성과 측정 가능?
- 🟩 Action-oriented (실천 가능성): 실천 가능한 목표
- 🟢 Realistic (현실성): 현실적으로 달성 가능함?
- 🔴 Time-limited (기한 설정): 기한이 설정됨?
📌 Key Performance Indicator (KPI_핵심 성과 지표)
- 계획 완료율: 목표 대비 달성률
- 리스크 식별률: 위험 요소 발견 및 대응
- 자원 할당 정확도: 인력 및 예산 활용도 평가
🟠 요구사항 정의 (Requirement Analysis)
- 요구사항 수집, 문서화 및 도출
- 📌 MoSCoW 기법
- 🟥 Must Have: 반드시 포함해야 하는 기능
- 🟧 Should Have: 필수는 아니지만 높은 우선순위
- 🟦 Could Have: 있으면 좋지만 필수는 아님
- 🟩 Won’t Have: 현재 포함되지 않을 기능
🟡 설계 (Design)
- 아키텍처 설계, 데이터 흐름 정의, 개발 기초 구축
| 계층형 아키텍처 | 마이크로서비스 아키텍처 | 서버리스 |
|---|---|---|
| 프론트엔드, 백엔드, 데이터베이스를 계층적으로 분리 | 독립적 서비스로 구성, 유연성 확장성 높음 | 클라우드 플랫폼 활용, 서버 관리 부담 감소 |
🟢 구현 (Development)
- 소프트웨어 개발 단계
- 📌 Clean Code 원칙
- KISS (Keep It Simple, Stupid): 단순하고 명확한 코드
- Boy Scout Rule: 기존 코드보다 더 깨끗하게 유지
- Root Cause Analysis: 근본 원인 해결
📌 코딩 원칙
- 클린 코드
- DRY (Don’t Repeat Yourself)
- SOLID 원칙
🔵 테스트 (Testing)
- 소프트웨어 검증, 결함 발견 및 수정
- 📌 테스트 주요 요소
- 테스트 범위: 무엇을 테스트할 것인가?
- 테스트 목표: 어떤 문제를 발견할 것인가?
- 리소스: 누가, 어떤 도구를 사용할 것인가?
- 일정: 테스트 일정 및 마일스톤 설정
📌 결함 관리 프로세스
- 결함 보고 (Defect Reporting)
- 결함 분석 (Defect Analysis)
- 결함 수정 (Defect Fixing)
- 결함 재테스트 (Retest)
🟣 배포 (Deployment)
- 소프트웨어 배포, 초기 피드백 수집
- 📌 배포 프로세스
- 준비 → 테스트 환경 → 프로덕션 환경 → 사용자 제공
🚀 소프트웨어 배포 전략
- Blue/Green Deployment: 트래픽을 새 환경으로 전환, 빠른 롤백 가능
- Canary Deployment: 일부 사용자에게 배포 후 점진적 확산
- Rolling Deployment: 점진적 배포, 무중단 가능
⚫ 유지보수 (Maintenance)
- 지속적인 개선 및 최적화
- 📌 핵심 원칙
- 사용자 피드백을 기반으로 지속적 개선
- 문서화를 통한 유지보수 체계화
- 안정성을 고려한 업데이트 관리
This post is licensed under CC BY 4.0 by the author.
