Skip to main content

빅데이터는 어떻게 시작되었나요?

현재 우리가 사용하는 Databricks, Spark, Delta Lake 같은 기술들은 어느 날 갑자기 등장한 것이 아닙니다. 20년이 넘는 기술 진화의 결과물입니다. 이 역사를 이해하면, 각 기술이 만들어졌고, 어떤 문제 를 해결하는지 더 깊이 이해하실 수 있습니다.

타임라인으로 보는 빅데이터 역사

빅데이터 기술의 진화 타임라인
연도주요 이벤트
2003Google GFS 논문
2004Google MapReduce 논문
2006Apache Hadoop 탄생, AWS S3 및 EC2 출시
2008Hive (SQL on Hadoop)
2009Spark 연구 시작 (UC Berkeley)
2010Apache Kafka 개발 (LinkedIn)
2012AWS Redshift 출시
2013Databricks 설립
2014Apache Spark 1.0 출시, Apache Flink 탄생
2015Spark 2.0 (DataFrame API)
2017Snowflake 성장, 클라우드 DW 시대
2019Delta Lake 오픈소스 공개
2020Lakehouse 개념 발표, Unity Catalog
2023GenAI 통합, LLM Serving
2024AI Agent Framework, Lakebase

1단계: Google의 혁신 (2003~2004)

모든 것의 시작은 Google 의 두 편의 논문입니다.

Google File System (GFS) — 2003

Google은 전 세계 웹 페이지를 크롤링하여 저장해야 했습니다. 기존의 파일 시스템으로는 이 규모를 감당할 수 없었습니다.
💡 GFS(Google File System) 는 수천 대의 저렴한 서버에 데이터를 분산 저장하는 파일 시스템입니다. 하나의 파일을 여러 조각으로 나누어 여러 서버에 복제본을 저장하므로, 일부 서버가 고장 나도 데이터가 유실되지 않습니다.

MapReduce — 2004

데이터를 분산 저장했다면, 분산된 데이터를 병렬로 처리 하는 방법도 필요했습니다.
💡 MapReduce 는 대용량 데이터를 Map(분배) 단계와 Reduce(집계) 단계로 나누어 여러 서버에서 동시에 처리하는 프레임워크입니다.
예시: 도서관의 모든 책에서 단어 빈도 세기

Map (분배):   각 서버가 맡은 책에서 단어별 횟수를 셈
             서버1: {"data":5, "science":3}
             서버2: {"data":8, "lake":2}

Reduce (집계): 모든 서버의 결과를 합침
             {"data":13, "science":3, "lake":2}

2단계: Hadoop의 시대 (2006~2012)

Apache Hadoop의 탄생

Google의 논문을 읽은 Doug Cutting(Apache Lucene의 개발자)이 이를 오픈소스로 구현한 것이 Apache Hadoop 입니다.
💡 Apache Hadoop 은 GFS를 구현한 HDFS(Hadoop Distributed File System) 와 MapReduce를 구현한 Hadoop MapReduce 를 핵심으로 하는 오픈소스 빅데이터 프레임워크입니다.

Hadoop 생태계의 성장

Hadoop을 중심으로 다양한 도구들이 생겨나며 하나의 거대한 생태계가 형성되었습니다.
도구연도역할설명
HDFS2006분산 저장대용량 파일을 여러 서버에 분산 저장합니다
MapReduce2006분산 처리Map-Reduce 패턴으로 데이터를 병렬 처리합니다
Hive2008SQL on HadoopFacebook이 개발. SQL로 Hadoop 데이터를 조회합니다
Pig2008스크립트 처리Yahoo가 개발. 스크립트 언어로 데이터를 처리합니다
HBase2008NoSQL DBHadoop 위의 분산 데이터베이스입니다
ZooKeeper2008코디네이션분산 시스템의 설정 관리와 동기화를 담당합니다
YARN2012리소스 관리클러스터의 리소스(CPU, 메모리)를 관리합니다

Hadoop의 한계

