Skip to content

Commit 080a3df

Browse files
committed
chapter 07
1 parent e1d2e0b commit 080a3df

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

  • 2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon

2026/Fundamentals_of_Software_Architecture_2nd_Edition/chichoon/05.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@
3232
- 데이터베이스 타입 최적화
3333
- 데이터 처리 방식에 따른 분리
3434

35+
```
36+
논의점: 데이터 분해인에 정말 많은 요인들이 있는데, 이것들을 고려하기 수월하게 해 주는 피트니스 함수나 유틸리티는 어떤 것이 있을까?
37+
```
38+
3539
### 데이터 통합인
3640

3741
- 데이터 통합 이유 (언제 합쳐야할까?)
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## Chapter 07: 서비스 세분도
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)