# [[SDLC & SSDLC (소프트웨어 개발 생명주기)|SDLC & SSDLC (소프트웨어 개발 생명주기]]

## 📌 Brief Summary
소프트웨어 개발 생명주기(SDLC)는 시스템의 기획, 설계, 구현, 테스트, 배포 및 운영에 이르는 전 과정을 체계화한 모델입니다. **Secure SDLC (SSDLC)**는 이 전통적인 과정의 각 단계에 보안 활동을 내재화하여 안전한 소프트웨어를 구축하는 방법론입니다 [1]. 현대적인 SDLC 환경에서 코드 리뷰는 개발과 배포 사이의 핵심적인 품질 및 보안 게이트(Quality Gate)로 작용하며, 특히 보안 점검을 초기 단계로 앞당기는 **'시프트 레프트(Shift-Left)'** 전략을 통해 결함 수정 비용을 절감하고 시스템 무결성을 확보합니다 [4, 5].

## 📖 Core Content
*   **전통적 SDLC 단계별 코드 리뷰:**
    *   **설계:** 아키텍처 리뷰를 통해 초기 구조의 결함과 오버 엔지니어링을 방지함 [36].
    *   **구현:** 피어 리뷰 및 자동화된 테스트를 통해 로직 오류와 스타일 위반을 식별함.
    *   **검증:** CI/CD 파이프라인과 통합된 자동 분석을 통해 최종 품질을 보증함 [12].
*   **SSDLC와 DevSecOps:**
    *   **보안 내재화:** SDLC의 모든 단계(요구사항 분석~운영)에 보안 위협 모델링, 보안 코드 리뷰, 취약점 스캔 등을 통합함 [1].
    *   **DevSecOps:** 개발(Dev), 보안(Sec), 운영(Ops)의 경계를 허물고 자동화를 통해 보안 거버넌스를 실시간으로 강제함.
*   **시프트 레프트(Shift-Left) 전략:** 보안 결함이 배포 후 발견될 경우 복구 비용이 기하급수적으로 증가하므로, PR/MR 단계 등 가장 초기 단계에서 보안 조치를 구현하여 리스크를 조기 차단합니다 [6, 29].
*   **품질 게이트로서의 PR 워크플로우:** 현대적 SDLC에서는 풀 리퀘스트(PR)가 공식적인 체크포인트로 기능하며, 자동화된 테스트, 정적 분석(SAST), SCA 및 피어 리뷰가 모두 완료되어야만 병합을 허용합니다 [9, 10].
*   **지속적 측정 및 최적화:** DORA 지표 등을 통해 리뷰 대기 시간, 변경 리드 타임, 결함 밀도 등을 정량적으로 측정하여 프로세스 병목을 지속적으로 개선합니다 [15, 32].

## ⚖️ Trade-offs & Caveats
*   **철저함 vs 개발 속도(Velocity):** 너무 엄격한 리뷰와 보안 게이트는 배포 주기를 늦추는 병목이 될 수 있습니다 [21]. 위험 기반(Risk-based) 접근법을 통해 중요 모듈에 검토 리소스를 집중해야 합니다.
*   **과도한 표준의 역효과:** 100% 테스트 커버리지 강제 등 비합리적인 기준은 개발자의 비생산적인 업무를 양산하고 생산성을 저해할 수 있습니다 [18, 19].
*   **자동화 도구의 한계:** SAST나 AI 리뷰 비서는 빠르지만 비즈니스 맥락을 이해하지 못하므로, 도구에만 의존할 경우 논리적 보안 결함이나 환각된 API 유입을 놓칠 위험이 있습니다 [26, 28].

## 🔗 Knowledge Connections

### Related Concepts
*   **Shift-Left Security**: 보안 테스트를 SDLC의 가장 좌측(초기 단계)으로 옮겨 수정 비용을 절감하는 핵심 전략입니다.
*   **[[CI-CD Pipeline|CI/CD Pipeline]]**: 빌드, 테스트, 보안 스캔을 자동화하여 SDLC의 안정성과 속도를 보장하는 물리적 인프라입니다.
*   **[[DORA-Metrics|DORA Metrics]]**: 팀의 소프트웨어 전달 성능을 측정하여 SDLC의 효율성을 평가하는 지표 체계입니다.
*   **[[SAST (Static Application Security Testing)|SAST (Static Application Security Testing]]**: SDLC 구현 및 검증 단계에서 소스 코드 보안을 자동 스캔하는 기술입니다.

### Deeper Research Questions
*   '시프트 레프트' 보안 모델에서 개발자와 보안 전문가 간의 코드 리뷰 책임 소재와 최종 승인 권한(Merge Authority)은 어떻게 정의하는 것이 최적인가?
*   비즈니스 요구사항이 급격히 변하는 애자일(Agile) 환경에서 엄격한 SSDLC 가이드라인과 빠른 배포(Small Batches) 사이의 충돌을 어떻게 조율하는가?
*   대규모 MSA 환경에서 여러 저장소(Multi-repo)에 걸쳐 있는 기능 변경의 일관성을 SSDLC 파이프라인 내에서 어떻게 보장하고 리뷰하는가?
*   AI가 생성한 코드가 증가함에 따라 SSDLC의 각 단계(설계, 구현, 테스트)에서 AI 특유의 위험(환각 등)을 걸러내기 위한 전용 체크포인트는 무엇인가?
*   코드 리뷰 대기 시간이 DORA 지표에 미치는 영향을 최소화하기 위해 비동기 협업 문화를 SDLC 내에 어떻게 정착시킬 것인가?

### Practical Application Contexts
*   **Implementation:** 200~400 라인 이하의 작은 PR을 생성하고 테스트 코드를 포함하여 리뷰어가 신속하게 SDLC 품질 게이트를 통과시킬 수 있도록 돕습니다 [55].
*   **System Design:** 아키텍처 리뷰를 통해 설계 단계부터 확장성, DI, SOLID 원칙 등 시스템 무결성을 논의하고 ADR로 기록합니다 [56].
*   **Operation / Maintenance:** CI/CD 도구를 활용해 병합 전 보안 스캔을 자동 통과하게 함으로써 운영 환경의 장애 및 기술 부채를 방지합니다 [57].
*   **Learning Path:** PR 템플릿과 Conventional Comments를 활용한 피드백 루프를 통해 팀의 보안 표준과 SDLC 워크플로우를 체화합니다.
*   **My Project Relevance:** 조직의 리뷰 프로세스를 체계화하고 자동화 검사를 파이프라인에 통합하여 품질 향상과 배포 속도 증가를 동시에 달성합니다.

### Adjacent Topics
*   **[[Agile Development|Agile Development]]**: 스크럼, 칸반 등 반복적 개발 방법론 내에서 SDLC가 어떻게 유연하게 운영되는지 확장하여 탐구합니다.
*   **Software Supply Chain Security**: 소스 코드를 넘어 패키지 매니저, 빌드 도구 등 SDLC 인프라 전체의 보안을 강화하는 전략입니다.

---
*Last updated: 2026-05-02*
