From a6e708844eb1e738223020d6d97ddf00b4950360 Mon Sep 17 00:00:00 2001 From: dhlee3994 Date: Fri, 23 Jan 2026 13:11:01 +0900 Subject: [PATCH] =?UTF-8?q?4~5=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../donghyeon/week2.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week2.md diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week2.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week2.md new file mode 100644 index 00000000..b7eb24ab --- /dev/null +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week2.md @@ -0,0 +1,24 @@ +# 4 ~ 5장 + +## 논의 + +모놀리식 애플리케이션을 분해할 때 컴포넌트 눌러 펴기 패턴(고아 클래스는 새 리프 노드(컴포넌트)로 옮겨서 눌러 편다.)을 적용하라고 나와있는데, +여러번 읽어봐도 "무조건 하라"는 뉘앙스인 것 같습니다. (책 전체적인 뉘앙스로 봐서는 아마 아닐 것 같긴하지만..) + +네임스페이스와 디렉토리 경로가 일치해야하는 언어를 사용하는 입장에서는 이게 오히려 캡슐화를 방해하기도 하고, +구조를 한눈에 확인하기 어렵게 만들 수 있다고 생각합니다. + +다른 분들은 "컴포넌트 눌러 펴기 패턴" 부분을 읽고 어떻게 생각하셨는지 다양한 관점을 들어보고 싶습니다. + +## 내용 + +- 모놀리식 애플리케이션 분해 전략 +- 전술적 분기(tactical forking): 모놀리스 복제 후 필요 없는 부분 삭제 +- 컴포넌트 기반 분해(component-based decomposition): 컴포넌트를 정제/추출한 후 분산 아키텍처를 점진적으로 구축 + - 컴포넌트 식별 및 사이징 패턴 + - 공통 도메인 컴포넌트 수집 패턴 + - 컴포넌트 눌러 펴기 패턴 + - 컴포넌트 디펜던시 결정 패턴 + - 컴포넌트 도메인 생성 패턴 + - 도메인 서비스 생성 패턴 +- 구(구할 구)심/원(멀 원)심 커플링