Skip to content

Commit 6e74994

Browse files
authored
소프트웨어 아키텍처 The Hard Parts 4주차 - 이동현 (#613)
8 ~ 9장
2 parents e87d3de + 5973c7c commit 6e74994

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

  • 2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
- 이벤트 기반 패턴

0 commit comments

Comments
 (0)