복습 노트

데이터베이스 2

에이블러 2025. 12. 29. 02:03

보안, 백업 및 장애 대응

1.     백업: 데이터 손실을 방지하고, 장애 발생 시 신속하게 복구하는 필수 전략

2.     백업 유형

A.     전체 백업: 데이터베이스 전체를 백업

B.     증분 백업: 마지막 백업 후, 변경된 데이터만 백업

C.     차등 백업: 마지막 전체 백업 후, 변경된 데이터만 백업

3.     백업 주기 설정

-      핵심 데이터는 최소 하루 1회 이상 백업

-      트랜잭션 로그 백업 활성화 (특히 금융, 의료 데이터)

-      원격 백업(Remote Backup) 활용(AWS S3, Google Cloud Storage )

4.     백업 복구 전략

-      장애 유형에 따른 복구 시나리오 마련

-      정기적인 복구 테스트 수행

-      복구 절차 문서화 및 자동화

5.     장애 대응

-      데이터베이스는 장애가 발생할 수 있으며, 신속한 감지 및 대응이 필요함

n  하드웨어 장애: 서버, 디스크 고장 → RAID 구성 활용

n  소프트웨어 장애: DBMS 오류, 버그 → 자동 복구 설정

n  네트워크 장애: 서버 간 연결 끊김 → 로드 밸런싱

n  데이터 손상: 잘못된 SQL 실행 → 트랜잭션 로그 복구

6.     장애감지 및 모니터링

-      모니터링 툴 활용

-      자동 알림 시스템 구축

7.     고가용성(High Availability) 및 이중화

-      Master-Slave Replication (마스터-슬레이브 복제)

-      Failover 시스템 구축

-      로드 밸런싱 적용(Load Balancing)

 

 

 

< NoSQL 소개 >

Data 종류

1.     정형 데이터

-      rawcolumn이 정해진 데이터

-      데이터의 스키마를 지원

ex) 관계형 데이터 베이스, 스프레드 시트 등

2.     반정형 데이터

-      데이터 내부에 데이터 구조에 대한 메타 정보를 가짐

-      일반적으로 파일 형태로 저장

ex) JSON, XML, HTML 등 로그 데이터 및 IoT 센서 데이터

3.     비정형 데이터

-      하나의 데이터가 객체화 된 데이터

ex) 동영상, 이미지, 텍스트 데이터 등

 

RDBMS의 주요 특징

• 정형 데이터 (Structured Data)

• 관계형 모델 (테이블, , 열 기반 저장)

ACID 트랜잭션 보장 (원자성, 일관성, 격리성, 지속성)

SQL(Structured Query Language) 사용

• 수직적 확장 (Vertical Scaling) 중심

 

# RDBMS vs. NoSQL 비교

 

NoSQL(비관계형 데이터베이스) 주요 특징

• 비정형/반정형 데이터 저장 (JSON, BSON, Key-Value )

Schema-less (스키마가 유연함, 동적 변경 가능) → 데이터 구조 변경이 쉬움

BASE(Basically Available, Soft state, Eventual consistency) 특성

• 수평적 확장 (Horizontal Scaling) 중심 → 빅데이터 처리에 강점

• 트랜잭션보다는 빠른 읽기/쓰기 성능을 중점 → 로그, 센서 데이터 등 대량 처리 가능

-      단점

• 트랜잭션 지원이 제한적 (ACID 보장 부족)

• 데이터 정합성(Consistency)이 낮음

→ 일관성이 즉시 보장되지 않을 수 있음

• 복잡한 관계 데이터 처리 어려움 (JOIN 기능 부족)

• 관계형 데이터베이스에서는 JOIN을 사용하여 여러 테이블에서 데이터를 조합하지만, NoSQL에서는 JOIN 연산을 지양하고, 데이터를 한 번의 조회로 가져올 수 있도록 설계해야 함

