ELT (Extract, Load, Transform) 프로세스 - 클라우드 기반 모던 데이터 스택
핵심 인사이트 (3줄 요약)
- 본질: ELT(Extract, Load, Transform)는 더러운 데이터를 밖에서 먼저 씻고(Transform) 넣었던 과거의 무거운 ETL 방식과 달리, **"일단 수백 테라바이트의 원시 데이터(Raw)를 클라우드 데이터 웨어하우스나 데이터 레이크(S3)에 무식하게 다 부어놓고(Load), 그 안에서 데이터 분석가들이 직접 SQL로 지지고 볶아(Transform) 분석하는 최신 파이프라인 아키텍처"**다.
- 가치: 중간에 변환을 담당하던 거대한 전용 서버(Informatica 등)를 삭제해버림으로써 병목 현상을 0으로 만들고, Snowflake나 BigQuery가 가진 무한대의 병렬 분산 컴퓨팅(MPP) 파워를 데이터 변환(T)에 그대로 써먹는 미친 속도와 가성비의 역전을 이룩했다.
- 융합: 이 패러다임 시프트는 데이터 웨어하우스(DW)와 데이터 레이크(Data Lake)의 경계를 허문 데이터 레이크하우스(Data Lakehouse) 아키텍처와 융합되며, **dbt(Data Build Tool)**와 같은 선언적(SQL) 변환 오케스트레이션 툴을 탄생시켜 전 세계 데이터 엔지니어링 생태계(모던 데이터 스택)를 100% 집어삼켰다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: Extract(가져와서), Load(일단 저장창고에 다 부어!), Transform(그리고 창고 안에서 요리하자!). 즉, 데이터의 '변환' 작업이 일어나는 물리적 장소를 밖(External)에서 안(Internal)으로 완전히 옮겨버린 클라우드 최적화 기법이다. 옛날에는 씻지 않은 흙 묻은 감자(원시 데이터)를 창고(DW)에 넣는 것이 금기였지만, 이제는 흙 묻은 감자부터 껍질 깐 감자, 요리된 감자튀김까지 몽땅 한 창고에 때려 넣는다.
-
필요성: 2010년대 후반, 아마존(AWS)과 구글(GCP)에서 서버(컴퓨팅 파워)와 하드디스크(스토리지)를 따로따로 무한대로 늘릴 수 있는 사기 템(Redshift, Snowflake)을 팔기 시작했다. 회사의 데이터 엔지니어들이 충격을 받았다. "어차피 S3 하드디스크 값은 거의 공짜인데, 굳이 중간 서버에서 데이터를 예쁘게 깎느라 밤새면서 병목(ETL)을 겪을 필요가 있을까? 그냥 흙 묻은 데이터 수억 건을 S3에 0.1초 만에 다 부어놓고, 우리가 Snowflake에 1만 대짜리 엑셀을 돌리라고 명령(SQL)해서 안에서 깎아버리면 1분 만에 끝나잖아!" 이렇게 클라우드 컴퓨팅 자원의 무한함이 기존 ETL의 목구멍(병목)을 터뜨리면서 ELT라는 혁명이 터져 나왔다.
-
💡 비유: 초대형 코스트코(클라우드 DW) 물류 센터를 상상해 봅시다.
- ETL 방식 (과거): 밖에서 사과 1만 박스를 사 옵니다. 코스트코 입구 좁은 세척장(중간 서버)에서 직원 5명이 1만 박스의 사과를 일일이 다 씻고, 광을 내고, 예쁘게 포장(Transform)한 다음에야 코스트코 안으로 반입(Load)합니다. (입구에서 교통 마비 발생)
- ELT 방식 (현재): 흙 묻은 사과 1만 박스를 대형 트럭으로 그냥 코스트코 넓은 1층 구석 빈 공터에 싹 다 부어버립니다(Load). 입구 병목이 제로입니다. 그리고 코스트코 안에서 노는 알바생 1,000명(병렬 컴퓨팅 엔진)을 동시에 투입해서, 코스트코 건물 안에서 순식간에 씻고 예쁘게 진열(Transform)해 버립니다!
-
등장 배경 및 발전 과정:
- ETL의 한계와 병목 (2000년대): 데이터가 테라바이트를 넘어가자, 중간에 T(변환)를 담당하는 별도의 물리 서버(ETL 솔루션)의 메모리가 터지고 매일 새벽 배치 시간이 모자라 아침 9시에 리포트가 안 나오는 참사 빈발.
- 데이터 레이크의 등장 (2010년대 초): 하둡(Hadoop)과 AWS S3가 나오면서, 일단 모든 원시 데이터(Raw Data)를 쑤셔 넣는 'Schema-on-Read' 철학이 싹틈.
- 클라우드 DW의 무력화 (현재): Snowflake, BigQuery가 SQL 하나로 페타바이트급 분산 연산을 1초 만에 끝내버리는 괴력을 보여주자, 밖에서 T(변환)를 하던 모든 파이프라인이 DW 안으로 흡수되는 **모던 데이터 스택(Modern Data Stack)**으로 완전히 재편되었다.
-
📢 섹션 요약 비유: 요리(Transform)를 주방 밖에서 다 하고 식당 안(DW)으로 들어오는 게 아니라, 무조건 식자재(데이터)를 식당 안에 다 때려 부어놓은 뒤에, 식당 안에 있는 1,000개의 가스레인지(MPP 엔진)를 동시에 틀어서 순식간에 요리해 내는 궁극의 화력 싸움입니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
모던 데이터 스택(MDS)에서의 ELT 파이프라인 구조
ETL과 달리 ELT는 **T(변환)**의 주도권이 IT 인프라팀이 아니라 '현업 데이터 분석가(Analytics Engineer)'에게 넘어간다.
┌───────────────────────────────────────────────────────────────┐
│ 클라우드 네이티브 기반 ELT (Extract-Load-Transform) 아키텍처 │
├───────────────────────────────────────────────────────────────┤
│ │
│ [ 1. Extract & Load (가져와서 냅다 붓기) ] │
│ - 도구: Fivetran, Airbyte (무식하게 복사만 잘하는 녀석들) │
│ - 행동: 사내 오라클 DB, 페이스북 광고 로그, 카카오톡 상담 텍스트 등 │
│ 모든 원시 데이터를 15분마다 퍼와서 클라우드 DW에 일단 다 부어버림!│
│ │
│ ▼ (인터넷) ─▶ ☁️ AWS Snowflake / GCP BigQuery 내부로 진입! │
│ =============================================================│
│ │
│ [ 2. 클라우드 DW 내부의 메달리온 아키텍처 (Medallion Architecture) ] │
│ │
│ 🥉 Bronze Layer (Raw) │
│ - 방금 밖에서 부어버린 흙 묻은 원시 데이터가 썩기 전 그대로 쌓인 곳. │
│ │
│ ▼ 🛠️ Transform 1: dbt (Data Build Tool)가 SQL로 씻어냄 │
│ │
│ 🥈 Silver Layer (Cleansed/Conformed) │
│ - 중복 제거, 결측치 처리, 오타('남/M')를 통일한 깨끗한 재료 창고. │
│ │
│ ▼ 🛠️ Transform 2: dbt가 부서별 입맛에 맞게 SQL로 조인(Join)함│
│ │
│ 🥇 Gold Layer (Data Mart) │
│ - 마케팅팀, 재무팀이 바로 대시보드(BI)에 띄워서 볼 수 있게 완벽하게 │
│ 별 모양(Star Schema)으로 요리(Aggregation)가 끝난 최종 진열장.│
└───────────────────────────────────────────────────────────────┘
[다이어그램 해설] ELT 아키텍처의 가장 위대한 혁신은 '스키마 온 리드(Schema-on-Read)' 철학이다. 옛날엔 데이터를 넣을 때(Write) 미리 예쁜 표(Schema)를 다 깎아놓지 않으면 에러가 나서 안 들어갔다. 그런데 ELT는 넣을 때는 일단 스키마 따위 개나 줘버리고(JSON 통째로) 무식하게 다 때려 넣는다(Bronze). 그리고 나중에 데이터 분석가가 "아, 여기서 회원 번호만 빼서 조인해 볼까?"라고 쿼리를 읽을 때(Read) 비로소 스키마(형태)를 유연하게 깎아낸다. 이 구조 덕분에 "일단 데이터부터 킵(Keep)해두자"는 빅데이터의 기본 생존권이 완벽하게 보장된다.
ELT 파이프라인의 심장: dbt (Data Build Tool)
과거 ELT는 DW 안에서 SQL 프로시저를 10만 줄짜리 스파게티로 떡칠해 놔서 누구도 못 고치는 레거시 폭탄이었다. 이를 구원한 것이 dbt다.
- dbt는 데이터를 직접 이리저리 옮기는 무거운 툴이 아니다.
- 그저 데이터 엔지니어가
SELECT문 50줄짜리를 예쁘게 조각조각 모듈화해서 Git에 올려두면, dbt가 그 조각들을 엮어서 거대한 SQL 오케스트라 악보(DAG)로 컴파일한 뒤, **클라우드 DW(Snowflake)의 머릿속에 던져넣고 "이 순서대로 실행해!"라고 지시만 내리는 날렵한 지휘자(오케스트레이터)**다. 이것이 ELT가 전 세계를 정복할 수 있었던 마지막 퍼즐 조각이다.
Ⅲ. 실무 적용 및 기술사적 판단
실무 시나리오
-
시나리오 — 구시대 ETL 서버의 메모리 폭발과 실시간 분석 실패: 글로벌 이커머스에서 매일 새벽 Informatica(ETL 툴)를 돌려 오라클 DB에서 데이터를 긁어와 분석용 DW에 넣었다. 블랙프라이데이에 트래픽이 5배 폭증했다. ETL 서버의 램(RAM) 256GB가 폭발하며 다운되었다. DBA는 멘붕에 빠졌다. "ETL 장비를 더 큰 걸로 사야 하나요?"
- 판단: 스케일 업(Scale-up)에 한계가 명확한 전통적 미들 티어(Middle-tier) ETL 아키텍처의 치명적 병목이다.
- 해결책: 즉시 파이프라인을 ELT로 해체해야 한다. 무거운 변환 작업을 중간에 세워둔 ETL 서버에서 다 빼앗아버리고, 깡통 복사기(Airbyte 등)를 써서 데이터를 일단 AWS S3 나 Redshift(DW)에 그대로 밀어 넣는(Load) 데만 100% 집중한다. 그러면 데이터는 밀리지 않고 수초 만에 DW 안으로 다 들어온다. 그 이후 블랙프라이데이의 무지막지한 5배 물량 변환(Transform) 처리는, 버튼 한 번 클릭하면 1분 만에 CPU 코어를 100개에서 10,000개로 미친 듯이 쫙 늘릴 수 있는(Elastic Compute) 클라우드 DW의 무한대 분산 컴퓨팅(MPP) 엔진에 던져버린다. 병목 제로, 지연 제로의 기적이 일어난다.
-
시나리오 — 데이터 유실과 원상 복구(Rollback) 불가의 늪: 옛날 ETL 방식으로 마케팅팀에 데이터를 밀어줬다. 그런데 개발팀의 코딩 실수로, 고객의 나이를 전부
나이 - 10살로 잘못 변환(Transform)해서 DW에 밀어 넣었다. 3일 뒤 이 사실을 발견한 마케팅팀이 길길이 날뛰며 "원래 나이로 되돌려 놔!"라고 소리쳤다. 하지만 이미 변환된 데이터만 덮어써져 있고, 3일 전 운영 DB의 원본 로그는 날아간 상태였다. 영원히 복구 불가.- 판단: 중간(ETL)에서 데이터를 깎아 먹으면서 원시 데이터(Raw Data)를 영구 보존하지 않아 터진 돌이킬 수 없는 재앙이다.
- 해결책: ELT 아키텍처의 Bronze Layer (Raw 데이터 보존) 철학이 이래서 위대하다. ELT는 일단 원본 날것 그대로의 데이터를 무조건 창고 한구석(S3 Data Lake)에 영구 박제(Load)해 둔다. 그 이후에
나이 - 10살이라는 잘못된 SQL(Transform)을 쳐서 은/금계층(Silver/Gold)을 만들었더라도 아무 문제가 없다. 앗 실수했네? 그러면 그냥 은/금계층을 다 날려버리고, 보관되어 있던 원래의 흙 묻은 원시 데이터(Bronze)를 꺼내서 올바른 SQL(나이 + 10살)을 다시 돌려(Transform) 1초 만에 새로운 황금 데이터를 복구(Replay)해 내면 끝이다. ELT는 이처럼 어마어마한 **비즈니스적 타임머신 복원력(Resilience)**을 제공한다.
도입 체크리스트
- 비용 최적화 (FinOps): 클라우드 DW(Snowflake, BigQuery)의 무한 파워를 믿고 ELT를 도입하면 천국이 올까? 천만의 말씀이다. 클라우드 DW는 "쿼리(SQL)를 돌릴 때마다" 돈이 어마어마하게 나가는 악덕 종량제 구조다. 멍청한 주니어 분석가가
SELECT * FROM 10억건 JOIN 10억건이라는 무식한 변환(T) SQL을 매시간 돌려버리면 다음 달 회사에 수억 원의 AWS 요금 폭탄이 날아온다. ELT를 도입할 때는 반드시 **Incremental Materialization(바뀐 것만 딱 골라서 변환하는 dbt의 증분 업데이트 기술)**과 같은 극한의 쿼리 다이어트 거버넌스가 결합되어야만 회사가 파산하지 않는다.
Ⅳ. 기대효과 및 결론
정량/정성 기대효과
| 구분 | 레거시 ETL (중간 서버 변환) | 클라우드 ELT (DW 내부 변환) | 모던 데이터 스택 혁신 효과 |
|---|---|---|---|
| 정량 (파이프라인 속도) | 중간 서버 I/O 병목으로 야간 5시간 소요 | 클라우드 DW 분산 연산으로 수십 분 내 완료 | 실시간(Near Real-time) 분석에 가까운 데이터 신선도 확보 |
| 정량 (데이터 유실 리스크) | 변환 중 버그 나면 원본 손실로 영구 복구 불가 | Raw 데이터를 S3에 일단 다 보존 (Bronze) | 변환(T) 로직 오류 시 100% 원본 무손실 재처리(Replay) 보장 |
| 정성 (조직 사일로 파괴) | 자바/파이썬 아는 백엔드 개발자만 ETL 통제 | 현업 분석가도 아는 SQL만으로 변환(T) 통제 | **애널리틱스 엔지니어(Analytics Engineer)**라는 신직업군 창출 |
과거 데이터의 흐름이 중앙 IT 부서가 무거운 장비(ETL 서버)를 독점하고 "우리가 다 깎아서 줄 테니 며칠 기다려!"라며 권력을 행사하던 관료제였다면, 현대의 ELT는 **"일단 데이터 호수에 원석을 다 던져놓을 테니, 현업 부서 너희가 필요한 만큼 직접 SQL 정 같은 걸로 쪼아서 조각상(Mart) 만들어 써라!"**라며 권한을 아래로 확 뿌려버리는 민주화 혁명(Data Democratization)이다. 기술사는 무겁고 유연하지 못한 ETL 도구의 고정관념에서 벗어나, 무한대의 클라우드 스토리지와 컴퓨팅 자원을 레버리지 삼아 데이터를 있는 그대로 받아들이고(Load First) 무한대로 재가공하는 ELT(모던 데이터 스택)의 광활한 아키텍처 세계로 조직을 안내해야 한다.
📌 관련 개념 맵 (Knowledge Graph)
| 개념 명칭 | 관계 및 시너지 설명 |
|---|---|
| 데이터 레이크하우스 (Lakehouse) | 싸구려 데이터 호수(Data Lake, S3)와 강력한 분석 창고(Data Warehouse)를 합쳐버린 궁극의 혼혈아. ELT 아키텍처가 뛰어놀 수 있는 완벽한 운동장이자 최신 스토리지 패러다임이다. |
| 메달리온 아키텍처 (Medallion) | 데이터 브릭스(Databricks)가 제창한 ELT 데이터 정제 모델. 무식하게 부은 흙 묻은 원석(Bronze)을 씻어서 은(Silver)으로 만들고, 완벽하게 조립해 금(Gold)으로 내놓는 3단계 수술 과정. |
| dbt (Data Build Tool) | ELT 세계의 절대 반지. DW 안에서 데이터를 변환(Transform)할 때 10만 줄의 스파게티 SQL이 꼬이지 않도록, 개발자처럼 깃(Git)과 모듈화로 깔끔하게 엮어주는 혁명적 오케스트레이션 도구. |
| Schema-on-Read (읽을 때 스키마 생성) | ELT의 사상적 핵심. 데이터를 쑤셔 넣을 때(Load)는 표(Table) 모양을 안 맞추고 그냥 냅다 부어버리고, 나중에 분석가가 쿼리를 쏠 때(Read) 비로소 예쁜 표 형태로 깎아내는 유연한 저장 방식. |
| 애널리틱스 엔지니어 (Analytics Engineer) | ELT 시대가 낳은 신종 직업. 옛날엔 파이썬 백엔드 개발자가 파이프라인을 다 짰지만, 이제는 SQL만 칠 줄 아는 똑똑한 데이터 분석가가 dbt를 쥐고 직접 파이프라인을 통제하는 포지션. |
👶 어린이를 위한 3줄 비유 설명
- 갯벌에서 예쁜 조개를 1만 개 주워왔어요. 옛날(ETL)엔 집 밖 수돗가에서 1만 개를 엄마 아빠가 5시간 동안 다 씻고, 완벽하게 반짝이는 것만 집안(창고)으로 들여보냈어요.
- 하지만 최신식 아파트(ELT)는 달라요! 일단 흙 묻은 조개 1만 개를 집안의 거대한 마법 세탁기에 한 번에 우르르 다 쏟아부어 버려요(Load)!
- 그리고 마법 세탁기(클라우드 짱짱맨 컴퓨터)의 슈퍼 버튼을 꾹 누르면, 집안에서 1초 만에 흙이 다 씻겨나가고 예쁜 보석함(Transform)으로 짠! 하고 변신하는 엄청나게 빠르고 신기한 기술이랍니다!