Hadoop은 혁명적이었지만, 심각한 한계가 있었습니다.
한계설명
느린 처리 속도MapReduce는 각 단계의 중간 결과를 디스크에 씁니다. I/O가 매우 많습니다
복잡한 프로그래밍Map과 Reduce 함수를 Java로 직접 작성해야 하여, 간단한 집계도 수십 줄의 코드가 필요합니다
반복 처리에 비효율ML처럼 같은 데이터를 반복 처리하는 작업에 매우 비효율적입니다
운영 복잡성Hadoop 클러스터를 직접 구축하고 운영하는 것이 매우 어렵습니다
Small File 문제작은 파일이 많으면 NameNode 메모리가 폭발합니다. 파일 1개당 약 150바이트의 메타데이터가 NameNode 힙에 올라가므로, 파일 1억 개면 NameNode에 약 15GB 메모리가 필요합니다
데이터 형식 난립CSV, JSON, Avro, Parquet, ORC 등 다양한 형식이 혼재하여, 어떤 형식으로 저장해야 최적인지 매번 고민해야 했습니다

실전 인사이트: Hadoop 클러스터를 직접 운영해본 사람만 아는 고통

Hadoop 시대를 직접 경험한 사람으로서, 그 시절의 고통을 구체적으로 전달하고 싶습니다. 오늘날 Spark와 레이크하우스가 왜 혁신인지를 이해하려면, Hadoop이 얼마나 힘들었는지를 알아야 합니다. HDFS NameNode 장애 — 새벽 호출의 공포 HDFS의 NameNode 는 파일 시스템의 메타데이터(어떤 파일이 어떤 DataNode에 저장되어 있는지)를 관리하는 단일 마스터 노드입니다. 이 NameNode가 죽으면 클러스터 전체가 멈춥니다. 데이터는 DataNode에 살아있지만, 메타데이터가 없으니 어디에 무엇이 있는지 아무도 모르는 상태가 됩니다.
[실제 인시던트 타임라인]
02:15 AM - NameNode 프로세스 OOM(Out of Memory)으로 크래시
02:17 AM - 모니터링 알림 → 당직 엔지니어 호출
02:35 AM - 엔지니어 접속, NameNode 재시작 시도
02:45 AM - NameNode가 fsimage + edit log를 읽어들이는 중... (파일 수백만 개)
03:20 AM - NameNode 복구 완료 (메타데이터 로딩에 35분 소요)
03:25 AM - DataNode들이 block report를 보내는 중...
03:50 AM - 클러스터 완전 복구 (총 다운타임: 약 1시간 35분)
04:00 AM - 밀린 MapReduce 잡들이 한꺼번에 실행되며 리소스 경쟁 발생
HA(High Availability)가 도입되기 전에는 이런 일이 월 1~2회 발생했습니다. HA를 구성해도 Standby NameNode로의 페일오버가 항상 깔끔하지는 않았고, ZooKeeper와의 연동 문제로 “brain split”(양쪽 NameNode가 모두 Active라고 주장하는 상황)이 발생하기도 했습니다. MapReduce로 WordCount는 쉽지만 조인은 지옥이었습니다 MapReduce의 대표 예제인 WordCount는 20줄이면 되지만, 두 개의 데이터셋을 조인 하려면 상황이 완전히 달라집니다.
// MapReduce로 두 테이블 조인하는 의사 코드 (실제로는 200줄 이상)
// 1. Mapper: 양쪽 데이터에 "출처 태그"를 붙여서 emit
// 2. Partitioner: 조인 키로 파티셔닝
// 3. Reducer: 같은 키의 레코드를 모아서 조인
// 4. 만약 한쪽 데이터가 메모리에 안 올라가면? → Map-Side Join 고려
// 5. 데이터 스큐가 있으면? → Salting + Secondary Sort 구현
// 6. NULL 키 처리? → Custom Comparator 작성
// → 간단한 LEFT JOIN 하나에 Java 클래스가 5개 이상 필요
오늘날 Spark에서 df1.join(df2, "key", "left") 한 줄이면 되는 것을, Hadoop MapReduce에서는 수백 줄의 Java 코드와 3~4시간의 디버깅 이 필요했습니다. 게다가 중간 결과가 모두 HDFS에 쓰여야 하므로, 3단계 조인(A-B-C)을 하면 중간 파일이 2번 생성되어 I/O 비용이 기하급수적으로 증가했습니다. Hadoop 클러스터 운영의 현실
운영 업무빈도소요 시간고통 지수
DataNode 디스크 교체주 1~2회 (노드 수십 대면)2~4시간중간
NameNode 메모리 튜닝월 1회반나절높음
YARN 큐 설정 조정수시 (팀 간 리소스 분쟁)1~2시간매우 높음
Hive 메타스토어 장애월 1~2회1~3시간높음
버전 업그레이드연 1~2회1~2주극도로 높음
보안 설정 (Kerberos)초기 1회 + 수시수일~수주지옥
💡 Kerberos 설정의 악몽: Hadoop 클러스터에 보안을 적용하려면 Kerberos 인증을 구성해야 했습니다. keytab 파일 관리, 티켓 갱신, 서비스 프린시펄 설정… 설정 하나 틀리면 클러스터 전체가 인증 실패로 멈춥니다. “Kerberos 없이 쓰면 안 되나요?”라고 물으면, 보안팀이 “안 됩니다”라고 답하는 것이 일상이었습니다.

