-
Notifications
You must be signed in to change notification settings - Fork 5
소프트웨어 아키텍처 The Hard Parts 2주차 - 이동현 #596
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| # 4 ~ 5장 | ||
|
|
||
| ## 논의 | ||
|
|
||
| 모놀리식 애플리케이션을 분해할 때 컴포넌트 눌러 펴기 패턴(고아 클래스는 새 리프 노드(컴포넌트)로 옮겨서 눌러 편다.)을 적용하라고 나와있는데, | ||
| 여러번 읽어봐도 "무조건 하라"는 뉘앙스인 것 같습니다. (책 전체적인 뉘앙스로 봐서는 아마 아닐 것 같긴하지만..) | ||
|
|
||
| 네임스페이스와 디렉토리 경로가 일치해야하는 언어를 사용하는 입장에서는 이게 오히려 캡슐화를 방해하기도 하고, | ||
| 구조를 한눈에 확인하기 어렵게 만들 수 있다고 생각합니다. | ||
|
|
||
| 다른 분들은 "컴포넌트 눌러 펴기 패턴" 부분을 읽고 어떻게 생각하셨는지 다양한 관점을 들어보고 싶습니다. | ||
|
Comment on lines
+3
to
+11
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이전에 따로 인지하고 있지 않던 부분이라서, 좀 생소하게 느껴지긴 했습니다 제 개인적으로는 책에서 말하는 평탄화를 하는 의도와 어떤 혜택이 있는지 어느정도 이해 하다보니, 유용한 팁이라고 생각이 들었습니다 leaf 노드 폴더에 모든 실제 구현 파일들을 모아둠으로써, 구현 파일들은 반드시 leaf 노드에 존재한다는 일관성을 얻을 수 있고, leaf 노드에 존재하는 구현 파일들을 과 계층구조를 가지는 도메인으로 분류 해서 이해할 수 있기 때문에, 코드를 통해서 도메인을 어떻게 분류 하였고 계층화 하였는지도 이해하기 더 쉬워지지 않았나 라는 생각을 했습니다 |
||
|
|
||
| ## 내용 | ||
|
|
||
| - 모놀리식 애플리케이션 분해 전략 | ||
| - 전술적 분기(tactical forking): 모놀리스 복제 후 필요 없는 부분 삭제 | ||
| - 컴포넌트 기반 분해(component-based decomposition): 컴포넌트를 정제/추출한 후 분산 아키텍처를 점진적으로 구축 | ||
| - 컴포넌트 식별 및 사이징 패턴 | ||
| - 공통 도메인 컴포넌트 수집 패턴 | ||
| - 컴포넌트 눌러 펴기 패턴 | ||
| - 컴포넌트 디펜던시 결정 패턴 | ||
| - 컴포넌트 도메인 생성 패턴 | ||
| - 도메인 서비스 생성 패턴 | ||
| - 구(구할 구)심/원(멀 원)심 커플링 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
저는 사실 불편함 없이 읽고 이해 했었습니다.
영어 단어로는 flatten이라고 표현했는데, 말 그대로 평평하게 편다는 느낌을 줍니다.
네임스페이스 수직 구조에 있는데 공통 기능은 다른 컴포넌트로 빼거나 아무것도 없는 고아 클래스는 하나로 합치는 등의 과정을 설명한 거라, 컴포넌트 분해 방법의 하나로 설명한거라 이해했거든요.
음 이런 방법이 있다 정도로 이해하시면 어떨까 싶습니다.