토픽 221 / 224·비교표
분산 트랜잭션 및 보안
2PC vs Saga
| 항목 | 2PC | Saga |
|---|---|---|
| 일관성 | 강한 일관성(ACID) | 최종 일관성(BASE) |
| 방식 | 블로킹(Prepare/Commit) | 비동기(로컬 트랜잭션 시퀀스) |
| 실패 처리 | 전체 롤백 | 보상 트랜잭션 |
| 적합 | 분산 DB | 마이크로서비스 |
| SPOF | 코디네이터 | 오케스트레이터(Orch 시) |
2PC vs 3PC
| 항목 | 2PC | 3PC |
|---|---|---|
| 단계 | Prepare → Commit | CanCommit → PreCommit → Commit |
| 블로킹 | 블로킹 가능 | 논블로킹 |
| 구현 | 단순 | 복잡 |
Saga Choreography vs Orchestration
| 항목 | Choreography | Orchestration |
|---|---|---|
| 조율 방식 | 이벤트 구독/발행 | 중앙 명령/응답 |
| 결합도 | 낮음(느슨) | 중간(오케스트레이터 의존) |
| 흐름 가시성 | 낮음(분산) | 높음(중앙 관리) |
| 적합 | 단순 플로우(3~5서비스) | 복잡 플로우(다수 서비스) |
중앙집중식 DB vs 분산 DB
| 항목 | 중앙집중식 DB | 분산 DB |
|---|---|---|
| 사이트 | 단일 | 다중 |
| 투명성 | 불필요 | 필요(위치, 분할, 복제) |
| 확장성 | 수직 확장(제한) | 수평 확장 |
| 가용성 | SPOF 위험 | 고가용성 |
정적 마스킹 vs 동적 마스킹
| 항목 | 정적 마스킹 | 동적 마스킹 |
|---|---|---|
| 적용 시점 | 영구(데이터 복사 시) | 실시간(쿼리 시) |
| 원본 | 변환된 복사본 | 원본 유지 |
| 적합 | 테스트/개발 환경 | 프로덕션 조회 |
백업: 전체 vs 증분 vs 차등
| 항목 | Full(전체) | Incremental(증분) | Differential(차등) |
|---|---|---|---|
| 백업 범위 | 모든 데이터 | 마지막 백업 이후 변경분 | 마지막 Full 이후 누적 |
| 백업 속도 | 느림 | 가장 빠름 | 중간 |
| 저장 공간 | 많음 | 가장 적음 | 중간(점증) |
| 복구 속도 | 가장 빠름 | 느림(체인 필요) | 중간(Full+Diff) |
핫 vs 웜 vs 콜드 복구
| 항목 | 핫(Hot) | 웜(Warm) | 콜드(Cold) |
|---|---|---|---|
| 복구 시간 | 즉시(수초) | 수분 | 수시간 |
| 비용 | 높음 | 중간 | 낮음 |
| 대기 상태 | 항상 활성 | 준비 상태 | 비활성 |
Read Replica vs Sharding vs Clustering
| 항목 | Read Replica | Sharding | Clustering |
|---|---|---|---|
| 목적 | 읽기 확장 | 쓰기 확장 | 고가용성(HA) |
| 방식 | 데이터 복제 | 데이터 분산 | 노드 그룹화 |
| 쓰기 | Primary만 | 샤드별 분산 | 공유 |
Choreography vs Orchestration
| 구분 | Choreography | Orchestration |
|---|---|---|
| 조율 방식 | 이벤트 구독/발행 | 중앙 명령/응답 |
| 결합도 | 낮음 | 중간 (오케스트레이터 의존) |
| 흐름 가시성 | 낮음 (분산) | 높음 (중앙 관리) |
| 적합 상황 | 단순 플로우, 서비스 3~5개 | 복잡한 플로우, 서비스 다수 |
| 보상 트랜잭션 | 각 서비스 자율 | 오케스트레이터가 명시적 호출 |