|
43 | 43 | - 서로 다른 테이블에서 발생한 에러는 같은 트랜잭션으로 묶을 수 없기 때문에 데이터의 일관성과 무결성을 보장할 수 없음 |
44 | 44 |
|
45 | 45 | ### 모놀리식 데이터 분해 |
| 46 | + |
| 47 | +- 마이그레이션 점진적 진행 과정 |
| 48 | +- 데이터베이스 분석, 데이터 도메인 생성 |
| 49 | + - 내부의 도메인 그룹 식별 |
| 50 | +- 데이터 도메인에 테이블 할당 |
| 51 | + - 테이블들을 특정 컨텍스트로 묶은 뒤, 각 데이터 도메인에 속하는 테이블들을 스키마에 할당 |
| 52 | + - 서로 다른 도메인에 속한 테이블들 간 밀접한 커플링이 존재한다면, 이를 묶어야 함 |
| 53 | + - synonym (일종의 심볼릭 링크와 같은 별칭) 을 이용하여 코드 분석을 용이하게 만드는 것도 좋은 방법 |
| 54 | +- 데이터 도메인에 접속하는 데이터베이스 커넥션의 분리 |
| 55 | + - 모든 데이터 접근이 서비스 - 스키마를 통해서만 이루어지도록 구성을 리팩토링 |
| 56 | + - 교차 스키마 접근을 서비스 단위로 제거해야 함 |
| 57 | + - 이 과정을 완료하여 서비스마다 데이터를 각각 소유하는 아키텍처로 전환됨 |
| 58 | +- 개별 데이터베이스 서버로 스키마 이전 |
| 59 | + - 위 단계에서 독립적인 접근으로 분리한 데이터 (스키마) 들을 물리적인 단일 데이터베이스 각각으로 옮김 |
| 60 | + - 스키마를 옮길 땐 백업 후 복원하거나, 아예 스키마를 복제해서 새 데이터베이스로 커넥션 전환하는 방법이 있음 |
| 61 | +- 독립적 데이터베이스 서버로 전환 |
| 62 | + - 위에서 각 스키마를 이전하면, 서비스 커넥션도 전환할 수 있음 |
| 63 | + - 하나의 서비스 덩어리를 독립적인 배포 단위로 작동시키는 것 |
| 64 | + - 기존 큰 데이터베이스에 묶인 스키마와 커넥션을 전부 삭제하면, 이제 각 서비스는 자신의 데이터베이스를 가진 독립적인 도메인이 된다 |
| 65 | + |
| 66 | +### 데이터베이스 타입 선택 |
| 67 | + |
| 68 | +- 학습 용이성 |
| 69 | + - 데이터베이스를 배우기 쉬운지 |
| 70 | +- 모델링 용이성 |
| 71 | + - 데이터 모델러가 얼마나 쉽게 도메인을 표현할 수 있는지 |
| 72 | +- 확장성 및 처리량 |
| 73 | + - 증가된 처리량을 데이터베이스가 얼마나 쉽게 확장 및 감당 가능한지 |
| 74 | +- 가용성, 내분할성 |
| 75 | + - 고가용성 구성을 지원하는지 |
| 76 | +- 일관성 |
| 77 | + - 항상 일관된 패러다임 지원 여부 |
| 78 | +- 프로그래밍 언어 지원 |
| 79 | + - 다양한 프로그래밍 언어 지원 여부 |
| 80 | + |
| 81 | +- 관계형 디비 |
| 82 | + - 가용성보다 일관성 중시 |
| 83 | + - 업계 표준이라 공부할 자료가 많고 모델링도 비교적 쉽다 |
| 84 | +- 키-값 데이터베이스 |
| 85 | + - 관계형 디비보다 배우는 것은 까다로우나, 확장성과 내분할성 면에서 이점을 갖는다 |
| 86 | + - 테이블 조인 등의 과정이 필요없기 때문 |
| 87 | +- 문서형 데이터베이스 |
| 88 | + - 사람이 값을 읽기 쉬워 배우기 쉽고 FE 등에게도 익숙한 형식 |
| 89 | +- 컬럼형 데이터베이스 |
| 90 | + - 확장성과 내분할성은 최고이지만 이해하기가 어려움 |
| 91 | +- 그래프 데이터베이스 |
| 92 | + - 어렵고, 정보가 비교적 많지 않음 |
| 93 | + - 데이터 흐름 방향성에 따라 복잡해지기 쉽다 |
| 94 | +- NewSQL |
| 95 | + - 관계형 데이터베이스와 유사하여 학습이 어렵지 않음 |
| 96 | + - SQL을 지원하고, NoSQL의 확장성과 관계형 데이터베이스의 장점을 섞은 느낌 |
| 97 | +- 클라우드 네이티브 데이터베이스 |
| 98 | + - 관계형 데이터베이스와 비슷하고, 클라우드에 바로 올릴 수 있다 |
| 99 | +- 시계열 데이터베이스 |
| 100 | + - 시계열 분석에 특화 |
0 commit comments