-
Notifications
You must be signed in to change notification settings - Fork 5
소프트웨어 아키텍처 The Hard Parts 5주차 - 이동현 #626
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
Open
dhlee3994
wants to merge
2
commits into
main
Choose a base branch
from
dhlee-2026-FSA-week5
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
56 changes: 56 additions & 0 deletions
56
2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week5.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| # 10 ~ 12장 | ||
|
|
||
| ## 논의 | ||
|
|
||
| 10장에서 소개된 데이터 도메인 패턴에 대해서 처음에는 부정적으로 생각했습니다. | ||
| 왜 이럴까 고민해봤는데, 생산성을 위해서 도메인 경계를 흐리게 한다는 것이 막연한 거부감으로 다가왔었던 것 같습니다. | ||
|
|
||
| 하지만 다시 생각해보니 스타트업처럼 조직 규모가 작고 팀 간 경계도 흐릴 수 밖에 없는 환경에서는, | ||
| 오히려 데이터 도메인 패턴이 현실적인 선택이 될 수 있겠다는 생각이 들었습니다. | ||
|
|
||
| 그렇다면 초기 생산성을 위해 도메인 경계를 일부 완화하는 선택지는 적절한가? 적절하다면 언제까지 유효한가? | ||
|
|
||
| --- | ||
|
|
||
| 스타트업이나 규모가 있는 조직에서의 실험적인 서비스의 경우 미래가 보장되어 있지 않기 떄문에 | ||
| 도메인 경계를 엄격하게 나누는 것보다는 생산성을 올리는 방식이 유리할 것 같습니다. | ||
|
|
||
| 다만, "공유해서 빨라졌다"가 아니라 "공유해서 느려졌다"라고 느껴지거나, | ||
| 프로젝트가 성숙해짐에 따라 조직이 분화되고 팀 간 조율 비용이 커지기 시작한다면, | ||
| 완화했던 경계를 다시 바로잡아야 할 것 같습니다. | ||
|
|
||
| ## 내용 | ||
|
|
||
| - 분산 데이터 엑세스 | ||
|
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. |
||
| - 서비스 간 통신 패턴 (Inter-Service Communication Pattern) | ||
| - 주로 REST 또는 gRPC 같은 동기식 호출 | ||
| - 단순한 구조, 필요한 시점에 데이터를 가져오므로 데이터 용량 문제 걱정 X | ||
| - 네트워크 지연, 보안 인증 오버헤드 등으로 인한 성능 저하 | ||
| - 호출 대상 서비스의 장애가 전파되는 가용성 문제 발생 가능 (두 서비스가 강결합) | ||
| - 컬럼 스키마 복제 패턴 (Column Schema Replication Pattern) | ||
| - 필요한 외부 데이터를 **컬럼 단위로 복제** | ||
| - 외부 호출 없이 조회 가능 => 성능, 내고장성, 확장성 Good | ||
| - 원본 데이터와의 동기화 및 일관성 문제 | ||
| - 복제 캐싱 패턴 (Replicated Caching Pattern) | ||
| - 공유 데이터를 각 서비스의 인메모리 캐시에 복제, 메시지 브로커를 통해 동기화 | ||
| - 응답 시간이 나노초 단위로 매우 빠름 | ||
| - 캐시 데이터 용량의 제한, 캐시 워밍업 필요 등 | ||
| - 데이터 도메인 패턴 (Data Domain Pattern) | ||
| - 데이터가 필요한 여러 서비스가 **동일한 DB 스키마를 공유**해 직접 접근 | ||
| - 서비스 간 통신 오버헤드 X, 데이터 무결성과 일관성 Good | ||
| - 서비스 간 결합도가 높아짐 | ||
| - 분산 워크플로 | ||
| - Orchestration | ||
| - Choreography | ||
| - 트랜잭셔널 사가 | ||
|
|
||
| | | 통신 | 조정 (Coordination) | 일관성 (Consistency) | 결합도 (Coupling) | | ||
| |:----------------------------| :--- | :--- | :--- | :--- | | ||
| | 에픽 사가 (Epic Saga) | 동기 | 오케스트레이션 | 원자적 | 매우 높음 | | ||
| | 폰 태그 사가 (Phone Tag Saga) | 동기 | 코레오그래피 | 원자적 | 높음 | | ||
| | 페어리 테일 사가 (Fairy Tale) | 동기 | 오케스트레이션 | 최종 일관성 | 높음 | | ||
| | 타임 트래블 사가 (Time Travel) | 동기 | 코레오그래피 | 최종 일관성 | 보통 | | ||
| | 판타지 픽션 사가 (Fantasy Fiction) | 비동기 | 오케스트레이션 | 원자적 | 높음 | | ||
| | 호러 스토리 사가 (Horror Story) | 비동기 | 코레오그래피 | 원자적 | 보통 | | ||
| | 패러렐 사가 (Parallel Saga) | 비동기 | 오케스트레이션 | 최종 일관성 | 낮음 | | ||
| | 앤솔로지 사가 (Anthology Saga) | 비동기 | 코레오그래피 | 최종 일관성 | 매우 낮음 | | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
'떄문에'에 오타가 있습니다. '때문에'로 수정하는 것이 좋겠습니다.