diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week5.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week5.md new file mode 100644 index 00000000..5c1b06af --- /dev/null +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week5.md @@ -0,0 +1,56 @@ +# 10 ~ 12장 + +## 논의 + +10장에서 소개된 데이터 도메인 패턴에 대해서 처음에는 부정적으로 생각했습니다. +왜 이럴까 고민해봤는데, 생산성을 위해서 도메인 경계를 흐리게 한다는 것이 막연한 거부감으로 다가왔었던 것 같습니다. + +하지만 다시 생각해보니 스타트업처럼 조직 규모가 작고 팀 간 경계도 흐릴 수 밖에 없는 환경에서는, +오히려 데이터 도메인 패턴이 현실적인 선택이 될 수 있겠다는 생각이 들었습니다. + +그렇다면 초기 생산성을 위해 도메인 경계를 일부 완화하는 선택지는 적절한가? 적절하다면 언제까지 유효한가? + +--- + +스타트업이나 규모가 있는 조직에서의 실험적인 서비스의 경우 미래가 보장되어 있지 않기 떄문에 +도메인 경계를 엄격하게 나누는 것보다는 생산성을 올리는 방식이 유리할 것 같습니다. + +다만, "공유해서 빨라졌다"가 아니라 "공유해서 느려졌다"라고 느껴지거나, +프로젝트가 성숙해짐에 따라 조직이 분화되고 팀 간 조율 비용이 커지기 시작한다면, +완화했던 경계를 다시 바로잡아야 할 것 같습니다. + +## 내용 + +- 분산 데이터 엑세스 + - 서비스 간 통신 패턴 (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) | 비동기 | 코레오그래피 | 최종 일관성 | 매우 낮음 |