--- id: P-REINFORCE-WIKI-17389B8F category: "10_Wiki/πŸ’‘ Topics/01_Process_Methodology" confidence_score: 0.95 tags: ['software-development-life-cycle-(sdlc)', 'μ†Œν”„νŠΈμ›¨μ–΄-μ•„ν‚€ν…μ²˜-νŒ¨ν„΄-(software-architecture-patterns)', 'μ•„ν‚€ν…μ²˜-침식-(architecture-erosion)', '기술-뢀채-(technical-debt)', 'μ• μžμΌ-μ†Œν”„νŠΈμ›¨μ–΄-개발-(agile-software-development)', 'process-methodology'] last_reinforced: 2026-05-02 --- # [[Software Development Life Cycle (SDLC)]] ## πŸ“Œ Brief Summary μ†Œν”„νŠΈμ›¨μ–΄ 개발 생λͺ…μ£ΌκΈ°(SDLC)λŠ” κ³„νš, 뢄석, 섀계, κ΅¬ν˜„, ν…ŒμŠ€νŠΈ, μœ μ§€λ³΄μˆ˜μ— 이λ₯΄λŠ” μ†Œν”„νŠΈμ›¨μ–΄ 개발의 전체 과정을 μ˜λ―Έν•œλ‹€ [1]. μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ˜ 선택은 SDLC의 λͺ¨λ“  단계에 μ§€λŒ€ν•œ 영ν–₯을 미치며, μ‹œμŠ€ν…œμ˜ μœ μ§€λ³΄μˆ˜μ„±, ν™•μž₯μ„±, μ•ˆμ •μ„± 및 λ³΄μ•ˆμ„ κ²°μ •μ§“λŠ” 핡심 μš”μ†Œλ‘œ μž‘μš©ν•œλ‹€ [1, 2]. μ μ ˆν•œ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ SDLC μ „λ°˜μ— 걸쳐 νš¨μœ¨μ„±, 예츑 κ°€λŠ₯μ„±, μž¬μ‚¬μš©μ„±μ„ λ„μž…ν•˜λŠ” μ „λž΅μ  κ°€μ΄λ“œλΌμΈ 역할을 ν•œλ‹€ [3]. ## πŸ“– Core λŒ€Content μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ SDLC의 각 λ‹¨κ³„λ³„λ‘œ ꡬ체적이고 μ „λž΅μ μΈ 영ν–₯을 λ―ΈμΉœλ‹€ [1, 4]. * **κ³„νš 및 뢄석 단계 (Planning and Analysis):** μ•„ν‚€ν…μ²˜λŠ” μžμ› μΆ”μ •, 일정 수립, 기술 및 λ³΄μ•ˆ μš”κ΅¬μ‚¬ν•­μ„ μ •μ˜ν•˜λŠ” κΈ°μ΄ˆκ°€ λœλ‹€ [1]. 이λ₯Ό 톡해 ν”„λ‘œμ νŠΈ 초기 λ‹¨κ³„μ—μ„œ μ •ν™•ν•œ μ˜ˆμ‚° 및 μžμ› 할당이 κ°€λŠ₯ν•΄μ§„λ‹€ [1]. * **λ””μžμΈ 및 κ΅¬ν˜„ 단계 (Design and Implementation):** μ•„ν‚€ν…μ²˜λŠ” μ½”λ”© κ°€μ΄λ“œλΌμΈμ„ μ œκ³΅ν•˜μ—¬ μΌκ΄€λœ μ†”λ£¨μ…˜μ΄ κ΅¬ν˜„λ˜λ„λ‘ μœ λ„ν•œλ‹€ [1]. μ΄λŠ” 기술 뢀채(Technical Debt)λ₯Ό κ°μ†Œμ‹œν‚€κ³  개발 속도와 μ „λ°˜μ μΈ 생산성을 ν–₯μƒμ‹œν‚€λŠ” 역할을 ν•œλ‹€ [1]. * **ν…ŒμŠ€νŒ… 단계 (Testing):** λͺ¨λ“ˆν™”λœ μ•„ν‚€ν…μ²˜ ꡬ쑰λ₯Ό μ±„νƒν•˜λ©΄ κ°œλ³„ μ»΄ν¬λ„ŒνŠΈμ˜ 격리 및 독립적인 ν…ŒμŠ€νŠΈκ°€ κ°€λŠ₯ν•΄μ§„λ‹€ [1]. μ΄λŠ” 결함을 μ‹ μ†ν•˜κ²Œ μ‹λ³„ν•˜κ³  탐지할 수 있게 ν•˜μ—¬, 결과적으둜 μ œν’ˆ ν’ˆμ§ˆμ„ 보μž₯ν•˜κ³  μ• μžμΌ ν™˜κ²½μ— λŒ€ν•œ λŒ€μ‘λ ₯을 높인닀 [1]. * **μœ μ§€λ³΄μˆ˜ 단계 (Maintenance):** 체계적인 μ•„ν‚€ν…μ²˜λŠ” 변경에 λ”°λ₯Έ μ‹œμŠ€ν…œ 영ν–₯도λ₯Ό μ΅œμ†Œν™”ν•˜κ³  μ—…λ°μ΄νŠΈ νš¨μœ¨μ„±μ„ 높인닀 [1]. 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ˜ 전체 수λͺ…을 μ—°μž₯ν•˜κ³  μž₯기적인 운영 및 μœ μ§€λ³΄μˆ˜ λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆλ‹€ [1]. * **μ•„ν‚€ν…μ²˜ 침식 관리 (Architecture Erosion):** SDLCκ°€ 진행됨에 따라 초기 μ˜λ„λœ μ•„ν‚€ν…μ²˜μ™€ μ‹€μ œ κ΅¬ν˜„λœ μ‹œμŠ€ν…œ 사이에 간극이 λ°œμƒν•˜λŠ” 'μ•„ν‚€ν…μ²˜ 침식' ν˜„μƒμ΄ 각 λ‹¨κ³„μ—μ„œ 일어날 수 μžˆλ‹€ [5]. μ΄λŠ” 개발 속도와 μœ μ§€λ³΄μˆ˜ λΉ„μš©μ— μ•…μ˜ν–₯을 λ―ΈμΉ˜λ―€λ‘œ SDLC μ „λ°˜μ— 걸쳐 지속적인 관리가 ν•„μš”ν•˜λ‹€ [5]. ## βš–οΈ Trade-offs & Caveats * **기술 뢀채(Technical Debt)의 λˆ„μ :** SDLC 초기 섀계 λ‹¨κ³„μ—μ„œ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ„ 잘λͺ» μ„ νƒν•˜κ±°λ‚˜ μ΅œμ ν™”ν•˜μ§€ λͺ»ν•˜λ©΄, ν›„λ°˜λΆ€ 및 μœ μ§€λ³΄μˆ˜ λ‹¨κ³„μ—μ„œ λ§‰λŒ€ν•œ 기술 뢀채λ₯Ό μ΄ˆλž˜ν•˜κ²Œ λœλ‹€ [6]. ν•˜μœ„ μ΅œμ ν™”λœ(suboptimal) μ•„ν‚€ν…μ²˜λ‘œ μΈν•œ 기술 λΆ€μ±„λŠ” 경제적으둜 큰 손싀을 λ°œμƒμ‹œν‚¬ 수 μžˆμœΌλ―€λ‘œ 초기 결정이 맀우 μ€‘μš”ν•˜λ‹€ [6]. * **μ•„ν‚€ν…μ²˜ 침식(Architecture Erosion)에 λ”°λ₯Έ μ„±λŠ₯ μ €ν•˜:** SDLC μ „λ°˜μ— 걸쳐 정기적인 μ½”λ“œ 리뷰, μžλ™ν™”λœ ν…ŒμŠ€νŠΈ, λ¦¬νŒ©ν† λ§ λ“± 예방적/사후적 쑰치λ₯Ό μ·¨ν•˜μ§€ μ•Šμ•„ μ•„ν‚€ν…μ²˜ 침식이 λ°œμƒν•  경우, μ†Œν”„νŠΈμ›¨μ–΄ μ„±λŠ₯이 μ €ν•˜λ˜κ³  μ§„ν™” λΉ„μš©μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ μ¦κ°€ν•˜λ©° 전체 ν’ˆμ§ˆμ΄ ν•˜λ½ν•˜λŠ” λ°˜λŒ€ κΈ‰λΆ€κ°€ λ°œμƒν•œλ‹€ [7]. * **사전 섀계(Up-front Design)와 민첩성(Agility)의 상좩:** μ• μžμΌ(Agile) 기반의 SDLC ν™˜κ²½μ—μ„œλŠ” μ•„ν‚€ν…μ²˜λ₯Ό μœ„ν•΄ λ„ˆλ¬΄ λ§Žμ€ 사전 섀계λ₯Ό μ§„ν–‰ν•˜λŠ” 것과 개발의 민첩성을 μœ μ§€ν•˜λŠ” 것 μ‚¬μ΄μ—μ„œ νŠΈλ ˆμ΄λ“œμ˜€ν”„κ°€ λ°œμƒν•œλ‹€ [8]. * **규제 μ‚°μ—…μ˜ μ œμ•½:** κΈˆμœ΅μ΄λ‚˜ μ˜λ£Œμ™€ 같이 μ—„κ²©ν•œ κ·œμ œκ°€ μ μš©λ˜λŠ” μ‚°μ—…κ΅°μ—μ„œλŠ” SDLC κ³Όμ • 쀑 μ•„ν‚€ν…μ²˜κ°€ λ³΄μ•ˆ 및 ν‘œμ€€ μ€€μˆ˜λ₯Ό ν•„μˆ˜μ μœΌλ‘œ 보μž₯ν•΄μ•Ό ν•˜λ―€λ‘œ, 기술적 μœ μ—°μ„±μ΄λ‚˜ 개발 속도에 μ œμ•½μ΄ 생길 수 μžˆλ‹€ [1]. ## πŸ”— Knowledge Connections ### Related Concepts #### [섀계 및 ꡬ쑰적 기반 (Design & Structural Foundations)] - [[μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ (Software Architecture Patterns)]] - μ—°κ²° 이유: SDLC의 μ „ λ‹¨κ³„μ—μ„œ νš¨μœ¨μ„±, 예츑 κ°€λŠ₯μ„±, μž¬μ‚¬μš©μ„±μ„ μ œκ³΅ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬ 역할을 ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€ [3]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ˜¬λ°”λ₯Έ ꡬ쑰적 섀계가 μ†Œν”„νŠΈμ›¨μ–΄μ˜ 생λͺ…μ£ΌκΈ° μ „μ²΄μ˜ 생산성과 μœ μ§€λ³΄μˆ˜μ„±μ— λ―ΈμΉ˜λŠ” 근본적인 영ν–₯. - [[μ•„ν‚€ν…μ²˜ 침식 (Architecture Erosion)]] - μ—°κ²° 이유: SDLCκ°€ 진행됨에 따라 μ‹œκ°„μ΄ 지남에 따라 초기 섀계와 μ‹€μ œ κ΅¬ν˜„ κ°„μ˜ 격차가 λ²Œμ–΄μ§€λŠ” ν˜„μƒμ΄κΈ° λ•Œλ¬Έμ΄λ‹€ [5]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: SDLC λ‚΄μ—μ„œ μ•„ν‚€ν…μ²˜λ₯Ό μ§€μ†μ μœΌλ‘œ κ΄€λ¦¬ν•˜κ³  λ¦¬νŒ©ν† λ§ν•΄μ•Ό ν•˜λŠ” μ΄μœ μ™€ 기술 뢀채 λ°œμƒμ˜ 원인. #### [평가 및 뢀채 관리 (Evaluation & Debt Management)] - [[기술 뢀채 (Technical Debt)]] - μ—°κ²° 이유: SDLC 초기 λ‹¨κ³„μ˜ 잘λͺ»λœ μ•„ν‚€ν…μ²˜ κ²°μ •μ΄λ‚˜ νŒ¨ν„΄ 적용의 λΆ€μž¬κ°€ ν”„λ‘œμ νŠΈ ν›„λ°˜λΆ€μ— λ§‰λŒ€ν•œ λΉ„μš©κ³Ό μœ μ§€λ³΄μˆ˜ λΆ€λ‹΄μœΌλ‘œ λŒμ•„μ˜€κΈ° λ•Œλ¬Έμ΄λ‹€ [6]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ•„ν‚€ν…μ²˜ 섀계 λ‹¨κ³„μ—μ„œμ˜ μ‹ μ€‘ν•œ μ˜μ‚¬κ²°μ •μ΄ μž₯기적인 κ²½μ œμ„± 및 ν’ˆμ§ˆμ— λ―ΈμΉ˜λŠ” μ „λž΅μ  κ°€μΉ˜. ### Deeper Research Questions - SDLC의 초기 κ³„νš 및 뢄석 λ‹¨κ³„μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œμ™€ μ•„ν‚€ν…μ²˜ ν’ˆμ§ˆ 속성(예: ISO 25010)을 μ •λŸ‰μ μ΄κ³  κ°κ΄€μ μœΌλ‘œ μ–΄λ–»κ²Œ μ •λ ¬ν•  수 μžˆλŠ”κ°€? - μ• μžμΌ(Agile) μ†Œν”„νŠΈμ›¨μ–΄ 개발 생λͺ…μ£ΌκΈ° ν™˜κ²½μ—μ„œ κ³Όλ„ν•œ 사전 섀계(Big design up front)λ₯Ό ν”Όν•˜λ©΄μ„œλ„ μ•ˆμ •μ μΈ μ•„ν‚€ν…μ²˜ κΈ°λ°˜μ„ λ§ˆλ ¨ν•˜κΈ° μœ„ν•œ 졜적의 방법둠은 무엇인가? - μ†Œν”„νŠΈμ›¨μ–΄ 개발 생λͺ…μ£ΌκΈ° μ „λ°˜μ— 걸쳐 λ°œμƒν•˜λŠ” μ•„ν‚€ν…μ²˜ 침식(Architecture Erosion)을 쑰기에 κ°μ§€ν•˜κ³  μžλ™μœΌλ‘œ λ°©μ§€ν•˜κΈ° μœ„ν•œ 정적 μ½”λ“œ 뢄석 및 검증 λ„κ΅¬μ˜ ν™œμš© λ°©μ•ˆμ€ 무엇인가? - SDLC의 μœ μ§€λ³΄μˆ˜ λ‹¨κ³„μ—μ„œ λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜λ₯Ό λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ λ˜λŠ” μ„œλ²„λ¦¬μŠ€ μ•„ν‚€ν…μ²˜λ‘œ μ μ§„μ μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•  λ•Œ λ°œμƒν•˜λŠ” μ£Όμš” 기술적 병λͺ©κ³Ό κ·Έ 해결책은 무엇인가? - μ—„κ²©ν•œ λ³΄μ•ˆ 및 κ·œμ œκ°€ μš”κ΅¬λ˜λŠ” μ‚°μ—…(예: 금육, 의료)의 SDLC ν”„λ‘œμ„ΈμŠ€μ—μ„œ, μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ μ–΄λ–»κ²Œ ν‘œμ€€ μ€€μˆ˜μ™€ 개발 νš¨μœ¨μ„± κ°„μ˜ κ· ν˜•μ„ λ§žμΆ”λŠ”κ°€? ### Practical Application Contexts - **Implementation:** μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ΄ μ œκ³΅ν•˜λŠ” ꡬ쑰적 청사진을 λ°”νƒ•μœΌλ‘œ μ½”λ”© κ°€μ΄λ“œλΌμΈμ„ μ„€μ •ν•˜κ³ , 개발 νŒ€μ΄ μΌκ΄€λœ μ†”λ£¨μ…˜μ„ κ΅¬ν˜„ν•˜λ„λ‘ μœ λ„ν•˜μ—¬ μ „λ°˜μ μΈ 개발 생산성을 높인닀 [1, 9]. - **System Design:** ν”„λ‘œμ νŠΈ 기획 λ‹¨κ³„μ—μ„œ μ‹œμŠ€ν…œμ˜ μ‚¬μš©μž 수, νŠΈλž˜ν”½ 증가, λ³΄μ•ˆ μš”κ΅¬μ‚¬ν•­μ„ SDLC μ „λ°˜μ˜ ν™•μž₯μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ„± μΈ‘λ©΄μ—μ„œ ν‰κ°€ν•˜μ—¬ κ°€μž₯ μ ν•©ν•œ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄(예: κ³„μΈ΅ν˜•, MSA λ“±)을 μ±„νƒν•œλ‹€ [1, 2]. - **Operation / Maintenance:** μžλ™ν™”λœ μ•„ν‚€ν…μ²˜ 적합성 κ²€μ‚¬λ‚˜ 지속적인 λ¦¬νŒ©ν† λ§ ν”„λ‘œμ„ΈμŠ€λ₯Ό SDLC에 λ„μž…ν•˜μ—¬ μ‹œμŠ€ν…œ λ…Έν›„ν™” 및 μ•„ν‚€ν…μ²˜ 침식을 λ°©μ§€ν•˜κ³  μ‹œμŠ€ν…œ 수λͺ…을 μ—°μž₯ν•œλ‹€ [1, 7]. - **Learning Path:** μš”κ΅¬μ‚¬ν•­ 뢄석뢀터 섀계, κ΅¬ν˜„, ν…ŒμŠ€νŒ…, 운영으둜 μ΄μ–΄μ§€λŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ˜ 전체 흐름(SDLC) μ†μ—μ„œ μ•„ν‚€ν…μ²˜κ°€ μ–΄λ–»κ²Œ 쀑심좕 역할을 ν•˜κ³  리슀크λ₯Ό μ™„ν™”ν•˜λŠ”μ§€ ν•™μŠ΅ν•˜λŠ” 경둜둜 ν™œμš©λœλ‹€ [1, 10]. - **My Project Relevance:** ν˜„μž¬ μ§„ν–‰ 쀑인 μ•„ν‚€ν…μ²˜ νŒ¨ν„΄ κ΄€λ ¨ μ—°κ΅¬λ‚˜ ν”„λ‘œμ νŠΈμ—μ„œ, νŠΉμ • μ•„ν‚€ν…μ²˜λ₯Ό μ„ νƒν–ˆμ„ λ•Œ SDLC의 각 단계별(특히 ν…ŒμŠ€νŠΈ μš©μ΄μ„±κ³Ό μœ μ§€λ³΄μˆ˜ λΉ„μš©)둜 λ―ΈμΉ˜λŠ” νŒŒκΈ‰ 효과λ₯Ό λ…Όλ¦¬μ μœΌλ‘œ ν‰κ°€ν•˜λŠ” μ§€ν‘œλ‘œ ν™œμš©ν•  수 μžˆλ‹€. ### Adjacent Topics - [[μ• μžμΌ μ†Œν”„νŠΈμ›¨μ–΄ 개발 (Agile Software Development)]] - ν™•μž₯ λ°©ν–₯: 전톡적인 폭포수(Waterfall) λͺ¨λΈμ˜ SDLC와 λŒ€λΉ„λ˜λŠ” λ―Όμ²©ν•œ 개발 ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ•„ν‚€ν…μ²˜ 섀계가 지속적 톡합/지속적 배포(CI/CD)와 μ–΄λ–»κ²Œ μƒν˜Έμž‘μš©ν•˜λŠ”μ§€ 탐ꡬ [8]. - [[도메인 주도 섀계 (Domain-Driven Design, DDD)]] - ν™•μž₯ λ°©ν–₯: SDLC 섀계 λ‹¨κ³„μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ 도메인 지식을 μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜μ™€ μ½”λ“œ ꡬ쑰둜 μΌμΉ˜μ‹œμΌœ λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜λŠ” λͺ¨λΈλ§ λ°©λ²•λ‘ μœΌλ‘œ ν™•μž₯ [11]. --- *Last updated: 2026-05-02*