ETL이란 무엇인가요? 데이터를 옮기는 세 단계

Wonkook Lee·2026년 9월 27일
post-thumbnail

고객사의 데이터를 새 시스템으로 옮기는 제품을 만든 적이 있습니다. 같은 뜻의 데이터라도 고객사마다 모습이 달랐습니다. 어떤 곳은 employee_id, 어떤 곳은 사번이라고 불렀고, 날짜는 2026-05-01이기도 2026.05.01이기도 했습니다. 재직 상태는 재직, Y, 1로 제각각이었습니다. 그전까지는 사람이 엑셀을 열어 하나씩 맞추고 고쳐서 다시 올리고 있었습니다.

그 일을 제품으로 옮기다 보니 자연스럽게 ETL(Extract, Transform, Load)이라는 구조와 맞닿았습니다. 데이터 웨어하우스 문맥에서 자주 나오는 말이지만, 서로 다른 시스템 사이에서 데이터를 안전하게 옮길 때마다 되풀이되는 구조이기도 합니다. 글은 아래 질문들을 차례로 다룹니다.

  • Extract: 매번 전체를 가져올지, updated_at이나 CDC로 바뀐 것만 가져올지. 그리고 가져온 데이터를 바로 쓰지 않고 스테이징에 두는 이유
  • Transform: 컬럼 이름을 잇는 스키마 매핑, Y·재직·1을 하나로 모으는 값 정규화, 부서 이름을 조직 ID로 바꾸는 관계 복원
  • Validation: 형식이 맞는 데이터와 업무적으로 올바른 데이터는 다릅니다. 퇴사일이 입사일보다 앞선 행은 문법상 멀쩡합니다
  • Load: 10만 건 중 7만 번째에서 실패했을 때, 이미 저장된 69,999건을 어떻게 할 것인가
  • 재현·재실행·관찰·추적 가능성: 실패한 한 행이 어떤 원본에서 어떤 규칙을 거쳐 어디서 멈췄는지 답할 수 있어야 하는 이유
  • ETL과 ELT: 변환이 적재 전인지 후인지. ELT가 ETL을 대체하는 상위 방식은 아닙니다

서로 다른 두 시스템 사이로 데이터가 옮겨 가면 그 사이에는 거의 항상 의미를 번역하는 과정이 있습니다. ETL은 그 과정을 세 단계로 나눠 생각하게 해 주는 오래되고 단순한 모델이고, 실제로 만들다 보면 그 세 글자 사이로 검증과 실패, 재시도와 추적이 들어옵니다.

전문은 블로그에서 이어집니다 👇

▶ ETL이란 무엇인가요? 데이터를 옮기는 세 단계 (전문 보기)

다른 글도 블로그에서 이어집니다 · 전체 목차 보기

profile
https://blog.wonkooklee.com

0개의 댓글