데이터 클리닝과 변환
AI로 지저분한 데이터 클리닝 — 비일관성 수정, 중복 처리, 형식 표준화, 원시 데이터를 신뢰할 수 있는 데이터셋으로 변환하는 파이프라인 구축.
프리미엄 강좌 콘텐츠
이 레슨은 프리미엄 강좌의 일부예요. Pro로 업그레이드하면 모든 프리미엄 강좌와 콘텐츠를 이용할 수 있어요.
- 모든 프리미엄 강좌 이용
- 1000개 이상의 AI 스킬 템플릿 포함
- 매주 새로운 콘텐츠 추가
🔄 Quick Recall: 이전 레슨에서 AI로 데이터베이스 스키마를 설계했어요 — 비즈니스 요구사항에서 적절한 타입, 제약조건, 인덱스를 갖춘 정규화된 테이블까지. 이번에는 진짜 도전: 그 테이블에 들어가는 데이터가 거의 깨끗하지 않다는 것.
데이터 품질 문제
데이터베이스 전문가라면 이 사실을 알아요: 데이터는 지저분해요. 고객명 대소문자가 비일관적이에요. 전화번호가 5가지 형식으로 와요. 날짜가 YYYY-MM-DD와 MM/DD/YYYY를 섞어요. 중복이 곳곳에 숨어있어요.
AI가 데이터 클리닝을 수동 스크립팅 시간에서 안내된 체계적 프로세스로 바꿔요. 문제를 설명하면 AI가 정리 스크립트를 생성해요.
1단계: 클리닝 전에 프로파일
데이터를 이해하기 전에 절대 클리닝을 시작하지 마세요. AI에게 칼럼별 NULL/빈값 수, 고유값 수(비일관성 발견), 도시·지역의 샘플 고유값(형식 이슈 확인), 날짜 형식 일관성, 숫자 변환 가능 여부, 잠재 중복(같은 이메일, 다른 이름)을 분석하는 쿼리를 요청하세요.
✅ Quick Check: 프로파일링 쿼리가 특히 “도시와 지역의 고유값"을 확인하는 이유는? 도시·지역 칼럼은 비일관성으로 악명 높기 때문이에요. ‘서울’, ‘서울시’, ‘서울특별시’, ‘Seoul’이 같은 칼럼에 모두 나올 수 있어요. 고유값을 보면 얼마나 지저분한지 정확히 알 수 있고, 표준화 접근법을 계획할 수 있어요.
2단계: 클리닝 파이프라인 구축
이슈를 파악했으면 AI에게 클리닝 스크립트를 생성하게 하세요. 적절한 데이터 타입의 정리된 테이블 생성, 각 칼럼 표준화(이름 타이틀 케이스, 전화번호 표준 형식, 지역 약어), 모든 날짜 형식을 DATE 타입으로 파싱, 이메일 기준 중복 제거(가장 최근 가입 유지), 멱등성 보장.
일반적인 클리닝 패턴
텍스트 표준화:
-- 이름을 타이틀 케이스로
UPDATE customers SET name = INITCAP(LOWER(name));
-- 이메일 표준화 (소문자, 공백 제거)
UPDATE customers SET email = LOWER(TRIM(email));
중복 처리:
-- 이메일 기준 최신 항목만 유지
DELETE FROM customers
WHERE id NOT IN (
SELECT DISTINCT ON (email) id
FROM customers
ORDER BY email, created_at DESC
);
3단계: 결과 검증
클리닝 후 변환이 제대로 됐는지 검증하세요: 필수 칼럼의 NULL 없음, 모든 이메일이 기본 패턴 매치, 모든 날짜가 합리적 범위(미래 아님, 2000년 이전 아님), 중복 이메일 없음, 행 수 비교(원본 vs 정리본 — 드롭된 행 설명).
행 수 확인이 핵심이에요. 원본 10,000행에서 정리 후 8,500행이면, 드롭되거나 병합된 1,500행을 설명해야 해요. 모두 중복이었나요? 검증 실패인가요? 설명되지 않는 데이터 손실은 심각한 경고 신호예요.
ETL 패턴
반복적 데이터 로드에는 Extract-Transform-Load 파이프라인을 구축하세요. 스테이징 테이블에 로드, 클리닝 변환 적용, 정리된 데이터 검증(검사 실패 행 거부), 프로덕션 테이블에 병합(새 행 삽입, 기존 행 업데이트), 결과 로깅.
✅ Quick Check: ETL 파이프라인이 프로덕션 테이블에 직접 로드하는 대신 스테이징 테이블을 사용하는 이유는? 스테이징 테이블에서 프로덕션에 닿기 전에 데이터를 클리닝하고 검증할 수 있기 때문이에요. CSV에 손상된 데이터가 있으면 스테이징에서 잡아요 — 프로덕션 테이블은 깨끗하게 유지돼요.
핵심 정리
- 클리닝 전에 항상 데이터를 프로파일 — 문제를 이해해야 체계적 접근이 가능
- AI가 데이터 이슈 설명에서 클리닝 스크립트를 생성, 수동 시간을 분 단위로 단축
- 반복 데이터 로드를 위해 클리닝 스크립트를 멱등(재실행 안전)으로 만드세요
- SQL은 대량 표준화(날짜, 형식, 중복 제거), Python은 복잡한 로직(퍼지 매칭, API 조회)에 사용
- 클리닝 후 항상 검증: NULL, 형식 일관성, 합리적 범위 확인, 모든 드롭된 행 설명
- 스테이징 테이블이 있는 ETL 파이프라인이 프로덕션 데이터를 지저분한 임포트로부터 보호
Up next: 다음 레슨에서 쿼리 최적화와 성능을 배워요 — AI로 데이터베이스를 느리게 하는 쿼리를 찾고 고치기.
이해도 체크
먼저 위의 퀴즈를 완료하세요
레슨 완료!