--- id: P-REINFORCE-WIKI-AD1765DD category: "10_Wiki/πŸ’‘ Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['monolithic-architecture-pattern', 'monolithic-architecture-pattern', 'microservices-architecture-pattern', 'modular-monolith', 'strangler-fig-pattern', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Monolithic Architecture Pattern]] ## πŸ“Œ Brief Summary [[Monolithic Architecture Pattern]]은 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, 데이터 μ ‘κ·Ό 계측 λ“± μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λͺ¨λ“  ꡬ성 μš”μ†Œκ°€ 단일 μ½”λ“œλ² μ΄μŠ€λ‘œ κΈ΄λ°€ν•˜κ²Œ κ²°ν•©λ˜μ–΄ ν•˜λ‚˜μ˜ μœ λ‹›μœΌλ‘œ μ‹€ν–‰λ˜λŠ” 전톡적인 μ†Œν”„νŠΈμ›¨μ–΄ 섀계 νŒ¨ν„΄μž…λ‹ˆλ‹€ [1, 2]. ν”„λ‘œμ νŠΈ 초기 λ‹¨κ³„μ—μ„œλŠ” μ•„ν‚€ν…μ²˜κ°€ λ‹¨μˆœν•˜μ—¬ 개발, ν…ŒμŠ€νŠΈ, 그리고 배포가 λΉ λ₯΄κ³  μš©μ΄ν•˜λ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€ [3-5]. ν•˜μ§€λ§Œ μ‹œμŠ€ν…œκ³Ό 쑰직의 규λͺ¨κ°€ 컀짐에 따라 νŠΉμ • μ»΄ν¬λ„ŒνŠΈμ˜ ν™•μž₯이 μ–΄λ ΅κ³ , μœ μ§€λ³΄μˆ˜ 및 μ—…λ°μ΄νŠΈ κ³Όμ •μ—μ„œ 병λͺ© ν˜„μƒμ΄ λ°œμƒν•˜κΈ° μ‰¬μš΄ ν•œκ³„κ°€ μžˆμŠ΅λ‹ˆλ‹€ [3, 4, 6]. ## πŸ“– Core Content * **단일 톡합 ꡬ쑰 (Unified Codebase & Tightly Coupled)** λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ΅¬λ™ν•˜λŠ” λͺ¨λ“  κΈ°λŠ₯(ν”„λ‘ νŠΈμ—”λ“œ, λ°±μ—”λ“œ, λ°μ΄ν„°λ² μ΄μŠ€ 처리 λ“±)이 단일 μ½”λ“œλ² μ΄μŠ€ μ•ˆμ— κ°•ν•˜κ²Œ κ²°ν•©(Tightly Coupled)λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€ [1, 2, 7]. 일반적으둜 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ‘œ μ‹€ν–‰λ˜λ©° 쀑앙 μ§‘μ€‘μ‹μœΌλ‘œ 배포 및 κ΄€λ¦¬λ©λ‹ˆλ‹€ [2, 7]. * **초기 개발 및 ν”„λ‘œν† νƒ€μ΄ν•‘μ— μ΅œμ ν™”** 이 νŒ¨ν„΄μ€ μš”κ΅¬μ‚¬ν•­μ΄ λͺ…ν™•ν•˜κ³  λ‹¨μˆœν•˜κ±°λ‚˜, μ†Œκ·œλͺ¨ νŒ€μ΄ 단기간에 MVP(Minimum Viable Product)λ₯Ό κ°œλ°œν•  λ•Œ 맀우 νš¨κ³Όμ μž…λ‹ˆλ‹€ [5, 8, 9]. λ„€νŠΈμ›Œν¬ μ§€μ—°μ΄λ‚˜ μ„œλΉ„μŠ€ κ°„ λ³΅μž‘ν•œ 톡신을 κ³ λ €ν•  ν•„μš”κ°€ μ—†μ–΄ 개발 속도가 λΉ λ₯΄κ³ , μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 전체에 λŒ€ν•œ ν…ŒμŠ€νŠΈ 및 디버깅을 λ‹¨μˆœν•˜κ²Œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [4]. * **직접 톡신을 ν†΅ν•œ μ„±λŠ₯적 이점** λΆ„μ‚° μ‹œμŠ€ν…œ(예: λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€)κ³Ό 달리 μ»΄ν¬λ„ŒνŠΈλ“€μ΄ λ„€νŠΈμ›Œν¬λ₯Ό κ±°μΉ˜μ§€ μ•Šκ³  μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ©”λͺ¨λ¦¬ λ‚΄λΆ€μ—μ„œ 직접 호좜되고 μƒν˜Έμž‘μš©ν•˜λ―€λ‘œ, 톡신 μ˜€λ²„ν—€λ“œμ™€ μ§€μ—°(Latency)이 적어 효율적인 μ„±λŠ₯을 λ°œνœ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [4, 10]. * **λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œμ˜ 보편적인 좜발점** 세계적인 기술 기업인 Amazon, Netflix, Uber 등도 μ΄ˆκΈ°μ—λŠ” λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜λ‘œ μ„œλΉ„μŠ€λ₯Ό κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€ [8, 11-13]. 이듀은 이후 폭발적인 νŠΈλž˜ν”½κ³Ό μ‚¬μš©μž 증가에 λ”°λ₯Έ ν™•μž₯μ„±μ˜ ν•œκ³„μ— λΆ€λ”ͺνžˆλ©΄μ„œ, μ μ§„μ μœΌλ‘œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ™€ 같은 λΆ„μ‚° μ•„ν‚€ν…μ²˜λ‘œ μ§„ν™”ν•΄ λ‚˜κ°”μŠ΅λ‹ˆλ‹€ [8, 11, 13]. ## βš–οΈ Trade-offs & Caveats * **ν™•μž₯μ„±μ˜ μ œμ•½ (Scalability Limitations)** μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ νŠΉμ • κΈ°λŠ₯(예: 결제 처리)μ—λ§Œ νŠΈλž˜ν”½μ΄ μ§‘μ€‘λ˜λ”λΌλ„, ν•΄λ‹Ή κΈ°λŠ₯만 λ…λ¦½μ μœΌλ‘œ ν™•μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λŒ€μ‹  μ‹œμŠ€ν…œ 전체λ₯Ό λ™μΌν•˜κ²Œ 볡제(μˆ˜ν‰μ  ν™•μž₯)ν•˜κ±°λ‚˜ 더 κ³ μ‚¬μ–‘μ˜ ν•˜λ“œμ›¨μ–΄λ‘œ ꡐ체(수직적 ν™•μž₯)ν•΄μ•Ό ν•˜λ―€λ‘œ μžμ› ν™œμš©μ΄ λΉ„νš¨μœ¨μ μž…λ‹ˆλ‹€ [4, 6, 14, 15]. * **배포 병λͺ© 및 μœ„ν—˜μ„± (Deployment Bottlenecks)** μ½”λ“œμ˜ μ•„μ£Ό μž‘μ€ λΆ€λΆ„λ§Œ μˆ˜μ •ν•˜λ”λΌλ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 전체λ₯Ό λ‹€μ‹œ λΉŒλ“œν•˜κ³  배포해야 ν•©λ‹ˆλ‹€ [4, 6, 15, 16]. μ΄λŠ” 배포 μ£ΌκΈ°λ₯Ό μ§€μ—°μ‹œν‚€λ©°, 배포 쀑 λ°œμƒν•  수 μžˆλŠ” λ‹€μš΄νƒ€μž„ 및 μž₯μ• μ˜ μœ„ν—˜λ„(Blast Radius)λ₯Ό λ†’μž…λ‹ˆλ‹€ [6, 15]. * **단일 μž₯애점 (Single Point of Failure)** λͺ¨λ“  ꡬ성 μš”μ†Œκ°€ ν•˜λ‚˜μ˜ μ‹€ν–‰ λ‹¨μœ„λ‘œ λ¬Άμ—¬ 있기 λ•Œλ¬Έμ—, νŠΉμ • λͺ¨λ“ˆμ—μ„œ λ°œμƒν•œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ‚˜ 였λ₯˜κ°€ 전체 μ‹œμŠ€ν…œμ˜ μž₯μ• λ‚˜ λΆ•κ΄΄λ‘œ μ΄μ–΄μ§ˆ μœ„ν—˜μ΄ 맀우 λ†’μŠ΅λ‹ˆλ‹€ [4]. * **μœ μ§€λ³΄μˆ˜μ˜ λ‚œμ΄λ„μ™€ 기술적 쒅속성** μ½”λ“œκ°€ 점차 λ°©λŒ€ν•΄μ§μ— 따라 μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ μƒν˜Έ μ˜μ‘΄μ„±μ΄ μ–½ν˜€ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κ³  μˆ˜μ •ν•˜κΈ°κ°€ 맀우 μ–΄λ €μ›Œμ§‘λ‹ˆλ‹€(μœ μ§€λ³΄μˆ˜ λ‚œμ΄λ„ 증가) [4, 6, 15]. λ˜ν•œ 전체 μ‹œμŠ€ν…œμ΄ 단일 기술 μŠ€νƒμ— μ’…μ†λ˜κΈ° λ•Œλ¬Έμ—, μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‚˜ ν”„λ ˆμž„μ›Œν¬λ₯Ό μœ μ—°ν•˜κ²Œ λ„μž…ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€ [6]. ## πŸ”— Knowledge Connections ### Related Concepts #### [관계 μœ ν˜• A: λŒ€μ•ˆ 및 μ§„ν™” μ•„ν‚€ν…μ²˜] - [[Microservices Architecture Pattern]] - μ—°κ²° 이유: λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜μ˜ ν™•μž₯μ„± 및 μœ μ—°μ„± ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ κ±°λŒ€ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘κ³  독립적인 μ„œλΉ„μŠ€λ“€λ‘œ λΆ„ν• ν•œ λŒ€ν‘œμ μΈ λΆ„μ‚° μ•„ν‚€ν…μ²˜μž…λ‹ˆλ‹€ [7, 17]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 단일 ν”„λ‘œμ„ΈμŠ€ 기반(λͺ¨λ†€λ¦¬μ‹)κ³Ό λ„€νŠΈμ›Œν¬ 기반 λΆ„μ‚° μ‹œμŠ€ν…œ(λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€) κ°„μ˜ 결합도(Coupling), μž₯μ•  격리(Fault Tolerance), 독립적 배포 λ°©μ‹μ˜ 근본적 차이와 νŠΈλ ˆμ΄λ“œμ˜€ν”„λ₯Ό 비ꡐ 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€ [14, 18]. - [[Modular Monolith]] - μ—°κ²° 이유: λͺ¨λ†€λ¦¬μ‹μ˜ 배포 λ‹¨μˆœμ„±μ„ μœ μ§€ν•˜λ©΄μ„œλ„ λ‚΄λΆ€μ μœΌλ‘œ μ—„κ²©ν•œ 도메인 경계λ₯Ό λΆ„λ¦¬ν•˜μ—¬ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€μ˜ μž₯점을 μ·¨ν•˜λ €λŠ” ν˜„λŒ€μ  섀계 λ°©μ‹μž…λ‹ˆλ‹€ [19, 20]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λΆ„μ‚° μ‹œμŠ€ν…œμ˜ λ„€νŠΈμ›Œν¬ μ˜€λ²„ν—€λ“œλ‚˜ λ³΅μž‘μ„±μ„ ν”Όν•˜λ©΄μ„œλ„ μŠ€νŒŒκ²Œν‹° μ½”λ“œλ₯Ό λ°©μ§€ν•˜κ³  μ‹œμŠ€ν…œμ„ κΉ”λ”ν•˜κ²Œ ꡬ쑰화(Modularity)ν•˜λŠ” 방법을 ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [20, 21]. #### [관계 μœ ν˜• B: λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ νŒ¨ν„΄ 및 μ œμ•½ μš”μ†Œ] - [[Strangler Fig Pattern]] - μ—°κ²° 이유: λ ˆκ±°μ‹œ λͺ¨λ†€λ¦¬μ‹ μ‹œμŠ€ν…œμ„ μ„œλ²„λ¦¬μŠ€λ‚˜ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ 기반으둜 μ μ§„μ μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•  λ•Œ κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μ „λž΅μ  λ””μžμΈ νŒ¨ν„΄μž…λ‹ˆλ‹€ [22]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μž‘λ™ 쀑인 κ±°λŒ€ λͺ¨λ†€λ¦¬μ‹ μ½”λ“œλ² μ΄μŠ€λ₯Ό 쀑단 없이 μ•ˆμ „ν•˜κ²Œ λΆ„λ¦¬ν•˜κ³  μƒˆλ‘œμš΄ ꡬ쑰둜 μ „ν™˜ν•˜λŠ” 싀무적 접근법을 배울 수 μžˆμŠ΅λ‹ˆλ‹€ [22]. ### Deeper Research Questions - λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜μ—μ„œ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‘œ μ„±κ³΅μ μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜κΈ° μœ„ν•΄ 'Strangler Fig Pattern'을 ꡬ체적으둜 μ–΄λ–»κ²Œ μ μš©ν•˜λ©°, μ΄λ•Œμ˜ μœ„ν—˜ μš”μ†ŒλŠ” 무엇인가? - λͺ¨λ†€λ¦¬μ‹ μ‹œμŠ€ν…œμ˜ μ„±λŠ₯κ³Ό ν™•μž₯μ„± ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄, 전체 μ‹œμŠ€ν…œμ„ λœ―μ–΄κ³ μΉ˜μ§€ μ•Šκ³  μ μš©ν•  수 μžˆλŠ” μ΅œμ ν™” 기법(예: 뢀뢄적 λ‘œλ“œ λ°ΈλŸ°μ‹±, μŠ€μΌ€μΌμ—… λ“±)은 무엇인가? - 단일 μ½”λ“œλ² μ΄μŠ€ κ΅¬μ‘°μ—μ„œ μƒν˜Έ μ˜μ‘΄μ„±μ΄ μ–½ν˜€ μŠ€νŒŒκ²Œν‹° μ½”λ“œκ°€ λ˜λŠ” 기술 뢀채(Technical Debt)λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ 'λͺ¨λ“ˆν˜• λͺ¨λ†€λ¦¬μŠ€(Modular Monolith)'의 경계 뢄리 원칙을 μ–΄λ–»κ²Œ μ μš©ν•  수 μžˆλŠ”κ°€? - λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€κ°€ μ΄ˆλž˜ν•˜λŠ” λΆ„μ‚° μ‹œμŠ€ν…œμ˜ λ³΅μž‘μ„±(λ„€νŠΈμ›Œν¬ μ§€μ—°, λΆ„μ‚° νŠΈλžœμž­μ…˜ λ“±)κ³Ό λΉ„κ΅ν–ˆμ„ λ•Œ, λͺ¨λ†€λ¦¬μ‹ μ•„ν‚€ν…μ²˜μ˜ 직접 톡신이 μ œκ³΅ν•˜λŠ” μ„±λŠ₯적 이점은 μ–΄λŠ μ •λ„μ˜ 경제적, 기술적 κ°€μΉ˜λ₯Ό μ§€λ‹ˆλŠ”κ°€? - μŠ€νƒ€νŠΈμ—…μ΄ 초기 MVPλ₯Ό λͺ¨λ†€λ¦¬μ‹μœΌλ‘œ κ°œλ°œν•œ ν›„ μ„œλΉ„μŠ€κ°€ κΈ‰μ„±μž₯ν•  λ•Œ, μ•„ν‚€ν…μ²˜λ₯Ό λΆ„μ‚°ν˜•μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•˜λŠ” 졜적의 μž„κ³„μ (Tipping Point)은 μ–΄λ–€ μ§€ν‘œλ₯Ό 톡해 νŒλ‹¨ν•  수 μžˆλŠ”κ°€? ### Practical Application Contexts - **Implementation:** μ†Œκ·œλͺ¨ 개발 νŒ€μ΄ λ³΅μž‘ν•œ 인프라 관리 없이 초기 아이디어λ₯Ό κ²€μ¦ν•˜κΈ° μœ„ν•΄ MVP(Minimum Viable Product)λ‚˜ ν”„λ‘œν† νƒ€μž…μ„ λΉ λ₯΄κ²Œ ꡬ좕할 λ•Œ κ°€μž₯ μ ν•©ν•œ κ΅¬μ‘°μž…λ‹ˆλ‹€ [5, 9]. - **System Design:** μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€, λΉ„μ¦ˆλ‹ˆμŠ€ 처리 둜직, λ°μ΄ν„°λ² μ΄μŠ€ μ ‘κ·Ό λ“±μ˜ λͺ¨λ“  계측이 ν•˜λ‚˜μ˜ μ½”λ“œλ² μ΄μŠ€ μ•ˆμ—μ„œ 직접 ν˜ΈμΆœμ„ 주고받도둝 μ„€κ³„λ©λ‹ˆλ‹€ [2]. - **Operation / Maintenance:** κΈ°λŠ₯ μΆ”κ°€λ‚˜ μž‘μ€ 버그 패치λ₯Ό μ§„ν–‰ν•  λ•Œλ§ˆλ‹€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 전체λ₯Ό λ‹€μ‹œ λΉŒλ“œν•˜κ³  배포해야 ν•˜λ―€λ‘œ, 였λ₯˜λ₯Ό 미리 차단할 수 μžˆλŠ” 톡합 ν…ŒμŠ€νŠΈ νŒŒμ΄ν”„λΌμΈ 관리가 맀우 μ€‘μš”ν•©λ‹ˆλ‹€ [6]. - **Learning Path:** λΆ„μ‚° μ•„ν‚€ν…μ²˜μ˜ λ³΅μž‘μ„±μ„ 배우기 μ „, μ†Œν”„νŠΈμ›¨μ–΄μ˜ 기본적인 λ ˆμ΄μ–΄(ν”„λ‘ νŠΈμ—”λ“œ, λ°±μ—”λ“œ, DB)κ°€ μ–΄λ–»κ²Œ ν†΅ν•©μ μœΌλ‘œ λ™μž‘ν•˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ ν•™μŠ΅μ˜ 첫 κ΄€λ¬ΈμœΌλ‘œ ν™œμš©λ©λ‹ˆλ‹€. - **My Project Relevance:** λΉ λ₯Έ μ‹œμž₯ μΆœμ‹œκ°€ μš”κ΅¬λ˜κ±°λ‚˜ κΈ°λŠ₯의 λ³΅μž‘λ„κ°€ λ†’μ§€ μ•Šμ€ ν”„λ‘œμ νŠΈμ—μ„œ, 배포 인프라 및 데브옡슀(DevOps)의 뢀담을 μ΅œμ†Œν™”ν•˜κ³ μž ν•  λ•Œ μ΄μƒμ μœΌλ‘œ μ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ### Adjacent Topics - [[Service-Oriented Architecture (SOA)]] - ν™•μž₯ λ°©ν–₯: λͺ¨λ†€λ¦¬μ‹ ꡬ쑰의 ν•œκ³„λ₯Ό μœ μ—°ν•˜κ²Œ λ§Œλ“€κΈ° μœ„ν•΄ μ‹œμŠ€ν…œμ„ κ΅΅μ§ν•œ μ„œλΉ„μŠ€ λ‹¨μœ„λ‘œ λΆ„λ¦¬ν–ˆλ˜, λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ΄μ „μ˜ 과도기적이고 전톡적인 λΆ„μ‚° μ•„ν‚€ν…μ²˜ ν˜•νƒœλ₯Ό νƒκ΅¬ν•©λ‹ˆλ‹€ [23, 24]. - [[Technical Debt]] - ν™•μž₯ λ°©ν–₯: λͺ¨λ†€λ¦¬μ‹ μ‹œμŠ€ν…œμ΄ 체계적인 경계 없이 κ±°λŒ€ν•΄μ§€λ©° 섀계가 λ¬΄λ„ˆμ§ˆ λ•Œ(Big Ball of Mud) μΆ•μ λ˜λŠ” 기술 λΆ€μ±„μ˜ 원인과, 이것이 쑰직의 생산성 및 μœ μ§€λ³΄μˆ˜ λΉ„μš©μ— λ―ΈμΉ˜λŠ” λ§‰λŒ€ν•œ 경제적 νŒŒκΈ‰λ ₯을 λΆ„μ„ν•©λ‹ˆλ‹€ [25-27]. --- *Last updated: 2026-05-02*