File tree Expand file tree Collapse file tree
2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ # 8 ~ 9장
2+
3+ ## 논의
4+
5+ 최종 일관성 패턴 중 ** 백그라운드 동기화 패턴** 은 매우 생소한 패턴인데, 사용해본 분이 계신지 궁금하네요.
6+ 어떤 상황이었고, 왜 이 패턴을 사용했는지..
7+
8+ ## 내용
9+
10+ - 코드 재사용 패턴
11+ - 코드 복제: 서비스 진입점을 정의한 어노테이션과 같이 대부분의 서비스에서 필요한 극히 ** 정적인 일회성 코드** 에는 유용
12+ - 공유 라이브러리: 버저닝이 필수
13+ - 공유 서비스: 이에 의존하는 서비스가 런타임에 잘못될 가능성이 있음 => 버저닝도 말처럼 쉽지 않음
14+ - 사이드카와 서비스 메시: 로깅, 보안, 모니터링과 같은 공통 인프라 로직 (구현 계층이 다른 AOP 느낌임)
15+ - 공동 데이터 오너십(joint ownership) 해결 기법
16+ - 전술적인 보완책 3개 + 구조적인 해결책 1개(서비스 통합 기법)
17+ - 테이블 분할 기법: 데이터를 물리적으로 나누어 관리
18+ - 데이터 도메인 기법: 도메인 관점에서 데이터를 그룹화
19+ - 대리자 기법: 특정 서비스가 데이터 접근을 대행
20+ - 서비스 통합 기법: 여러 테이블 오너 서비스를 하나의 서비스로 통합, 공동 오너십 => 단독 오너십
21+ - 분산 트랜잭션 (Distributed Transaction, 이하 DT): not ACID, but BASE
22+ - BA (Base Availability, 기본 가용성): DT의 모든 서비스/시스템이 DT에 참여할 수 있다
23+ - S (Soft state, 소프트 상태): DT가 진행 중이고 원자적 비즈니스 요청이 미완료(또는 완료 여부조차 알 수 없는) 상태
24+ - E (Eventual consistency, 최종적 일관성): 언젠가는 DT의 모든 부분이 무사히 완료되고 모든 데이터가 동기화
25+ - 최종 일관성 패턴
26+ - 백그라운드 동기화 패턴
27+ - 오케스트레이티드 요청 기반 패턴
28+ - 이벤트 기반 패턴
You can’t perform that action at this time.
0 commit comments