Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# 10 ~ 12장

## 논의

10장에서 소개된 데이터 도메인 패턴에 대해서 처음에는 부정적으로 생각했습니다.
왜 이럴까 고민해봤는데, 생산성을 위해서 도메인 경계를 흐리게 한다는 것이 막연한 거부감으로 다가왔었던 것 같습니다.

하지만 다시 생각해보니 스타트업처럼 조직 규모가 작고 팀 간 경계도 흐릴 수 밖에 없는 환경에서는,
오히려 데이터 도메인 패턴이 현실적인 선택이 될 수 있겠다는 생각이 들었습니다.

그렇다면 초기 생산성을 위해 도메인 경계를 일부 완화하는 선택지는 적절한가? 적절하다면 언제까지 유효한가?

---

스타트업이나 규모가 있는 조직에서의 실험적인 서비스의 경우 미래가 보장되어 있지 않기 떄문에
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

'떄문에'에 오타가 있습니다. '때문에'로 수정하는 것이 좋겠습니다.

Suggested change
스타트업이나 규모가 있는 조직에서의 실험적인 서비스의 경우 미래가 보장되어 있지 않기 떄문에
스타트업이나 규모가 있는 조직에서의 실험적인 서비스의 경우 미래가 보장되어 있지 않기 때문에

도메인 경계를 엄격하게 나누는 것보다는 생산성을 올리는 방식이 유리할 것 같습니다.

다만, "공유해서 빨라졌다"가 아니라 "공유해서 느려졌다"라고 느껴지거나,
프로젝트가 성숙해짐에 따라 조직이 분화되고 팀 간 조율 비용이 커지기 시작한다면,
완화했던 경계를 다시 바로잡아야 할 것 같습니다.

## 내용

- 분산 데이터 엑세스
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

외래어 표기법에 따라 '엑세스'는 '액세스'로 표기하는 것이 표준입니다.

Suggested change
- 분산 데이터 엑세스
- 분산 데이터 액세스

- 서비스 간 통신 패턴 (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) | 비동기 | 코레오그래피 | 최종 일관성 | 매우 낮음 |
Loading