|
| 1 | +# 10 ~ 12장 |
| 2 | + |
| 3 | +## 내 생각 |
| 4 | + |
| 5 | +10장에서 소개된 데이터 도메인 패턴에 대해서 처음에는 부정적으로 생각했습니다. |
| 6 | +왜 이럴까 고민해봤는데, 생산성을 위해서 도메인 경계를 흐리게 한다는 것이 막연한 거부감으로 다가왔었던 것 같습니다. |
| 7 | + |
| 8 | +하지만 다시 생각해보니 스타트업처럼 조직 규모가 작고 팀 간 경계도 흐릴 수 밖에 없는 환경에서는, |
| 9 | +오히려 데이터 도메인 패턴이 현실적인 선택이 될 수 있겠다는 생각이 들었습니다. |
| 10 | + |
| 11 | +## 내용 |
| 12 | + |
| 13 | +- 분산 데이터 엑세스 |
| 14 | + - 서비스 간 통신 패턴 (Inter-Service Communication Pattern) |
| 15 | + - 주로 REST 또는 gRPC 같은 동기식 호출 |
| 16 | + - 단순한 구조, 필요한 시점에 데이터를 가져오므로 데이터 용량 문제 걱정 X |
| 17 | + - 네트워크 지연, 보안 인증 오버헤드 등으로 인한 성능 저하 |
| 18 | + - 호출 대상 서비스의 장애가 전파되는 가용성 문제 발생 가능 (두 서비스가 강결합) |
| 19 | + - 컬럼 스키마 복제 패턴 (Column Schema Replication Pattern) |
| 20 | + - 필요한 외부 데이터를 **컬럼 단위로 복제** |
| 21 | + - 외부 호출 없이 조회 가능 => 성능, 내고장성, 확장성 Good |
| 22 | + - 원본 데이터와의 동기화 및 일관성 문제 |
| 23 | + - 복제 캐싱 패턴 (Replicated Caching Pattern) |
| 24 | + - 공유 데이터를 각 서비스의 인메모리 캐시에 복제, 메시지 브로커를 통해 동기화 |
| 25 | + - 응답 시간이 나노초 단위로 매우 빠름 |
| 26 | + - 캐시 데이터 용량의 제한, 캐시 워밍업 필요 등 |
| 27 | + - 데이터 도메인 패턴 (Data Domain Pattern) |
| 28 | + - 데이터가 필요한 여러 서비스가 **동일한 DB 스키마를 공유**해 직접 접근 |
| 29 | + - 서비스 간 통신 오버헤드 X, 데이터 무결성과 일관성 Good |
| 30 | + - 서비스 간 결합도가 높아짐 |
| 31 | +- 분산 워크플로 |
| 32 | + - Orchestration |
| 33 | + - Choreography |
| 34 | +- 트랜잭셔널 사가 |
| 35 | + |
| 36 | + | | 통신 | 조정 (Coordination) | 일관성 (Consistency) | 결합도 (Coupling) | |
| 37 | + |:----------------------------| :--- | :--- | :--- | :--- | |
| 38 | + | 에픽 사가 (Epic Saga) | 동기 | 오케스트레이션 | 원자적 | 매우 높음 | |
| 39 | + | 폰 태그 사가 (Phone Tag Saga) | 동기 | 코레오그래피 | 원자적 | 높음 | |
| 40 | + | 페어리 테일 사가 (Fairy Tale) | 동기 | 오케스트레이션 | 최종 일관성 | 높음 | |
| 41 | + | 타임 트래블 사가 (Time Travel) | 동기 | 코레오그래피 | 최종 일관성 | 보통 | |
| 42 | + | 판타지 픽션 사가 (Fantasy Fiction) | 비동기 | 오케스트레이션 | 원자적 | 높음 | |
| 43 | + | 호러 스토리 사가 (Horror Story) | 비동기 | 코레오그래피 | 원자적 | 보통 | |
| 44 | + | 패러렐 사가 (Parallel Saga) | 비동기 | 오케스트레이션 | 최종 일관성 | 낮음 | |
| 45 | + | 앤솔로지 사가 (Anthology Saga) | 비동기 | 코레오그래피 | 최종 일관성 | 매우 낮음 | |
0 commit comments