3단계: Apache Spark의 등장 (2009~2015)

Spark의 탄생 — 왜 정말 혁신이었는지

UC Berkeley AMPLab의 Matei Zaharia 가 Hadoop MapReduce의 한계를 극복하기 위해 개발한 것이 Apache Spark 입니다.
비교 항목Hadoop MapReduceApache Spark
중간 결과 저장디스크메모리
처리 속도느림최대 100배 빠름
프로그래밍Java (복잡)Python, SQL, Scala (간결)
반복 처리매우 비효율효율적 (메모리 캐싱)
스트리밍별도 도구 필요내장 (Structured Streaming)
ML별도 도구 (Mahout)내장 (MLlib)
Spark가 정말 혁신이었던 이유를 구체적으로 설명하겠습니다. 혁신 1: 코드량의 극적 감소
# Spark에서의 조인 — 1줄
result = orders.join(customers, "customer_id", "left")

# Spark에서의 집계 — 3줄
daily_revenue = (
    orders
    .groupBy("order_date")
    .agg(sum("amount").alias("total_revenue"))
)
MapReduce에서 200줄이 필요했던 조인이 1줄 로, 50줄이 필요했던 집계가 3줄 로 줄었습니다. 이것만으로도 개발 생산성이 10배 이상 향상되었습니다. 혁신 2: 인터랙티브 분석의 가능성 MapReduce는 잡을 제출하고 30분~1시간을 기다려야 결과를 볼 수 있었습니다. Spark는 데이터를 메모리에 캐싱하고 즉시 쿼리 결과를 확인할 수 있어, 데이터 탐색과 분석이 비로소 “대화형”으로 가능해졌습니다. 노트북 환경(Databricks Notebook)과 결합되면서, 데이터 분석의 패러다임이 완전히 바뀌었습니다. 혁신 3: 통합 엔진 Hadoop 시절에는 배치는 MapReduce, SQL은 Hive, 스트리밍은 Storm, ML은 Mahout으로 각각 별도의 엔진을 배워야 했습니다. Spark는 하나의 엔진으로 배치, SQL, 스트리밍, ML을 모두 처리 할 수 있었습니다. 기술 스택이 단순해지면서, 팀에 필요한 인력과 학습 비용이 대폭 줄었습니다. 혁신 4: Lazy Evaluation과 Query Optimization Spark의 또 다른 혁신은 지연 평가(Lazy Evaluation) 입니다. 변환(transformation)을 호출해도 즉시 실행하지 않고, 액션(action)이 호출될 때 전체 실행 계획을 최적화한 뒤 한 번에 실행합니다. 이는 MapReduce에서는 불가능했던 쿼리 최적화 를 가능하게 했습니다. Catalyst 옵티마이저와 Tungsten 엔진이 자동으로 실행 계획을 최적화해주므로, 개발자가 직접 실행 순서를 고민하지 않아도 됩니다. 이 아키텍처는 이후 Databricks의 Photon 엔진으로 발전하여, SQL 워크로드에서 기존 Spark 대비 최대 12배 빠른 성능을 제공하게 됩니다.
💡 MapReduce에서 “join + filter + aggregate” 3단계를 실행하면 중간 결과가 HDFS에 2번 쓰여야 했습니다. Spark에서는 Catalyst가 filter를 join 앞으로 이동(predicate pushdown)시키고, 불필요한 컬럼을 제거(column pruning)하여 전체 실행 시간을 수십 배 줄입니다.

Databricks의 설립 (2013)

