빅데이터란
한 대의 컴퓨터로 저장하거나 처리하기 어려운 규모·속도·다양성의 데이터, 그리고 그것을 다루는 기술.
특성 — 3V에서 5V로
| V | 의미 | 예 |
|---|---|---|
| Volume | 양 | 하루 수 TB의 로그 |
| Velocity | 속도 | 초당 수만 건 클릭 스트림 |
| Variety | 다양성 | 표, JSON, 이미지, 텍스트 |
| Veracity | 정확성 | 결측·오류·중복 |
| Value | 가치 | 결국 의사결정에 쓰여야 함 |
등장 배경
- 웹·모바일·IoT로 데이터 생성량 폭증
- 저장 비용 급감 (디스크 → 클라우드 오브젝트 스토리지)
- Google의 GFS·MapReduce 논문(2003·2004) → 오픈소스 Hadoop → Spark로 이어지는 분산 처리 기술
- 데이터 기반 의사결정(Data-driven decision making)의 확산
빅데이터 파이프라인
수집(Collect) → 저장(Store) → 처리(Process) → 분석(Analyze) → 시각화/활용(Serve)
API, 로그 HDFS, S3 Spark, SQL 통계, ML 대시보드, 앱
Kafka Parquet Airflow(오케스트레이션)
- 배치(Batch): 일정 주기로 모아서 처리. 단순하고 안정적. (예: 매일 새벽 매출 집계)
- 스트리밍(Streaming): 도착하는 즉시 처리. 지연이 짧지만 복잡. (예: 실시간 이상 거래 탐지)
- 실제로는 둘을 섞어 씁니다 (Lambda / Kappa 아키텍처).
대표 아키텍처 예
- 전통적: 앱 DB → 야간 ETL → 데이터 웨어하우스 → BI
- 데이터 레이크: 원본을 S3/HDFS에 그대로 적재 → Spark로 가공 → 웨어하우스/레이크하우스
- 스트리밍: 이벤트 → Kafka → Spark Streaming/Flink → 서빙 DB
도구 지도 (이 수업에서 다루는 것)
| 단계 | 도구 |
|---|---|
| 수집 | Python(requests), Kafka(개념) |
| 저장 | 로컬 파일, HDFS, S3, Parquet |
| 처리 | Spark(PySpark), MapReduce(개념) |
| 분석 | Spark SQL, DuckDB, Polars, Pandas |
| 테이블 포맷 | Iceberg / Delta (개념) |
생각해볼 질문
- 우리 학교 학사 시스템 데이터는 "빅데이터"인가? 어떤 V에서 그렇고, 어떤 V에서 아닌가?
- 배치로 충분한 문제와 스트리밍이 꼭 필요한 문제를 각각 하나씩 떠올려보기.