• 조인(Join) 없는 설계 방법

- 중첩된 문서 구조(Nested Document) 활용 (: MongoDB, CouchDB)

- 데이터 중복 허용 (읽기 성능 최적화 목적)

- 인덱싱 및 분산 저장 기법 활용

 

시스템 접근 패턴 분석 - 읽기/쓰기 패턴 분석

NoSQL 데이터베이스에서 성능 최적화를 위해 데이터의 읽기(Reads)와 쓰기(Writes) 패턴을 분석하는 것이 중요함

• 읽기/쓰기 패턴이 중요한 이유

- 읽기 중심 시스템 vs. 쓰기 중심 시스템에 따라 데이터 구조가 달라짐

- 자주 조회되는 데이터는 캐싱 및 중복을 활용하여 성능을 최적화

- 쓰기 부하가 높은 경우, 데이터를 분산(Sharding)하여 확장성을 높임

 

확장성 및 고가용성 설계 - 파티셔닝(Sharding)과 복제(Replication) 전략

NoSQL은 수평 확장(Scalability)을 위해 Sharding(데이터 분산 저장) Replication(데이터 복제) 기법을 사용함

 

< -값 저장소 >

-값 저장소 정의

• 키-값 저장소(Key-Value Store) NoSQL 데이터베이스 유형 중 가장 단순하고 빠른 데이터 저장 방식을 제공함

• 빠른 조회 성능, 세션 관리, 캐싱, 분산 저장 등에서 강력한 성능을 발휘하며, 다양한 시스템에서 활용됨

 

종류 및 특징

1.     Redis : 메모리 기반, 초고속 성능, TTL 지원             # TTL 일정 시간 후 자동 삭제

# 활용: Redis 메시지 큐

→ 발행자(Publisher)가 메시지를 특정 채널(Channel)에 발행하면 해당 채널을 구독(Subscribe)하고 있는 모든 구독자(Subscriber)에게 메시지를 전달하는 구조

2.     Memcached : 분산 캐싱, 경량 데이터 저장 웹 캐싱, 애플리케이션 성능 개선

3.     Amazon DynamoDB : AWS 기반, 자동 확장, 관리형    # DAX 기능을 통한 캐싱 지원

 

백업 및 복구

클러스터링 활용

Redis에서는 Master-Slave 복제 및 클러스터링을 통해 장애 발생 시 데이터를 보호할 수 있음

데이터 손실 방지를 위한 최적화 전략

• 백업 주기 설정 및 테스트 복구 환경 구축

 

< 문서형 DB >

• 문서형 데이터베이스(Document DB) JSON, BSON 등의 문서 형태로 데이터를 저장하는 NoSQL 데이터베이스                                                 # 문서 형태 = 딕셔너리 형태

• 스키마리스(Schema-less) 구조를 가지며, 대규모 데이터 처리, 확장성(Scalability), 빠른 읽기/쓰기 성능을 위해 사용됨                                       # 샤딩(sharding)

 

대표적인 문서형 DB 종류 및 특징

1.     MongoDB : JSON 기반, 트랜잭션 지원, 수평 확장 가능

2.     CouchDB : JSON 문서 저장, RESTful API 지원

3.     Firebase Firestore : 클라우드 기반, 실시간 동기화 지원

4.     Amazon DocumentDB : AWS에서 제공하는 관리형 문서형 DB

5.     ArangoDB : 문서형 + 그래프 DB 기능 제공

 

문서형 DB의 데이터 모델링 전략

1.     중첩 문서(Nested Document) 모델링: 데이터 관계가 깊지 않을 경우, 하나의 문서에 데이터를 저장

2.     참조(Reference) 모델링: 데이터 중복을 최소화하기 위해 ID 기반 참조를 사용

 

참고) 성능 최적화 전략

1.     적절한 인덱스 사용         # 하고 안하고에 따라 속도 차이가 심함