Spark를 만든 연구팀이 Databricks 를 설립하여, Spark를 기업이 쉽게 사용할 수 있는 관리형 플랫폼으로 제공하기 시작했습니다.
💡 Databricks가 해결한 핵심 문제: Spark 자체는 오픈소스로 무료이지만, 이것을 기업 환경에서 안정적으로 운영하려면 클러스터 프로비저닝, 모니터링, 보안 설정, 버전 관리 등 막대한 운영 비용이 필요했습니다. Databricks는 ”** Spark를 설치하지 않고도 5분 만에 사용할 수 있는 플랫폼**“을 제공하여, 데이터 팀이 인프라가 아닌 데이터 자체에 집중할 수 있게 만들었습니다. 이것이 Hadoop 시절 클러스터 운영에 팀 리소스의 40%를 쓰던 것에서, 0%로 줄이는 혁명적 전환이었습니다.
직접 경험으로 비교하면, Hadoop 클러스터를 온프레미스에서 세팅하는 데 2~4주 가 걸렸고, Spark on YARN 환경 구성에 추가 1주 가 필요했습니다. Databricks에서는 워크스페이스 생성 후 10분 이내 에 첫 번째 Spark 잡을 실행할 수 있었습니다.

4단계: 클라우드 데이터 웨어하우스 (2012~2018)

Hadoop과 Spark가 빅데이터 처리를 해결하는 동안, SQL 분석 을 위한 클라우드 데이터 웨어하우스도 등장했습니다.
서비스출시 연도제공사특징
Amazon Redshift2012AWS최초의 클라우드 데이터 웨어하우스
Google BigQuery2012Google서버리스, 자동 확장
Snowflake2014Snowflake Inc.스토리지/컴퓨트 분리, 멀티 클라우드
Azure Synapse2019MicrosoftSpark + SQL 통합

2-Platform 문제

이 시기에 많은 기업들은 데이터 레이크(Hadoop/Spark)와 데이터 웨어하우스(Redshift/Snowflake)를 동시에 운영 해야 했습니다. 이로 인한 데이터 복사, 비용 증가, 거버넌스 분산 문제가 심각해졌습니다.

실전 인사이트: 2-Platform 시대의 고통

이 시기를 직접 경험한 입장에서, 2-Platform 운영이 얼마나 비효율적이었는지 구체적으로 설명하겠습니다. 전형적인 2-Platform 아키텍처:
단계흐름
원본 데이터→ S3 (데이터 레이크)
ETL 경로 1Spark로 ETL → S3 (가공된 데이터) → COPY INTO → Redshift/Snowflake (DW) → BI 대시보드
ETL 경로 2Spark MLlib로 ML 모델 학습
문제: S3의 데이터와 DW의 데이터가 “다른 버전”이 되는 순간이 발생합니다
2-Platform의 고통구체적 상황
데이터 불일치S3에서 ETL을 다시 돌렸는데 DW에는 반영이 안 되어, 대시보드와 ML 모델이 서로 다른 데이터를 보고 있음
비용 2배같은 데이터를 S3에도, Redshift에도 저장. 스토리지 비용이 사실상 2배
거버넌스 분산S3의 접근 권한은 IAM으로, Redshift의 접근 권한은 SQL GRANT로 별도 관리. 정합성 보장 불가
ETL 지옥데이터 레이크 → DW로 데이터를 복사하는 ETL 파이프라인이 별도로 필요. 이 파이프라인이 실패하면 분석 지연
스키마 관리데이터 레이크(Schema-on-Read)와 DW(Schema-on-Write)의 스키마가 달라서 매핑 로직 유지 필요
💡 이 고통을 한 문장으로 요약하면: ”** 같은 데이터를 두 곳에 두고, 두 곳을 동기화하는 데 팀의 30% 이상의 시간을 쓰고 있었다**“입니다. 레이크하우스는 바로 이 문제를 해결하기 위해 탄생했습니다.

5단계: 레이크하우스의 시대 (2019~현재)

Delta Lake와 레이크하우스 (2019~2020)

