80% 문제
모든 ML 프로젝트, 모든 대시보드, 모든 분석 리포트, 모든 자동화 이메일 — 전부 어딘가 지저분한 데서 온 데이터 위에 얹혀 있어. 업계 설문은 15년째 같은 얘기를 해. 실무자들은 시간의 약 80% 를 데이터 wrangling 에 쓰고, 그 데이터로 하려던 진짜 일에는 20% 만 써. 비율은 조금씩 흔들려도 순서가 뒤집힌 적은 없어.
그 80% 가 데이터 엔지니어링이야. 화려하지 않아. 슬라이드에 못 넣는 일이야. 근데 더러운 데이터로 학습한 모델은 당연히 쓰레기 예측을 뱉고, 일관성 없는 schema 를 먹은 대시보드는 당연히 거짓말을 해. 숨은 가정을 깔고 앉은 파이프라인은 당연히 새벽 3시에 조용히 죽고 — 만든 사람은 8개월 전에 회사를 떠났지.
이 quest 에서 말하는 "데이터 엔지니어링"
이 단어, 좀 부풀려져 있어. 어떤 사람들한텐 "페타바이트 처리하는 Spark cluster 만들기" 야. 그것도 진짜 직업이긴 한데 소수의 일이고. 대부분의 실무자한테 — 이 quest 를 읽는 사람 거의 전부한테 — 데이터 엔지니어링은 훨씬 손에 잡히는 일이야.
- 지저분한 파일 읽기 — 타입이 섞인 CSV, merged cell 투성이 Excel, 4단계로 중첩된 JSON 안에 진짜 뭐가 들었는지 파악하기.
- 청소 — 타입 고치고, 날짜 파싱하고, null 처리하고, 문자열 정규화하고, 중복 걷어내기.
- 변환 — 테이블 join, aggregate, 새 컬럼 derive, wide-to-long reshape.
- 검증 — schema drift 가 downstream model 을 망가뜨리기 전에 잡아내기.
- 산출 — 다른 사람이 (또는 미래의 너가) 검산 없이 믿고 쓸 수 있는 결과물 내놓기.
이게 일이야. 거의 다 Python 으로 하고, version control 안에 살고, 테스트를 받아. 나중에 페타바이트로 키우고 싶으면 같은 사고방식이 그대로 따라가 — Pandas 를 Spark 나 Dask 로 바꿔 끼우면 돼. 분야는 그대로야.
이 quest 끝나면 할 수 있는 것
- 웬만한 파일 포맷 (CSV, Excel, JSON, Parquet, Arrow IPC) 을 읽고, auto-detect 대신 explicit schema 를 직접 세우기.
- Pandas 나 Polars 중 상황에 맞는 쪽으로 청소하고 변환하기.
- 한 번 돌리든 스무 번 돌리든 같은 결과를 내는 idempotent 파이프라인 짜기.
- Pandera 나 Great Expectations 로 downstream 에 보내기 전에 검증하기.
- Airflow / Dagster / Prefect 로 스케줄 걸고 모니터링하기 — 그리고 왜 그걸 골랐는지 설명하기.
- Star schema 와 slowly changing dimension 으로 dimensional model 을 짜고 dbt 로 transformation 표현하기.
- 비용, lineage, PII — 일회성 스크립트를 시스템으로 만드는 것들을 따져보기.
여기까지가 약속이야. 남은 46개 lesson 이 거기까지 데려다줄게.