해당 포스팅은 패스트캠퍼스 '데이터베이스와 SQLD 합격패스 Online' 강의를 듣고 공부한 내용을 정리한 것입니다.
1. 시스템 아키텍처
- 시스템을 구성하는 하드웨어/소프트웨어 요소와 이들 간의 물리적/논리적 연결 구조를 정의한 설계 구조
- ✅ 서버, 스토리지, 네트워크 장비, 애플리케이션 등
종류
| 구분 | Stand-alone | Client / Server | WEB 3계층 구조 |
| 기본 구조 | 단일 컴퓨터에서 모든 기능 수행 | 중앙 서버 + 여러 클라이언트 | Web + WAS + DBMS 3계층 분리 |
| 네트워크 | ❌ | ✅ | ✅ |
| 사용자 수 | 단일 사용자 중심 | 다중 사용자 가능 | 대규모 사용자 가능 |
| 구성 요소 | 프로그램 + 데이터 동일 시스템 | 클라이언트 / DB 서버 | Web Server / WAS / DB |
| 동시성 | 거의 없음 | 동시 접근 가능 | 대규모 동시 처리 가능 |
| 확장성 | ❌ | 서버 확장 가능 | ✅ 수평 확장 용이 (각 계층 확장 가능) |
| 장점 | 구축 단순, 유지관리 쉬움 | 다중 사용자 지원 | 확장성/보안/유지보수 뛰어남 |
| 단점 | 확장성 없음, 원격 접근 불가 | 보안 취약 가능 | 통신 오버헤드 존재 |
고려 사항
| 구분 | 가용성 (Availability) | 확장성 (Scalability) | 단일 장애점 (SPOF) |
| 정의 | 시스템이 서비스를 정상적으로 제공할 수 있는 상태 | 시스템의 용량이나 처리 능력을 쉽게 늘릴 수 있는 능력 |
하나의 장애가 전체 시스템 중단으로 이어지는 지점
|
| 측정 기준 | 가동 시간(업타임) 비율 | 처리량 증가 대비 성능 유지 여부 | 존재 여부 자체가 리스크 |
| 문제 발생 시 | 서비스 중단 | 응답 지연, 서버 다운 | 전체 시스템 장애 |
| 해결 방법 | 이중화 장애 조치(Failover) 모니터링 |
수직 확장(Scale Up) 수평 확장(Scale Out) |
이중화 다중 네트워크 구성 |
| 예시 | 은행 앱이 24시간 정상 작동 | 블랙프라이데이 트래픽 대응 | DB 단일 서버 제거 |
2. 데이터베이스 다중화
- 하나의 DB서버에 장애가 발생하더라도 서비스가 중단되지 않도록 동일한 기능을 수행할 수 있는 DB 서버를 여러대 구성하는 구조
- ✅ 단일 장애점 문제를 해결하기 위한 방법
- ⚠️ 다른 컴포넌트에 비해 다중화 어려움 (DB 서버 간 데이터 정합성을 맞추기가 어렵기 때문)
유형
| 구분 | Active-Active | Active-Standby | Replication |
| 설명 | 여러 DB가 동시에 요청 처리 | 한 서버만 운영. 다른 서버는 대기 | 데이터를 다른 서버에 복제 |
| 서버 상태 | 둘 다 Active | 1 Active + 1 대기 | Primary + Replica |
| 복제 | 동기적 | 동기적 | 비동기적 |
| 읽기 지연 가능성 | ❌ | ❌ | ✅ (아직 반영 안된 값을 읽을 수 있음) |
| 저장소 | 1개 | 1개 | 둘다 |
| 읽기 처리 | 둘다 | Active | Replica |
| 쓰기 처리 | 둘다 | Active | Primary |
'Database' 카테고리의 다른 글
| [SQLD 이론 심화] 1. 데이터 모델링 (0) | 2021.07.29 |
|---|---|
| [ SQLD 이론 기초 ] Chapter 08. 백업 및 복구 (0) | 2021.07.28 |
| [ SQLD 이론 기초 ] Chapter 06. 트랜잭션 (0) | 2021.07.28 |
| [SQLD 이론 기초] 2. 관계형 데이터베이스 (0) | 2021.07.28 |
| [SQLD 이론 기초] 1. 데이터베이스 (0) | 2021.07.28 |