Databricks는 2-Platform 문제를 해결하기 위해 Delta Lake 를 오픈소스로 공개하고(2019), 레이크하우스 아키텍처 논문을 발표했습니다(2020).
“데이터 레이크의 유연성과 저비용 + 웨어하우스의 성능과 안정성 = 레이크하우스”
레이크하우스가 이전 시대의 문제를 어떻게 해결했는지 구체적으로 살펴보겠습니다.
이전 시대의 고통레이크하우스의 해결책
HDFS NameNode 단일 장애점클라우드 오브젝트 스토리지(S3/ADLS)는 99.999% 내구성. 인프라 운영 불필요
MapReduce의 느린 처리Spark 엔진 + Photon(C++ 네이티브 엔진)으로 초고속 처리
2-Platform 데이터 복사Delta Lake 하나로 ETL, SQL 분석, ML을 모두 처리. 복사 불필요
거버넌스 분산Unity Catalog로 데이터, ML 모델, AI 에이전트까지 단일 거버넌스
클러스터 운영 부담Serverless 컴퓨트로 인프라 관리 완전 제거
스키마 관리 복잡성Delta Lake의 스키마 강제(Schema Enforcement)로 데이터 품질 보장
💡 레이크하우스의 핵심 혁신은 ”** 데이터를 한 곳에만 저장하고, 그 위에서 모든 워크로드(ETL, SQL, ML, AI)를 실행한다**“는 것입니다. 2-Platform 시대에 데이터를 복사하느라 허비했던 시간과 비용이 사라집니다.

현재의 모습 (2023~2026)

트렌드설명
GenAI 통합대규모 언어 모델(LLM)을 데이터 플랫폼에 통합. Agent 개발 지원
서버리스 전환인프라 관리 부담 제거. 사용한 만큼만 과금
오픈 포맷 수렴Delta Lake와 Iceberg의 상호 운용성 강화 (UniForm)
통합 거버넌스Unity Catalog로 데이터, ML 모델, AI 에이전트까지 통합 관리
Lakebase레이크하우스에 OLTP(PostgreSQL) 기능까지 통합
💡 시대의 흐름을 한 문장으로: “직접 운영하던 것을 관리형 서비스로, 분산되어 있던 것을 하나로 통합하는 것”이 빅데이터 기술 진화의 일관된 방향입니다. Hadoop 시절에는 HDFS, MapReduce, Hive, YARN을 각각 설치하고 관리했지만, 레이크하우스 시대에는 하나의 플랫폼에서 모든 것이 통합되어 제공 됩니다. 이 교육 과정에서 배우실 Databricks의 모든 기능은, 바로 이 “통합과 단순화”의 철학 위에 서 있습니다.
Hadoop 시절에는 10명의 팀에 인프라 엔지니어 3명, Spark 개발자 4명, DW 관리자 2명, 거버넌스 담당자 1명이 필요했습니다. 레이크하우스 시대에는 같은 규모의 일을 데이터 엔지니어 3~4명 으로 처리할 수 있습니다. 남는 인력은 데이터 품질, ML 모델링, AI 에이전트 개발 같은 비즈니스 가치를 직접 만드는 일 에 투입할 수 있게 되었습니다.
시대기간핵심 기술전환 계기
Hadoop 시대2006~2012Hadoop (분산 저장/처리)-
Spark + Cloud DW 시대2013~2018Spark + Cloud DW (2-Platform)Hadoop의 처리 속도 한계
Lakehouse 시대2019~현재Lakehouse (통합 플랫폼)2-Platform 간 데이터 복사 문제

실전 인사이트: 각 시대를 관통하는 교훈

