← 목록으로
단계 4.8
저장소 기초 — 인덱싱, DB 클러스터, 데이터 레이크
데이터를 빨리 찾는 인덱스, 데이터베이스를 여러 대로 늘리는 복제·샤딩, 원본을 그대로 모아두는 데이터 레이크와 대표 제품들. 분산 저장(HDFS) 전에 알아둘 기초.
이 챕터에서 배우는 것
데이터가 커질 때 저장소가 어떻게 달라지는지, 세 단계로 봅니다.
- 한 대 안에서 빨리 찾기 → 인덱싱
- 한 대로 부족할 때 → DB 클러스터 (복제·샤딩)
- 뭐든 일단 모아두기 → 데이터 레이크
1. 인덱싱 — 데이터를 빨리 찾는 법
책 뒤의 찾아보기(index) 를 떠올리세요. 색인이 없으면 책 전체를 넘겨야 하지만, 색인이 있으면 페이지 번호로 바로 갑니다.
데이터베이스도 같습니다. 100만 행에서 학번 = 2026001을 찾을 때:
- 인덱스 없음 → 100만 행을 전부 훑음
- 인덱스 있음 → 색인에서 위치를 찾아 한 번에 감
CREATE INDEX idx_student ON scores(student_id);
그런데 인덱스는 한 대의 컴퓨터 안에서 빨리 찾는 기술입니다. 데이터가 한 대에 안 들어가면 다른 방법이 필요합니다.
2. DB 클러스터 — 데이터베이스를 여러 대로
데이터베이스 한 대가 감당이 안 되면 여러 대를 묶어(클러스터) 씁니다. 나누는 방식은 두 가지입니다.
| 방식 | 뭘 하나 | 비유 |
|---|---|---|
| 복제(Replication) | 같은 데이터를 여러 대에 복사 | 같은 책을 도서관 3곳에 비치 — 읽는 사람이 분산되고, 한 곳이 문 닫아도 됨 |
| 샤딩(Sharding) | 데이터를 잘라서 여러 대에 나눠 담기 | 가나다 순으로 서가를 나눔 — ㄱ |
실제 제품에서는 둘을 같이 씁니다 (나눠 담고, 각 조각을 복사).
- 복제·샤딩을 지원하는 DB: MySQL, PostgreSQL(복제), MongoDB, Cassandra(샤딩 내장)
3. 데이터 레이크 — 일단 다 모아두는 창고
여러 곳에서 오는 데이터(CSV, JSON, 로그, 이미지…)를 가공하지 않고 원본 그대로 한 곳에 쌓아두는 저장소입니다. 정리는 나중에, 필요할 때 합니다.
lake/
raw/ ← 받은 그대로
cleaned/ ← 정리한 것
curated/ ← 분석용 최종본
데이터 레이크 자체는 "방식"이고, 실제로는 아래 저장소 위에 만듭니다.
| 종류 | 대표 제품 | 한 줄 |
|---|---|---|
| 직접 운영 | HDFS | 내 서버들에 설치 (다음 챕터에서 실습) |
| 클라우드 | Amazon S3, Google Cloud Storage, Azure Blob Storage | 아마존·구글·MS가 관리, 쓴 만큼 과금 |
| S3 호환 오픈소스 | MinIO | 내 컴퓨터에서 S3처럼 동작 |
| 레이크 위의 관리 플랫폼 | Databricks, Snowflake, AWS Lake Formation | 레이크를 표처럼 다루게 해주는 서비스 |
요즘 실무의 표준은 S3 같은 클라우드 스토리지에 데이터 레이크를 만들고, Spark로 읽는 것입니다. 이 수업에서는 다음 챕터부터 HDFS로 원리를 익힙니다.
한 장 정리
| 문제 | 해결 | 핵심 단어 |
|---|---|---|
| 한 대에서 느리다 | 인덱스 | 찾아보기 |
| 한 대로 부족하다 | 클러스터 | 복제, 샤딩 |
| 파일이 수십 TB다 | 분산 파일 시스템 | HDFS (다음 챕터) |
| 종류가 제각각이다 | 데이터 레이크 | raw 그대로, S3 |
연습
- 내 주변의 "인덱스" 예를 두 가지 찾아보기 (책 찾아보기 외에)
- 복제와 샤딩의 차이를 도서관 비유로 한 문장씩 설명해보기
- 데이터 레이크 제품 표에서 이름을 들어본 것에 표시하고, 하나를 골라 홈페이지에서 첫 화면을 읽어보기