From b3ecb2c84127f068cb6d1273080505ba8af086d2 Mon Sep 17 00:00:00 2001 From: chichoon Date: Tue, 20 Jan 2026 20:02:11 +0900 Subject: [PATCH 1/5] feat: software architecture ch03: initial md --- .../chichoon/03.md | 52 ++++++++++++++++++ .../chichoon/images/03_01.png | Bin 0 -> 36234 bytes 2 files changed, 52 insertions(+) create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/03_01.png diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md new file mode 100644 index 00000000..33733283 --- /dev/null +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md @@ -0,0 +1,52 @@ +## Chapter 04: 아키텍처 분해 + +### 개요 + +- 컴포넌트 기반 분해 + - 어플리케이션의 논리적 구성 요소 단위 (컴포넌트 단위) 를 추출하고 이를 이용하여 아키텍처를 구성 + - 코드베이스가 컴포넌트 단위로 구성되어 있어 분해 가능할 경우 이쪽 선택 +- 전술적 분기 + - 애플리케이션 사본을 복사하고 필요없는 부분을 깎아내며 구성 + - 코드베이스 분해 불가능할 경우 (엉망일 경우) 이쪽이 적절한 선택 +- 도구를 이용하여 코드베이스의 특성을 파악하고 구조를 판별 + +### 추상도와 불안정도 + +- 코드베이스의 균형을 나타내는 척도 +- 추상도 + - 구현 대비 추상화가 이뤄진 정도 + - 추상 요소와 구상 요소의 개수로 측정한다 +- 불안정도 + - 코드베이스가 불안정한 정도 + - 커플링 (구심, 원심) 이 높을 경우 불안정도가 올라감 + - 컴포넌트끼리 강하게 엮여 있어 하나를 수정하면 다른 컴포넌트에 영향을 미칠 확률이 높다는 뜻 + +![image03-01](./images/03_01.png) + +- 메인 시퀀스로부터의 거리 + - 추상도와 불안정도 사이의 이상적인 관계 + - x절편, y절편, 기울기 1의 직선 + - 이 선에 가까울수록 이상적이다 (컴포넌트 균형이 적절하다) +- 메인 시퀀스로부터의 거리 그래프 기준으로 + - 오른쪽 위로 치우친 부분은 추상화가 과도한 (쓸모없는) 구역 + - 사용이 어려움 + - 왼쪽 아래로 치우친 부분은 추상화가 없다시피한 (고통스러운) 구역 + - 취약하고 관리가 어려움 + +``` +논의점: 추상도, 불안정도, 거리 등의 요소가 굉장히 수학적인 요소로 보이는데, 개발에는 정답이 없듯이 컴포넌트가 추상적인지, 불안정한지 여부를 판가름하는 기준도 매우 모호할 듯하다. 추상 클래스 등 명확하게 추상적인 요소가 없는 경우 이러한 수치들을 계산하고, 아키텍처 구성에 참고할 만한 자료로 삼는 것이 과연 가능할까 의문이 든다. +``` + +### 컴포넌트 기반 분해 + +- 컴포넌트 단위의 폴더구조 및 파일로 디렉터리를 구성 및 각 코드 분리 +- 모놀리식을 분산 아키텍처로 마이그레이션할 때 도움이 된다 + +### 전술적 분기 + +- 진흙잡탕 아키텍처를 다듬을 때, 추출보다는 필요없는 것을 떼어내는 것에 중점 +- 서로간의 의존성 때문에 추출에 한계가 있는 경우 +- A팀, B팀이 서로 각각 코드베이스 사본을 복사한 후, 각자의 팀에 필요한 코드만 남기고 나머지를 삭제하는 기법 + - 이렇게 하면 각 파트별 큰 구조는 유지하면서 모놀리식 구조를 덩어리로 쪼갤 수 있다 +- 분해보다 상대적으로 쉽지만 모놀리스 코드의 흔적이 계속 남아있을 가능성이 있다 +- 개발자가 노력을 기울이지 않으면, 조금 더 가벼워졌을 뿐인 (코드 용량만 줄어든) 진흙덩어리가 될 수도 있음 diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/03_01.png b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/03_01.png new file mode 100644 index 0000000000000000000000000000000000000000..9efd1ec263bf594f6917107ec798c01f0c026317 GIT binary patch literal 36234 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 literal 0 HcmV?d00001 From 0b6b89212d28c22ba74f4727cdb2a88174799ce2 Mon Sep 17 00:00:00 2001 From: chichoon Date: Tue, 20 Jan 2026 20:55:46 +0900 Subject: [PATCH 2/5] feat: software architecture ch04: initial md --- .../chichoon/04.md | 57 ++++++++++++++++++ .../chichoon/images/04_01.png | Bin 0 -> 83182 bytes 2 files changed, 57 insertions(+) create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_01.png diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md new file mode 100644 index 00000000..ef5d135b --- /dev/null +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md @@ -0,0 +1,57 @@ +## Chapter 05: 컴포넌트 기반 분해 패턴 + +### 개요 + +![04_01](./images/04_01.png) + +1. 컴포넌트 식별 및 사이징 + - 나눌 컴포넌트의 크기를 결정 +2. 공통 도메인을 갖는 컴포넌트 수집 + - 중복 가능성이 있는 로직 통합 +3. 컴포넌트 눌러펴기 + - 도메인, 서브도메인, 컴포넌트를 정리 +4. 컴포넌트 디펜던시 결정 + - 디펜던시를 다듬어 마이그레이션 실현가능성 및 작업량 결정 +5. 컴포넌트 도메인 생성 + - 컴포넌트를 애플리케이션 내부의 논리적 도메인들로 그룹핑 및 리팩터링 +6. 도메인 서비스 생성 + - 모놀리식 애플리케이션의 논리 도메인을 개별 배포된 도메인 서비스들로 이동 + - 모놀리식을 서비스 단위로 쪼개기 + +### 컴포넌트 식별 및 사이징 + +- 애플리케이션을 구성하는 컴포넌트를 식별하여 크기를 조절 +- 너무 크거나 너무 작은 컴포넌트를 찾아내는 작업 + - 큰 컴포넌트의 경우 다른 컴포넌트들과의 결합도가 높을 가능성이 높다 +- 컴포넌트 크기를 결정하는 지표 + - 문장 수 (조건문, 분기문 등, 세미콜론으로 구분) + - 파일 수 + - 이러한 수치들을 이용하여 컴포넌트의 비중 계산 + - 컴포넌트 사이즈를 일정하게 유지하기 위해 피트니스 함수나 툴을 쓰면 좋다 + - 어떤 컴포넌트가 추가되고 삭제되었는지 알려주는 툴 + - 코드베이스에서 차지하는 비중을 나타내고 임계치를 벗어나지 않게끔 돕는 툴 + - 컴포넌트가 코드베이스 컴포넌트들의 크기 평균치보다 크지 않게 알려주는 툴 + - etc + +- 사이즈는 애플리케이션 전반적으로 일정한 크기 유지가 필요함 +- 컴포넌트 식별하기 + - 컨벤션을 유지한 적절한 이름 + - 네임스페이스 (컴포넌트가 위치한 디렉터리 또는 패키지 등) + - 컴포넌트 비중 > 문장 수, 파일 수 + +- 예시에서 성한은 리포팅 컴포넌트의 비중이 지나치게 크다는 것을 발견하여 이를 적절한 세부 단위로 쪼개는 것으로 컴포넌트 크기를 고르게 만들었음 + +### 공통 도메인을 갖는 컴포넌트 수집 + +- 공통 도메인 로직을 발굴하여 단일 컴포넌트로 중앙화하는 패턴 +- 여러 서비스에서 같이 사용되는 기능을 통합해 두면, 추후 중복 서비스를 쉽게 제거할 수 있다 +- 이름이나 네임스페이스를 이용하여 구분 +- 공통 도메인 로직 통합 전후의 커플링 (결합도) 을 계산하면 컴포넌트의 비중 및 통합 필요성 여부 판단에 도움이 된다 + +### 컴포넌트 눌러펴기 + +- A 컴포넌트가 B 컴포넌트를 기반으로 생성되고, B 컴포넌트가 C 컴포넌트를 기반으로 생성되는 등 + - 예시: 설문 컴포넌트를 기반으로 설문 템플릿을 작성할 경우 + - +- 디렉터리 상에 리프 노드만 존재하게끔 평평하게 누르는 작업 +- diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_01.png b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_01.png new file mode 100644 index 0000000000000000000000000000000000000000..c94c0d3979fa7738132ded24f288dc909a7ed25f GIT binary patch literal 83182 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 b-J!GQmrW_6a$5lZ7K)mZmSVNMMcDrV5r8X! literal 0 HcmV?d00001 From fbb85512bd7fa52b64e7bf7408425eb23efdee0d Mon Sep 17 00:00:00 2001 From: chichoon Date: Wed, 21 Jan 2026 18:12:05 +0900 Subject: [PATCH 3/5] =?UTF-8?q?add=20=EB=8A=90=EB=82=80=EC=A0=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chichoon/03.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md index 33733283..6e44ec14 100644 --- a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/03.md @@ -50,3 +50,9 @@ - 이렇게 하면 각 파트별 큰 구조는 유지하면서 모놀리식 구조를 덩어리로 쪼갤 수 있다 - 분해보다 상대적으로 쉽지만 모놀리스 코드의 흔적이 계속 남아있을 가능성이 있다 - 개발자가 노력을 기울이지 않으면, 조금 더 가벼워졌을 뿐인 (코드 용량만 줄어든) 진흙덩어리가 될 수도 있음 + +``` +느낀점?: 마침 아주 최근에 큰 덩어리의 진흙 코드를 서비스별로 분기하는 작업을 진행했는데, 그 과정에서 덩어리를 서비스별로 복사하고 그중 필요없는 코드를 지우고 공통화할 수 있는 코드만 분리하여 덩어리를 경량화한 적이 있었음. 전술적 분기 파트를 읽으면서 해당 작업 생각이 났다. (내가 진행한 작업이 어찌보면 전술적 분기구나? 하는) + +난이도는 확실히 처음부터 작정하고 분리를 시도하는 것보다 간단한 편이고 시간도 많이 걸리지 않았지만, 덩어리 A를 분리하고 나서 덩어리 B를 작업하는 도중에 덩어리 A에 미처 덜어내지 못한 찌꺼기를 발견하는 등 코드 깎아내기에 어느 정도 익숙하지 않으면 실수하기가 쉬운 듯 하다. A 덩어리는 C, D, E 서비스를 분기할 때까지도 찌꺼기와 공통화가 덜된 요소들이 계속 발견되어 추가작업을 진행해야 했다.. 눈물.. +``` From 1c5e9f331c1ef3fb56c532e7b7b36f3ba47bf1aa Mon Sep 17 00:00:00 2001 From: chichoon Date: Thu, 22 Jan 2026 20:02:14 +0900 Subject: [PATCH 4/5] feat: add chapter 05 wip --- .../chichoon/04.md | 22 +++++++++++++++--- .../chichoon/images/04_02.png | Bin 0 -> 93594 bytes 2 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_02.png diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md index ef5d135b..7d90ce2b 100644 --- a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md @@ -51,7 +51,23 @@ ### 컴포넌트 눌러펴기 - A 컴포넌트가 B 컴포넌트를 기반으로 생성되고, B 컴포넌트가 C 컴포넌트를 기반으로 생성되는 등 - - 예시: 설문 컴포넌트를 기반으로 설문 템플릿을 작성할 경우 - - + - 예시: 설문 (ss.survey) 하위에 설문 템플릿 (ss.survey.templates) 이 존재하는 경우 + - 설문 (ss.survey) 클래스와 직접적으로 연관된 컴포넌트는 없음 + - ss.survey.templates 컴포넌트를 ss.survey 로 옮겨 합치거나, ss.survey 기능을 분해하여 ss.survey.create, ss.survey.process 등으로 확장하여 루트 네임스페이스로 만드는 방법이 있다 + - 이때 ss.survey의 공통 클래스는 고아 클래스이므로, ss.survey 하위에 있는 컴포넌트들이 가져다 쓰는 ss.survey.template 를 추가하면 된다 + - 디렉터리 상에 리프 노드만 존재하게끔 평평하게 누르는 작업 -- +- 고아 클래스를 없애는 작업 + - 고아 클래스: 어떠한 컴포넌트와도 연관되지 않은, 루트 네임스페이스에 속하는 클래스 + +### 컴포넌트 디펜던시 결정 + +![dependencies](./images/04_02.png) + +- 컴포넌트 간의 커플링 (데이터가 오가는 구간) 을 분석하여, 디펜던시가 어떤 양상을 보이는지 결정하는 패턴 +- 모놀리식 어플리케이션을 분해했을 때 각 서비스간 어떠한 연관 (의존성) 을 가질지 분석하는 과정 +- 위 이미지의 경우, 컴포넌트 간의 디펜던시가 너무 커서 사실상 컴포넌트 분해가 어렵고, 다시 코딩하는게 나은 수준 +- 미리 컴포넌트 간의 결합도를 파악하는 것은 각 디펜던시를 리팩터링하고 서비스 단위로 분해하는 데에 큰 도움을 준다 +- 피트니스 함수로는 디펜던시 개수에 제한을 두거나 특정 컴포넌트간 디펜던시를 갖지 않게 막을 수 있다 + +### 컴포넌트 도메인 생성 diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_02.png b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/images/04_02.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6bcbf0b9c18f5ee0bf2b8a3e3d2e55d06f3ad8 GIT binary patch literal 93594 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
}eH!n4(c}6> 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 MYN%QE#Ol-k1LWzZa{vGU literal 0 HcmV?d00001 From c80e66b8e54640a6f3ec3fdf7c8ddcf86cbed3f9 Mon Sep 17 00:00:00 2001 From: chichoon Date: Thu, 22 Jan 2026 20:10:25 +0900 Subject: [PATCH 5/5] feat: chapter 05 done --- .../chichoon/04.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md index 7d90ce2b..606a7227 100644 --- a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/04.md @@ -71,3 +71,13 @@ - 피트니스 함수로는 디펜던시 개수에 제한을 두거나 특정 컴포넌트간 디펜던시를 갖지 않게 막을 수 있다 ### 컴포넌트 도메인 생성 + +- 서로 관련된 기능들을 수행하는 컴포넌트들을 그룹핑하여 도메인을 식별하는 것은 결국 서비스 기반 아키텍처에서 각 서비스의 대상을 결정하는 과정이다 +- 네임스페이스 노드로 도메인을 표현하면 좋다 +- 예를 들어, 과금 관련 컴포넌트와 고객 프로필 관련 컴포넌트를 `고객` 이라는 더 큰 도메인으로 묶어서 체계화할 수 있다 + +### 도메인 서비스 생성 + +- 컴포넌트 도메인 구조를 잘 잡았다면, 이를 각 도메인 서비스로 옮겨서 서비스 기반 아키텍처를 구축한다 +- 도메인 서비스 마이그레이션 전에 컴포넌트들을 그 도메인의 특성에 맞게 리팩터링한 후 마이그레이션을 하는 것이 좋다 + - 그렇지 않으면 한 도메인이 다른 도메인에 꾸겨들어가야 하는 불상사가 발생