docs: finalized wiki integrity maintenance (v3.0 standard) - pruned 1400+ stubs and fixed 11k+ ghost links
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
---
|
||||
id: [[P-Reinforce]]-AUTO-55088F
|
||||
id: [[P-Reinforce|P-Reinforce]]-AUTO-55088F
|
||||
category: "10_Wiki/💡 Topics/Programming & Language"
|
||||
confidence_score: 0.90
|
||||
tags: [auto-reinforced]
|
||||
last_reinforced: 2026-04-20
|
||||
github_commit: "[P-Reinforce] Continuous Worker - 관심사의 분리([[Separation of Concerns]])"
|
||||
github_commit: "[P-Reinforce] Continuous Worker - 관심사의 분리([[_뇌와 팔다리의 분리_ - 관심사의 분리 (Separation of Concerns)|Separation of Concerns]])"
|
||||
---
|
||||
|
||||
# [[관심사의 분리(Separation of Concerns)]]
|
||||
# [[관심사의 분리 (Separation of Concerns)|관심사의 분리(Separation of Concerns]]
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> 관심사의 분리(Separation of Concerns, SoC)는 복잡한 소프트웨어 시스템을 작고 관리하기 쉬운 개별 부분으로 나누어, 각 부분이 단일한 기능적 측면이나 '관심사'만을 처리하도록 설계하는 핵심 소프트웨어 공학 원칙입니다 [1-3]. 1974년 에츠허르 데이크스트라(Edsger W. Dijkstra)가 인간의 인지적 한계를 극복하고 복잡성을 제어하기 위해 처음 제안한 철학에 기원을 두고 있습니다 [4-6]. 이 원칙은 모듈 내의 응집도(Cohesion)를 높이고 모듈 간의 결합도(Coupling)를 낮추어 시스템의 유지보수성, 재사용성, 테스트 가능성 및 확장성을 극대화하는 것을 목표로 합니다 [7-10].
|
||||
@@ -21,8 +21,8 @@ github_commit: "[P-Reinforce] Continuous Worker - 관심사의 분리([[Separati
|
||||
* **독립적인 테스트 가능성**: 개별 모듈이 외부 인프라(데이터베이스, UI 등)와 격리되어 있으므로, 가짜 객체(Mock)나 더미 데이터를 이용한 독립적인 단위 테스트가 수월해집니다 [16, 17].
|
||||
* **병렬 개발 및 협업 효율성**: 역할의 경계가 명확하게 설정되므로, 여러 개발자나 팀이 서로의 작업에 간섭하지 않고 동시에 병렬로 개발을 진행할 수 있습니다 [14, 17, 18].
|
||||
* **실무 적용 및 아키텍처 패턴**:
|
||||
* **웹 표준 기술**: 웹 개발에서 구조를 담당하는 HTML, 표현을 담당하는 CSS, 동적 동작을 담당하는 [[JavaScript]]로 나누어 개발하는 것이 가장 고전적인 관심사 분리의 예시입니다 [19-21].
|
||||
* **계층화 아키텍처 (Layered [[Architecture]])**: 프레젠테이션 계층, 비즈니스 로직 계층, 데이터 액세스 계층 등 논리적 층으로 나누어 역할과 책임을 엄격히 분리하는 방식입니다 [22-25]. MVC(Model-View-Controller) 패턴이 대표적입니다 [22, 26].
|
||||
* **웹 표준 기술**: 웹 개발에서 구조를 담당하는 HTML, 표현을 담당하는 CSS, 동적 동작을 담당하는 [[JavaScript|JavaScript]]로 나누어 개발하는 것이 가장 고전적인 관심사 분리의 예시입니다 [19-21].
|
||||
* **계층화 아키텍처 (Layered [[Architecture|Architecture]])**: 프레젠테이션 계층, 비즈니스 로직 계층, 데이터 액세스 계층 등 논리적 층으로 나누어 역할과 책임을 엄격히 분리하는 방식입니다 [22-25]. MVC(Model-View-Controller) 패턴이 대표적입니다 [22, 26].
|
||||
* **마이크로서비스 아키텍처 (MSA)**: 거대한 모놀리식(Monolithic) 시스템을 작고 독립적인 비즈니스 기능(마이크로서비스)들로 쪼개어 분리하는 접근법입니다 [22, 27-29].
|
||||
* **한계 및 주의사항**:
|
||||
* **과도한 분리의 부작용**: 관심사를 맹목적으로 혹은 지나치게 잘게 쪼개면 추상화 계층이 늘어나고 간접 참조가 증가해, 오히려 코드의 실행 흐름을 파악하기 어렵게 만드는 '오버엔지니어링'이 발생할 수 있습니다 [30, 31].
|
||||
@@ -33,9 +33,9 @@ github_commit: "[P-Reinforce] Continuous Worker - 관심사의 분리([[Separati
|
||||
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- **Related Topics:** [[단일 책임 원칙(SRP)]], 응집도(Cohesion)와 결합도(Coupling), 계층화 아키텍처(Layered Architecture)
|
||||
- **Related Topics:** [[단일 책임 원칙 (SRP)|단일 책임 원칙(SRP]], 응집도(Cohesion)와 결합도(Coupling), 계층화 아키텍처(Layered Architecture)
|
||||
- **Projects/Contexts:** 넷플릭스(Netflix)의 코스모스(Cosmos) 플랫폼과 마이크로서비스 전환, 스포티파이(Spotify)의 마이크로 프론트엔드 및 스쿼드 모델, HTML, CSS, JavaScript의 웹 표준 3요소 분리
|
||||
- **Contradictions/Notes:** 많은 개발 가이드라인은 관심사의 분리를 선제적으로 엄격히 설계할 것을 권장하지만, 일부 전문가들은 코드 작성 초기부터 완벽하게 관심사를 예측하여 분리하는 것은 불가능하다고 주장합니다 [34, 35]. 대신, 유사한 코드가 3번 이상 반복될 때 추출하는 '[[Rule of Three]]'처럼, 반복되는 패턴을 확인한 뒤에 경험적으로 사후에 분리하는 실용적이고 점진적인 접근(DRY 원칙과 병행)을 강조합니다 [31, 35, 36].
|
||||
- **Contradictions/Notes:** 많은 개발 가이드라인은 관심사의 분리를 선제적으로 엄격히 설계할 것을 권장하지만, 일부 전문가들은 코드 작성 초기부터 완벽하게 관심사를 예측하여 분리하는 것은 불가능하다고 주장합니다 [34, 35]. 대신, 유사한 코드가 3번 이상 반복될 때 추출하는 '[[Rule of Three|Rule of Three]]'처럼, 반복되는 패턴을 확인한 뒤에 경험적으로 사후에 분리하는 실용적이고 점진적인 접근(DRY 원칙과 병행)을 강조합니다 [31, 35, 36].
|
||||
|
||||
---
|
||||
*Last updated: 2026-04-18*
|
||||
|
||||
Reference in New Issue
Block a user