20년간 Hadoop → Spark → Cloud DW → Lakehouse의 전환을 모두 겪으면서 얻은 교훈을 정리합니다.
교훈설명
기술 부채는 복리로 쌓입니다Hadoop MapReduce로 작성한 ETL 코드를 Spark로 마이그레이션하는 데 6개월이 걸렸습니다. 새 기술이 나올 때마다 기존 코드를 전환하는 비용이 발생하므로, 처음부터 오픈 표준(Open Format) 을 사용하는 것이 장기적으로 유리합니다
인프라 운영은 핵심 역량이 아닙니다Hadoop 클러스터 운영에 팀의 40% 시간을 쓰고 있었는데, 관리형 서비스(Databricks)로 전환한 후 그 시간을 데이터 품질과 비즈니스 로직에 투자할 수 있게 되었습니다
거버넌스를 나중에 하면 10배 어렵습니다Hadoop 시절 “일단 데이터부터 넣자”고 S3에 무제한으로 데이터를 적재했다가, 나중에 Unity Catalog로 거버넌스를 적용할 때 “이 데이터가 뭔지”, “누가 만들었는지”, “PII가 있는지”를 역추적하는 데 수개월이 걸렸습니다
데이터 엔지니어의 역할이 진화합니다Hadoop 시절에는 “인프라 운영자”, Spark 시절에는 “ETL 개발자”, 레이크하우스 시대에는 “데이터 플랫폼 아키텍트 + AI 파이프라인 설계자”로 역할이 계속 확장되고 있습니다
💡 이 역사를 왜 알아야 하나요? Databricks의 모든 기능(Delta Lake, Unity Catalog, Serverless, Lakehouse)은 앞선 시대의 구체적인 고통 을 해결하기 위해 만들어졌습니다. 이 맥락을 이해하면, 각 기능이 왜 중요한지, 왜 이렇게 설계되었는지를 훨씬 깊이 이해하실 수 있습니다.

주요 인물과 조직

인물/조직기여
GoogleGFS, MapReduce, BigTable, BigQuery — 분산 시스템의 기초를 놓았습니다
Doug CuttingApache Hadoop을 창시했습니다. “Hadoop”이라는 이름은 아들의 코끼리 인형에서 따왔습니다
Matei ZahariaApache Spark를 창시하고 Databricks를 공동 설립했습니다
Ali GhodsiDatabricks CEO. 레이크하우스 비전을 이끌고 있습니다
Jay KrepsApache Kafka를 창시하고 Confluent를 설립했습니다
Benoit DagevilleSnowflake를 공동 설립했습니다
💡 흥미로운 사실: Databricks의 창업 멤버 7명은 모두 UC Berkeley AMPLab 출신입니다. 학계에서 시작된 연구가 산업을 바꾼 대표적인 사례입니다. Spark의 핵심 아이디어인 RDD(Resilient Distributed Dataset) 는 Matei Zaharia의 2012년 박사학위 논문에서 발표되었으며, 이것이 오늘날 전 세계 수천 개 기업이 사용하는 데이터 처리 엔진의 기초가 되었습니다.
또한 이 역사에서 주목할 점은, 모든 혁신이 “이전 시스템의 구체적인 고통”에서 출발 했다는 것입니다. Google이 GFS를 만든 것은 기존 파일 시스템이 웹 크롤링 데이터를 감당하지 못했기 때문이고, Spark가 만들어진 것은 MapReduce의 디스크 I/O가 ML 워크로드에 치명적이었기 때문이고, Delta Lake가 만들어진 것은 데이터 레이크에 트랜잭션과 스키마 관리가 없어서 “데이터 늪(Data Swamp)“이 되어가고 있었기 때문입니다.

정리

시대핵심 기술해결한 문제남은 한계
RDBMS(1970~)Oracle, MySQL구조화된 데이터의 안전한 관리대용량 데이터 처리 불가
Hadoop(2006~)HDFS, MapReduce대용량 데이터의 분산 저장/처리느린 속도, 복잡한 프로그래밍
Spark(2014~)Apache Spark빠른 인메모리 처리, 간결한 API레이크의 거버넌스/신뢰성 부재
Cloud DW(2012~)Redshift, Snowflake빠른 SQL 분석, 관리 편의성2-Platform 문제, 데이터 복사
Lakehouse(2020~)Delta Lake, Unity Catalog통합 플랫폼, 오픈 포맷, 거버넌스현재 진행형으로 발전 중
이 표를 보면 하나의 패턴이 보입니다. 각 시대의 “남은 한계”가 다음 시대의 “해결한 문제”가 됩니다. RDBMS가 대용량을 처리하지 못해서 Hadoop이 나왔고, Hadoop이 느려서 Spark가 나왔고, 2-Platform이 복잡해서 Lakehouse가 나왔습니다. 이 교육 과정을 통해 여러분은 현재 Lakehouse가 해결하고 있는 문제들과, 그 위에서 새롭게 열리고 있는 가능성(GenAI, Agent, Lakebase)을 체계적으로 학습하게 됩니다. 다음 문서에서는 현재의 빅데이터 생태계 에 어떤 솔루션들이 있고, 주요 벤더들의 위치를 살펴보겠습니다.

참고 링크