--- id: P-REINFORCE-WIKI-B588AC8B category: "10_Wiki/πŸ’‘ Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['big-design-up-front', 'agile-software-development', 'dsdm', 'μ†Œν”„νŠΈμ›¨μ–΄-μ•„ν‚€ν…μ²˜(software-architecture)', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Big Design Up Front]] ## πŸ“Œ Brief Summary **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** 제곡된 μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ 'Big Design Up Front'λŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό μˆ˜λ¦½ν•  λ•Œ 개발 μ „ 사전에 λ„ˆλ¬΄ κ³Όλ„ν•œ 섀계가 μ΄λ£¨μ–΄μ§€λŠ” ν˜„μƒ λ‚΄μ§€ 접근법을 λœ»ν•˜λ©°, 주둜 μ• μžμΌ(Agile) μ†Œν”„νŠΈμ›¨μ–΄ 개발 μ§€μ§€μžλ“€μ— μ˜ν•΄ μš°λ €λ˜λŠ” κ°œλ…μž…λ‹ˆλ‹€ [1]. ## πŸ“– Core Content **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** μ£Όμ–΄μ§„ μ†ŒμŠ€μ—μ„œ μΆ”μΆœν•  수 μžˆλŠ” ꡬ체적인 사싀은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. * **사전 섀계에 λŒ€ν•œ 우렀**: μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 수립 과정이 자칫 λ„ˆλ¬΄ λ§Žμ€ 사전 섀계(too much big design up front)λ₯Ό μ΄ˆλž˜ν•  수 μžˆλ‹€λŠ” 점은 μ• μžμΌ μ†Œν”„νŠΈμ›¨μ–΄ 개발 μ§€μ§€μžλ“€ μ‚¬μ΄μ—μ„œ μ£Όμš”ν•œ 우렀 μ‚¬ν•­μœΌλ‘œ μ œκΈ°λ©λ‹ˆλ‹€ [1]. * **섀계와 λ―Όμ²©μ„±μ˜ κ· ν˜•(Balance)**: 사전 섀계(up-front design)와 μ• μžμΌμ˜ 민첩성(agility) μ‚¬μ΄μ˜ νŠΈλ ˆμ΄λ“œμ˜€ν”„(Trade-offs)λ₯Ό λ§žμΆ”κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ 방법둠이 κ³ μ•ˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€ [1]. * **DSDM λ°©λ²•λ‘ μ˜ λŒ€μ•ˆμ  μ ‘κ·Ό**: λŒ€ν‘œμ μΈ μ• μžμΌ 방법둠 쀑 ν•˜λ‚˜μΈ DSDM은 μ§€λ‚˜μΉœ 사전 섀계λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ 'νŒŒμš΄λ°μ΄μ…˜(Foundations)' 단계λ₯Ό μ˜λ¬΄ν™”ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 λͺ¨λ“  것을 μ™„λ²½ν•˜κ²Œ μ„€κ³„ν•˜λŠ” λŒ€μ‹  **'λ”± ν•„μš”ν•œ 만큼의(just enough)' μ•„ν‚€ν…μ²˜ 기반만**을 λ§ˆλ ¨ν•˜λ„λ‘ μœ λ„ν•©λ‹ˆλ‹€ [1]. ## βš–οΈ Trade-offs & Caveats **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** 단, μ–ΈκΈ‰λœ λ§₯락을 톡해 λ‹€μŒμ˜ ꡬ쑰적 νŠΈλ ˆμ΄λ“œμ˜€ν”„λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. * **사전 섀계(Up-front design) vs. 민첩성(Agility)**: μ•„ν‚€ν…μ²˜λ₯Ό 사전에 λͺ¨λ‘ μ„€κ³„ν•˜λ €λŠ” 방식과 개발의 민첩성 μ‚¬μ΄μ—λŠ” λͺ…ν™•ν•œ λ°˜λŒ€ κΈ‰λΆ€(Trade-off)κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€ [1]. κ³Όλ„ν•œ Big Design Up FrontλŠ” μ• μžμΌ 개발의 μœ μ—°μ„±μ„ μ €ν•΄ν•  수 μžˆμœΌλ―€λ‘œ, DSDMκ³Ό 같은 방법둠을 λ„μž…ν•˜μ—¬ 'ν•„μš”ν•œ 만큼(just enough)'의 κΈ°μ΄ˆλ§Œμ„ μ„ ν–‰ν•˜λŠ” μ œμ•½ 및 μ ˆμΆ©μ•ˆμ΄ ν•„μˆ˜μ μœΌλ‘œ μš”κ΅¬λ©λ‹ˆλ‹€ [1]. ## πŸ”— Knowledge Connections ### Related Concepts **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** (제곡된 정보λ₯Ό λ°”νƒ•μœΌλ‘œ ν•œμ •μ μœΌλ‘œ λ„μΆœν•¨) #### [섀계 방법둠 및 νŒ¨λŸ¬λ‹€μž„] - **[[Agile Software Development]]** - μ—°κ²° 이유: μ• μžμΌ 개발 μ§€μ§€μžλ“€μ΄ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ 섀계 μ‹œ 'Big Design Up Front'κ°€ μ΄ˆλž˜ν•˜λŠ” λΉ„νš¨μœ¨κ³Ό 경직성에 λŒ€ν•΄ κ°€μž₯ 큰 우렀λ₯Ό ν‘œλͺ…ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€ [1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 초기 사전 μ„€κ³„μ˜ μ΅œμ†Œν™”μ™€ κΈ°λ―Όν•œ 개발 ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ 근본적인 좩돌 지점 및 ν•΄κ²° 원리. - **[[DSDM]]** - μ—°κ²° 이유: 초기 섀계와 λ―Όμ²©μ„±μ˜ κ· ν˜•μ„ λ§žμΆ”κΈ° μœ„ν•΄ κ³Όλ„ν•œ 사전 섀계λ₯Ό ν”Όν•˜κ³  'just enough' μˆ˜μ€€μ˜ μ•„ν‚€ν…μ²˜ νŒŒμš΄λ°μ΄μ…˜μ„ 닀지도둝 ν•˜λŠ” ꡬ체적인 방법둠이기 λ•Œλ¬Έμž…λ‹ˆλ‹€ [1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: Big Design Up Front의 단점을 κ·Ήλ³΅ν•˜κΈ° μœ„ν•œ 싀무적인 μ•„ν‚€ν…μ²˜ ꡬ좕 단계와 ν”„λ ˆμž„μ›Œν¬. ### Deeper Research Questions **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** (μ•„λž˜λŠ” μ£Όμ–΄μ§„ λ‹¨νŽΈμ  정보λ₯Ό 기반으둜 후속 연ꡬλ₯Ό μœ„ν•΄ λ„μΆœν•œ 심측 μ§ˆλ¬Έμž…λ‹ˆλ‹€.) - Big Design Up Frontλ₯Ό ν”Όν•˜λ©΄μ„œλ„ μ•ˆμ •μ μ΄κ³  ν™•μž₯ κ°€λŠ₯ν•œ μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ 'μΆ©λΆ„ν•œ(Just enough)' μ„€κ³„μ˜ μ •λŸ‰μ μ΄κ³  ꡬ체적인 기쀀은 무엇인가? - μ• μžμΌ ν™˜κ²½μ—μ„œ Big Design Up Frontκ°€ μ΄ˆλž˜ν•  수 μžˆλŠ” ꡬ체적인 λΉ„μš© 낭비와 ν”„λ‘œμ νŠΈ μ§€μ—°μ˜ μ‹€μ œ μ‚¬λ‘€λŠ” 무엇인가? - DSDM 외에 초기 섀계와 λ―Όμ²©μ„±μ˜ κ· ν˜•μ„ λ§žμΆ”κΈ° μœ„ν•΄, 진화적 μ•„ν‚€ν…μ²˜(Evolutionary Architecture) λ“± λ‹€λ₯Έ ν˜„λŒ€μ  접근법은 μ–΄λ–€ μ „λž΅μ„ μ·¨ν•˜κ³  μžˆλŠ”κ°€? - 사전에 λ„ˆλ¬΄ λ§Žμ€ 섀계λ₯Ό ν•˜λŠ” 것(Big Design Up Front)κ³Ό, λ„ˆλ¬΄ 적은 섀계λ₯Ό ν•˜λŠ” 것(Under-design) μ‚¬μ΄μ˜ 경계λ₯Ό μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…νŠΈλŠ” μ–΄λ–»κ²Œ ν‰κ°€ν•˜κ³  ν†΅μ œν•˜λŠ”κ°€? - μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ˜ 선택을 λ²ˆλ³΅ν•˜κΈ° μ–΄λ €μš΄ νŠΉμ„±μƒ, Big Design Up Frontκ°€ 였히렀 μ• μžμΌ 방식보닀 μœ λ¦¬ν•˜κ²Œ μž‘μš©ν•˜λŠ” νŠΉμ • μ‚°μ—…κ΅°(예: 우주/항곡, 금육 규제 λ“±)이 μ‘΄μž¬ν•˜λŠ”κ°€? ### Practical Application Contexts **μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€.** (제곡된 정보λ₯Ό 기반으둜 적용 λ§₯락을 λ„μΆœν•¨) - **Implementation:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **System Design:** μ‹œμŠ€ν…œμ„ 섀계할 λ•Œ λͺ¨λ“  ꡬ쑰와 흐름을 사전에 ν™•μ •ν•˜λ €λŠ” Big Design Up Front 방식 λŒ€μ‹ , 전체 μ‹œμŠ€ν…œμ˜ 기본이 λ˜λŠ” 'νŒŒμš΄λ°μ΄μ…˜(Foundations)'λ§Œμ„ μ„ μ œμ μœΌλ‘œ κ΅¬μΆ•ν•˜κ³  이후 λ―Όμ²©ν•˜κ²Œ λ°œμ „μ‹œμΌœ λ‚˜κ°€λŠ” μœ μ—°ν•œ 섀계 μ „λž΅μ„ 채택할 수 μžˆμŠ΅λ‹ˆλ‹€ [1]. - **Operation / Maintenance:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **Learning Path:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. - **My Project Relevance:** νŒ€ ν”„λ‘œμ νŠΈμ— μ• μžμΌ 방법둠을 λ„μž…ν•  경우, ν”„λ‘œμ νŠΈ 초기 μ•„ν‚€ν…μ²˜ 섀계에 μ–΄λŠ μ •λ„μ˜ μ‹œκ°„μ„ νˆ¬μžν•΄μ•Ό ν• μ§€(사전 섀계와 민첩성 κ°„μ˜ κ· ν˜•μ  탐색)λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•œ μ „λž΅μ  κΈ°μ€€μœΌλ‘œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1]. ### Adjacent Topics - **[[μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜(Software Architecture)]]** - ν™•μž₯ λ°©ν–₯: Big Design Up Front λ°©μ‹μ˜ μ£Όμš” λŒ€μƒμ΄ λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ˜ κΈ°λ³Έ ꡬ쑰 및 사전에 μ •μ˜λ˜μ–΄μ•Ό ν•˜λŠ” μ•„ν‚€ν…μ²˜μ˜ 속성듀(λΉ„κΈ°λŠ₯적 μš”κ΅¬μ‚¬ν•­, μ»΄ν¬λ„ŒνŠΈ κ°„ 관계 λ“±)에 λŒ€ν•œ 포괄적인 연ꡬ [1-3]. --- *Last updated: 2026-05-02*