--- id: P-REINFORCE-WIKI-8F93041D category: Dev confidence_score: 0.95 tags: ['macro-architecture', 'layered-architecture', "conway's-law", 'hexagonal-architecture', 'design-patterns', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Macro-architecture]] ## πŸ“Œ Brief Summary 맀크둜 μ•„ν‚€ν…μ²˜(Macro-architecture)λŠ” μ½”λ“œλ² μ΄μŠ€μ™€ 개발 νŒ€μ˜ ꡬ쑰 λͺ¨λ‘λ₯Ό ν˜•μ„±ν•˜λŠ” κ±°μ‹œμ  μˆ˜μ€€μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜λ₯Ό μ˜λ―Έν•œλ‹€ [1]. μ΄λŠ” μ‹œμŠ€ν…œ λ‚΄λΆ€μ˜ 세뢀적인 기계적 섀계(Micro-architecture)λ³΄λ‹€λŠ” 전체 μ‹œμŠ€ν…œμ˜ μˆ˜ν‰μ  λΆ„ν•  및 쑰직 κ΅¬μ‘°μ™€μ˜ 맀핑을 닀루며, 데브옡슀(DevOps), 디렉토리 ꡬ성, 툴링과 같은 μ „λ°˜μ μΈ 인프라 및 기술 선택을 ν¬κ΄„ν•œλ‹€ [2, 3]. λŒ€ν‘œμ μΈ 예둜 ν”„λ ˆμ  ν…Œμ΄μ…˜, λΉ„μ¦ˆλ‹ˆμŠ€, λ°μ΄ν„°λ² μ΄μŠ€ κ³„μΈ΅μœΌλ‘œ λ‚˜λ‰˜λŠ” κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜(Layered Architecture)λ₯Ό λ“€ 수 μžˆλ‹€ [1]. ## πŸ“– Core Content * **쑰직 κ΅¬μ‘°μ™€μ˜ λ§€ν•‘ (Conway's Law 반영):** 맀크둜 μ•„ν‚€ν…μ²˜λŠ” μ½˜μ›¨μ΄μ˜ 법칙(Conway's Law)κ³Ό λ°€μ ‘ν•˜κ²Œ μ—°κ΄€λ˜μ–΄ μžˆλ‹€ [1]. κ±°μ‹œμ μΈ κ΄€μ μ—μ„œ κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜(Layered Architecture)의 μˆ˜ν‰μ  뢄할은 μ’…μ’… 쑰직 λ‚΄ νŠΉμ • κ·Έλ£Ήκ³Ό μ§μ ‘μ μœΌλ‘œ μΌμΉ˜ν•˜κ²Œ λœλ‹€ [1]. 예λ₯Ό λ“€μ–΄, ν”„λ ˆμ  ν…Œμ΄μ…˜ 계측은 UI/UX νŒ€(React 개발자)이 λ‹΄λ‹Ήν•˜κ³ , λΉ„μ¦ˆλ‹ˆμŠ€ 계측은 λ°±μ—”λ“œ νŒ€(Java 개발자)이 λ‹΄λ‹Ήν•˜λ©°, λ°μ΄ν„°λ² μ΄μŠ€ 계측은 DBAκ°€ λ‹΄λ‹Ήν•˜λŠ” μ‹μœΌλ‘œ κ΅¬μ‘°ν™”λœλ‹€ [1]. * **마이크둜 μ•„ν‚€ν…μ²˜(Micro-architecture)μ™€μ˜ ꡬ뢄:** ν—₯사고날(Hexagonal), μ–΄λ‹ˆμ–Έ(Onion), 클린 μ•„ν‚€ν…μ²˜(Clean Architecture)와 같은 도메인 μ€‘μ‹¬μ˜ νŒ¨ν„΄λ“€μ€ 맀크둜 μˆ˜μ€€μ˜ ꡬ쑰λ₯Ό μ„€λͺ…ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, 맀크둜 μ•„ν‚€ν…μ²˜(예: κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜) λ‚΄λΆ€μ˜ νŠΉμ • 계측인 'λΉ„μ¦ˆλ‹ˆμŠ€ 계측'의 λ‚΄λΆ€ 섀계λ₯Ό λ‹€λ£¨λŠ” 마이크둜(Micro) νŒ¨ν„΄ λ˜λŠ” λ””μžμΈ(Design)에 가깝닀 [2]. * **운영 및 인프라 μ˜μ—­μ˜ 포함:** λ§€ν¬λ‘œλΌλŠ” μš©μ–΄λŠ” λ‹¨μˆœνžˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ½”λ“œλ₯Ό λ„˜μ–΄μ„œ, 데브옡슀(DevOps) ν™˜κ²½, λ””λ ‰ν† λ¦¬μ˜ ꡬ성 체계, 툴링, 그리고 λ°μ΄ν„°λ² μ΄μŠ€(SQL), λ§ˆν¬μ—…(HTML), 데이터(JSON) μ²˜λ¦¬μ™€ 같은 μ•„ν‚€ν…μ²˜ μ°¨μ›μ˜ μ „ν™˜ 및 κ΅¬ν˜„ 선택을 ν¬κ΄„ν•˜λŠ” 폭넓은 κ°œλ…μœΌλ‘œ μ‚¬μš©λœλ‹€ [3]. 반면 λ””μžμΈ(Design) λ˜λŠ” 마이크둜 μ˜μ—­μ€ μ»΄ν¬λ„ŒνŠΈ κ°„μ˜ 관계(예: "has-a" 관계)와 같은 μ‹œμŠ€ν…œ 기계μž₯치(system-machinery)에 κ΄€ν•œ μ„ΈλΆ€ 선택을 μ˜λ―Έν•œλ‹€ [3]. ## βš–οΈ Trade-offs & Caveats * **쑰직 κ΅¬μ‘°μ™€μ˜ κ°•ν•œ 결합에 λ”°λ₯Έ 경직성:** 맀크둜 μ•„ν‚€ν…μ²˜κ°€ 각 νŒ€μ˜ 쑰직 ꡬ쑰(ν”„λ‘ νŠΈμ—”λ“œ, λ°±μ—”λ“œ, DB λ“±)와 μ§μ ‘μ μœΌλ‘œ λ§€ν•‘λ˜λŠ” νŠΉμ„±μƒ [1], μƒˆλ‘œμš΄ λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­μ΄λ‚˜ ꡐ차 κΈ°λŠ₯(Cross-functional)이 ν•„μš”ν•  λ•Œ νŒ€ κ°„μ˜ ν˜‘μ—… 및 배포 일정을 λ§žμΆ”λŠ” 데 μœ μ—°μ„±μ΄ λ–¨μ–΄μ§ˆ 수 μžˆλ‹€. * **νŒ¨ν„΄ 적용 μˆ˜μ€€μ˜ μ˜€ν•΄:** 맀크둜 μˆ˜μ€€κ³Ό 마이크둜 μˆ˜μ€€μ˜ νŒ¨ν„΄μ„ λͺ…ν™•νžˆ κ΅¬λΆ„ν•˜μ§€ μ•Šκ³ , 마이크둜 섀계 νŒ¨ν„΄(예: 클린 μ•„ν‚€ν…μ²˜)을 전체 맀크둜 μ•„ν‚€ν…μ²˜μ— κ°•μ œλ‘œ λŒ€μž…ν•˜κ±°λ‚˜ ν˜Όμš©ν•˜λ € ν•˜λ©΄ μ‹œμŠ€ν…œμ΄ λΆˆν•„μš”ν•˜κ²Œ λ³΅μž‘ν•΄μ§€λŠ” μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§(Overengineering)이 λ°œμƒν•  수 μžˆλ‹€ [2, 4]. ## πŸ”— Knowledge Connections ### Related Concepts #### [μ•„ν‚€ν…μ²˜/기반 기술] - [[Layered Architecture]] - μ—°κ²° 이유: 맀크둜 μ•„ν‚€ν…μ²˜μ˜ κ°€μž₯ μ „ν˜•μ μΈ μ‚¬λ‘€λ‘œ, μˆ˜ν‰μ μΈ μŠ€νƒ 뢄할을 톡해 κ±°μ‹œμ μΈ μ•„ν‚€ν…μ²˜λ₯Ό κ΅¬μ„±ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€ [1, 2]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 맀크둜 μ•„ν‚€ν…μ²˜κ°€ μ–΄λ–»κ²Œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€, λΉ„μ¦ˆλ‹ˆμŠ€ 둜직, 데이터 관리λ₯Ό λΆ„λ¦¬ν•˜μ—¬ 전체 μ‹œμŠ€ν…œ ꡬ쑰λ₯Ό μž‘λŠ”μ§€ 이해할 수 μžˆλ‹€. - [[Conway's Law]] - μ—°κ²° 이유: 맀크둜 μ•„ν‚€ν…μ²˜κ°€ 기술적 ꡬ쑰λ₯Ό λ„˜μ–΄ μ‹€μ œ 개발 νŒ€(쑰직 κ·Έλ£Ή)의 ꡬ쑰와 μ–΄λ–»κ²Œ λ§€ν•‘λ˜λŠ”μ§€ μ„€λͺ…ν•˜λŠ” κ·Όλ³Έ 원리이기 λ•Œλ¬Έμ΄λ‹€ [1]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ•„ν‚€ν…μ²˜μ˜ μˆ˜ν‰μ  슬라이슀(예: UIνŒ€, λ°±μ—”λ“œ νŒ€)κ°€ 쑰직의 μ†Œν†΅ 방식 및 μ—­ν•  λΆ„λ‹΄κ³Ό μ–΄λ–€ μƒν˜Έμž‘μš©μ„ ν•˜λŠ”μ§€ νŒŒμ•…ν•  수 μžˆλ‹€. #### [마이크둜 섀계/κ΅¬ν˜„ νŒ¨ν„΄] - [[Hexagonal Architecture]] - μ—°κ²° 이유: 맀크둜 μ•„ν‚€ν…μ²˜μ™€ λŒ€λΉ„λ˜λŠ” 마이크둜 μˆ˜μ€€μ˜ 섀계 νŒ¨ν„΄(λΉ„μ¦ˆλ‹ˆμŠ€ 계측 λ‚΄λΆ€ ꡬ쑰화)으둜 주둜 μ‚¬μš©λ˜κΈ° λ•Œλ¬Έμ΄λ‹€ [2, 3]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: κ±°μ‹œμ  μ•„ν‚€ν…μ²˜(Macro) λ‚΄μ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ™ΈλΆ€ μ‹œμŠ€ν…œ(λ°μ΄ν„°λ² μ΄μŠ€, UI λ“±)μœΌλ‘œλΆ€ν„° λΆ„λ¦¬ν•˜κ³  κ³ λ¦½μ‹œν‚€λŠ” λ‚΄λΆ€ 섀계(Micro) 방법을 배울 수 μžˆλ‹€. ### Deeper Research Questions - 맀크둜 μ•„ν‚€ν…μ²˜(예: κ³„μΈ΅ν˜•) 내뢀에 마이크둜 νŒ¨ν„΄(예: ν—₯사고날 λ˜λŠ” 클린 μ•„ν‚€ν…μ²˜)을 μ€‘μ²©ν•˜μ—¬ μ‚¬μš©ν•  λ•Œ 경계(Boundary)λ₯Ό μ–΄λ–»κ²Œ μ„€μ •ν•΄μ•Ό μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§μ„ ν”Όν•  수 μžˆλŠ”κ°€? - μ½˜μ›¨μ΄μ˜ 법칙에 따라 맀크둜 μ•„ν‚€ν…μ²˜κ°€ νŒ€ ꡬ쑰λ₯Ό λ°˜μ˜ν•œλ‹€λ©΄, μ• μžμΌ 기반의 ν¬λ‘œμŠ€νŽ‘μ…”λ„(Cross-functional) νŒ€μ„ μš΄μ˜ν•  λ•Œ 맀크둜 μ•„ν‚€ν…μ²˜λŠ” μ–΄λ–»κ²Œ μ§„ν™”ν•΄μ•Ό ν•˜λŠ”κ°€? - ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ ν™˜κ²½ 및 λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜(MSA) μ²΄μ œμ—μ„œ 맀크둜 μ•„ν‚€ν…μ²˜μ˜ λ²”μœ„λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄λΆ€ ꡬ쑰인가, μ•„λ‹ˆλ©΄ μ„œλΉ„μŠ€ κ°„μ˜ 전체 λΆ„μ‚° λ„€νŠΈμ›Œν¬ ꡬ쑰인가? - 데브옡슀(DevOps) 및 CI/CD νŒŒμ΄ν”„λΌμΈμ˜ ꡬ성이 맀크둜 μ•„ν‚€ν…μ²˜μ˜ 섀계 κ²°μ •(디렉토리 ꡬ쑰, 툴링 λ“±)에 μ–΄λ– ν•œ μ œμ•½μ΄λ‚˜ 영ν–₯을 λ―ΈμΉ˜λŠ”κ°€? - μ•„ν‚€ν…μ²˜ μŠ€νƒ€μΌ(Macro)κ³Ό μ‹œμŠ€ν…œ 섀계(Micro)의 차이가 μ‹€μ œ ν”„λ‘œμ νŠΈ μœ μ§€λ³΄μˆ˜μ„± 및 μ½”λ“œ 가독성에 λ―ΈμΉ˜λŠ” μž₯기적 영ν–₯은 무엇인가? ### Practical Application Contexts - **Implementation:** ν”„λ‘œμ νŠΈ 초기 μ„€μ • μ‹œ, 맀크둜 μ•„ν‚€ν…μ²˜λ₯Ό 기반으둜 κΉƒ(Git) λ ˆν¬μ§€ν† λ¦¬μ˜ 디렉토리 ꡬ쑰, 포트/μ–΄λŒ‘ν„° μ „ν™˜ 방식, μ‚¬μš©ν•˜λŠ” 기술 μŠ€νƒ(SQL, HTML, JSON λ“±)을 κ±°μ‹œμ μœΌλ‘œ κ²°μ •ν•œλ‹€ [3]. - **System Design:** 전체 μ‹œμŠ€ν…œμ„ Presentation, Business, Database λ“± κ±°λŒ€ν•œ μˆ˜ν‰μ  λ‹¨μœ„(Macro)둜 λ‚˜λˆ„κ³ , λ‚΄λΆ€ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Micro)μ—λŠ” 클린 μ•„ν‚€ν…μ²˜λ‚˜ ν—₯사고날 μ•„ν‚€ν…μ²˜λ₯Ό μ μš©ν•˜λŠ” 이쀑 섀계λ₯Ό κΈ°νšν•œλ‹€ [2, 4, 5]. - **Operation / Maintenance:** 맀크둜 μ•„ν‚€ν…μ²˜ ꡬ쑰에 맞좰 데브옡슀(DevOps) νŒŒμ΄ν”„λΌμΈμ„ κ΅¬μΆ•ν•˜μ—¬ ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œμ˜ λΉŒλ“œ, 배포, 툴링 운영 체계λ₯Ό κ²©λ¦¬ν•˜μ—¬ κ΄€λ¦¬ν•œλ‹€ [1, 3]. - **Learning Path:** μ‹œμŠ€ν…œμ˜ 전체 λΌˆλŒ€μ™€ 쑰직 μš΄μ˜μ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ 맀크둜 μ•„ν‚€ν…μ²˜μ™€ μ½˜μ›¨μ΄μ˜ 법칙을 λ¨Όμ € ν•™μŠ΅ν•œ λ’€, μ½”λ“œ λ‚΄λΆ€μ˜ μ„ΈλΆ€ κ΅¬ν˜„μ„ μœ„ν•΄ λ””μžμΈ(Micro) 및 νŒ¨ν„΄(ν—₯사고날 λ“±)을 ν•™μŠ΅ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ ‘κ·Όν•œλ‹€. - **My Project Relevance:** κ°œλ°œνŒ€μ„ ꡬ성할 λ•Œ ν”„λ‘ νŠΈμ—”λ“œ νŒ€, λ°±μ—”λ“œ νŒ€ λ“± 기술 기반의 νŒ€ 뢄리가 μ˜ˆμ •λ˜μ–΄ μžˆλ‹€λ©΄, 이에 μžμ—°μŠ€λŸ½κ²Œ λ§€ν•‘λ˜λŠ” κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜λ₯Ό 맀크둜 μ•„ν‚€ν…μ²˜λ‘œ μ±„νƒν•˜μ—¬ νš¨μœ¨μ„ 높일 수 μžˆλ‹€. ### Adjacent Topics - [[Design Patterns]] - ν™•μž₯ λ°©ν–₯: 전체 μ‹œμŠ€ν…œ ꡬ쑰λ₯Ό λ‹€λ£¨λŠ” 맀크둜 μ•„ν‚€ν…μ²˜μ™€ 달리, κ°œλ³„ μ»΄ν¬λ„ŒνŠΈλ‚˜ 클래슀 λ‚΄λΆ€μ˜ 반볡적인 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ„ΈλΆ€ κ΅¬ν˜„ 및 행동 λ©”μ»€λ‹ˆμ¦˜ ν•™μŠ΅μœΌλ‘œ ν™•μž₯. - [[DevOps and Tooling]] - ν™•μž₯ λ°©ν–₯: 맀크둜 μ•„ν‚€ν…μ²˜κ°€ μš”κ΅¬ν•˜λŠ” 디렉토리 ꡬ성 및 배포 νŒŒμ΄ν”„λΌμΈμ΄ μ‹€μ œ ν΄λΌμš°λ“œλ‚˜ μ˜¨ν”„λ ˆλ―ΈμŠ€ μΈν”„λΌμ—μ„œ μ–΄λ–»κ²Œ μžλ™ν™”λ˜κ³  κ΄€λ¦¬λ˜λŠ”μ§€ 탐ꡬ. --- *Last updated: 2026-05-02*