Skip to content

Commit 79b9a6b

Browse files
committed
initial commit for chapter 06
1 parent 5397985 commit 79b9a6b

1 file changed

Lines changed: 45 additions & 0 deletions

File tree

  • 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Chapter 06: 운영 데이터 분리
2+
3+
### 개요
4+
5+
- 애플리케이션보다 훨씬 분해가 어려운 것이 데이터베이스
6+
- 데이터베이스를 분해해야 경계 구분이 명확해진다
7+
8+
### 데이터 분해인
9+
10+
- 데이터 분해 이유 (언제 분해해야할까?)
11+
- 변경 관리
12+
- 테이블을 수정할 때 얼마나 많은 서비스에 영향을 끼치는지
13+
- 영향 받은 서비스를 명확히 알 수 있으면 괜찮은데, 그걸 모른 채로 배포했더니 프로덕션이 오동작하는 일도 있음
14+
- 데이터베이스를 적절히 분리하여 변경 관리에 이점을 얻을 수 있다
15+
- 자신을 소유한 서비스에만 영향을 미치게끔 독립적으로 운용
16+
- 커넥션 관리
17+
- 여러 서비스가 동일한 데이터베이스를 공유할 경우, 서비스와 연결된 커넥션 풀이 많아지면서 데이터베이스에 부하를 일으킨다
18+
- 커넥션이 너무 많으면 커넥션 대기가 걸림
19+
- 추후 서비스를 확장하게 될 경우, 커넥션이 더 늘어남을 고려해야 함
20+
- 데이터베이스를 분리함으로써 동시에 사용할 수 있는 커넥션 수를 늘릴 수 있다
21+
- 확장성
22+
- 서비스 응답 시간을 일정하게 유지하고, 요청량에 따라 서비스 규모를 늘리는 능력
23+
- 하나의 데이터베이스를 여러 서비스가 바라볼 경우, 커넥션 뿐만 아니라 처리량 부하도 심각해진다
24+
- 따라서 서비스 확장을 위해서는 데이터베이스 확장을 통해 처리량을 분산시키는것이 좋음
25+
- 내고장성
26+
- 여러 서비스가 하나의 데이터베이스를 공유할 경우, 장애가 해당 데이터베이스에만 발생하게 됨
27+
- 내고장성: 하나의 서비스나 데이터베이스가 고장나도, 다른 부분은 중단없이 가동시킬 수 있는 능력
28+
- 데이터베이스를 여러 개 두어 하나의 데이터베이스가 망가져도 다른 서비스가 문제없이 동작할수 있도록 하는게 좋다
29+
- 아키텍처 퀀텀
30+
- 어떤 경우에 데이터베이스를 분해하는 게 좋을지 알려주는 길잡이
31+
- 퀀텀 단위로 데이터베이스를 쪼개면 독립적인 서비스로 분리가 가능
32+
- 데이터베이스 타입 최적화
33+
- 데이터 처리 방식에 따른 분리
34+
35+
### 데이터 통합인
36+
37+
- 데이터 통합 이유 (언제 합쳐야할까?)
38+
- 데이터 관계
39+
- 데이터베이스 테이블간에도 커플링이 발생할 수 있음
40+
- 외래 키를 통한 연결, 저장 프로시저 등
41+
- 데이터베이스 분해를 통해 내고장성을 높일지, 통합을 통해 테이블 간 관계를 유지하는게 나을지 고민해야 함
42+
- 데이터베이스 트랜잭션
43+
- 서로 다른 테이블에서 발생한 에러는 같은 트랜잭션으로 묶을 수 없기 때문에 데이터의 일관성과 무결성을 보장할 수 없음
44+
45+
### 모놀리식 데이터 분해

0 commit comments

Comments
 (0)