2.     데이터 중복을 활용한 빠른 조회

3.     샤딩(Sharding) 및 복제(Replication) 활용

 

활용 및 운영전략

• 활용분야

- 콘텐츠 관리 시스템, 사용자 프로필 및 개인화 서비스, IoT, 실시간 분석 및 로그 관리 등

• 운영 전략

- 적절한 데이터 모델링, 인덱싱 전략, 확장성 관리, 보안 관리, 백업 및 복구, 성능 모니터링 및 튜닝

• 선택 시 고려사항

- 데이터 모델의 유연성, 확장성, 성능, 커뮤니티 및 지원, 비용

 

 

< 컬럼형 DB >              # 혁신적인 방법?

→ 컬럼(Column) 단위로 저장하여 읽기 속도를 최적화

DB 활용 및 최적화

• 데이터 분석(OLAP)에 적합

• 성능 최적화

- 압축(Compression) 사용하여 저장 공간 절약 및 성능 향상

- 컬럼 단위 인덱싱(Indexing) 적용하여 빠른 검색 지원

- 병렬 처리(Parallel Processing) Sharding을 통해 분산 저장

 

< 그래프 DB >

→ 그래프 데이터베이스(Graph DB)는 노드(Node)와 엣지(Edge)를 사용하여 관계 데이터를 효율적으로 저장 및 탐색하는 NoSQL 데이터베이스           # 빠른 관계 탐색을 위해 최적화됨

• 구성 요소

- 노드(Node): 개체(Entity)를 나타내는 데이터 구조 (: 사람, 제품, 장소)

- 엣지(Edge): 노드 간의 관계(Relationship)를 나타내는 데이터 구조(연결선)

- 속성(Properties): 노드 및 엣지에 추가적인 정보 제공 (: 이름, 나이, 관계 유형)

 

< 기타 DB >

검색엔진 DB

→ 검색 엔진 데이터베이스는 대량의 텍스트 데이터를 빠르게 색인(Indexing)하고 검색(Retrieval)할 수 있도록 설계된 특화된 데이터베이스

1) 대표적인 검색엔진 DB

Elasticsearch: 분산 검색 지원, JSON 기반 저장   # 검색만, 데이터를 저장하려면 따로 DB필요

2) 주요 개념

• 색인(Indexing) 및 역색인(Inverted Index)

- 검색 엔진 DB는 색인(Indexing) 과정을 통해 텍스트 데이터를 빠르게 검색할 수 있도록 저장

- 특히, 역색인(Inverted Index) 구조를 활용하여 문서 내 특정 단어가 포함된 위치를 미리 저장함으로써 검색 속도를 극대화함

• 토큰화(Tokenization) 및 분석(Analysis)

- 텍스트를 분석하여 검색 가능한 형태로 변환(토큰화, Tokenization)

• 랭킹(Scoring) 및 검색 최적화 기법

 

시계열 DB

→ 시계열 데이터베이스(Time-Series Database, TSDB)는 시간(Time)을 중심으로 변화하는 데이터를 효율적으로 저장하고 분석하는 특화된 데이터베이스

• 인덱스

- 시간 기반 파티셔닝

- 시간 기반 인덱스

• 최적화

- 시간 압축

- 배치 삽입

- 샤딩 및 분산 저장

 

NewSQL DB

→ 전통적인 RDBMS(Relational Database) NoSQL의 장점을 결합한 차세대 관계형 데이터베이스.트랜잭션 처리(ACID)를 지원하면서도, NoSQL처럼 수평 확장(Scale-out) 및 고성능 분산 처리가 가능하도록 설계됨

'복습 노트' 카테고리의 다른 글

클라우드 이해 2  (0) 2026.01.09
클라우드 이해 1  (0) 2026.01.04
데이터베이스 1  (0) 2025.12.29
IT 인프라 2  (0) 2025.12.17
IT 인프라 1  (1) 2025.12.15