[Data Wrangler 흐름 예시]S3 import → 결측치 중앙값 대치 → 범주형 One-Hot → 수치형 표준화 → 데이터 품질 리포트 → Export to: Processing Job / Feature Store / Pipeline
Data Wrangler의 가치는 "탐색과 프로덕션의 간극 해소"다. 데이터 과학자가 노트북에서 임시로 만든 전처리는 재현·자동화가 어렵다. Data Wrangler는 시각적으로 정의한 변환을 선언적 흐름(flow) 정의로 저장하고, 이를 그대로 Processing Job이나 Pipeline 단계로 내보내 운영 파이프라인에 편입한다. 즉 "탐색에서 만든 변환 = 운영에서 돌릴 변환"을 보장해 학습/추론 간 전처리 불일치를 줄인다. 노코드라고 무시할 게 아니라, 재현성·일관성을 위한 도구로 이해하는 게 핵심이다.
⚠️ 함정: Data Wrangler는 탐색·준비 단계에 강하지만, 페타바이트급 초대규모 분산 처리나 완전 커스텀 로직이 필요하면 EMR/Glue나 직접 작성한 Processing Job이 더 적합하다. 시험에서 "노코드/시각적/빠른 EDA"면 Data Wrangler, "대규모 커스텀 코드 배치 처리"면 Processing Job 쪽으로 기운다.
[Processing Job 실행 흐름]
S3 입력 ──다운로드──▶ /opt/ml/processing/input
▼
preprocess.py 실행 (인스턴스 N대에 분산)
▼
/opt/ml/processing/output ──업로드──▶ S3 출력
▼
인스턴스 자동 종료 (사용한 만큼만 과금)
Processing Job은 "컴퓨트와 스토리지 분리" 철학의 ML 전처리 구현이다. 데이터는 S3에 두고, 잡 실행 시점에만 인스턴스를 띄워 S3→로컬→처리→S3 패턴으로 돌린 뒤 종료한다. 따라서 사용한 만큼만 과금되고, 학습 잡과 동일한 SageMaker 추적·로깅(CloudWatch, Experiments) 체계에 들어간다. EMR/Glue와 겹치는 면이 있지만, Processing Job은 SageMaker 워크플로(특히 Pipelines)와의 통합과 ML 친화적 컨테이너 생태계가 강점이다.
Feature Store는 머신러닝 특성을 저장·검색·공유·재사용하는 중앙 저장소(repository)다. 여러 팀·모델이 같은 피처를 일관되게 쓰도록 한다.
해결하는 문제:
중복 작업 — 팀마다 "고객 30일 평균 구매액"을 제각각 재계산.
학습/추론 불일치(training-serving skew) — 학습 때 쓴 피처 계산 로직과 추론 때 로직이 달라 성능 저하.
시점 정확성(point-in-time) — 과거 시점의 피처값을 재현해 누수 없는 학습셋 구성.
두 가지 저장소:
저장소
용도
특성
Online Store
실시간 추론 시 저지연 조회
단일 레코드 ms급 조회
Offline Store
학습용 대량 조회
S3 기반, 과거 이력 보관
from sagemaker.feature_store.feature_group import FeatureGroupfg = FeatureGroup(name="customer-features", sagemaker_session=session)fg.load_feature_definitions(data_frame=features_df)fg.create( s3_uri="s3://bucket/feature-store/", record_identifier_name="customer_id", event_time_feature_name="event_time", # 시점 정확성의 핵심 enable_online_store=True, # 온라인+오프라인 동시)# 추론 시 온라인 스토어에서 최신 피처 조회fg.get_record(record_identifier_value_as_string="C12345")
[point-in-time 조회가 막는 것]
예측 시점: 6/10 학습셋에 들어가면 안 되는 값
│ │
▼ ▼
──●──────────────────────────────────────────●──▶ 시간
6/10 피처값(알 수 있었음) 6/20 피처값(미래)
event_time 기록 → "6/10 기준으로 유효했던 값"만 조회 → 누수 차단
Feature Store의 핵심 가치는 학습/추론 불일치(training-serving skew) 제거다. 흔한 사고는 학습 때 배치로 계산한 피처와 추론 때 실시간으로 계산한 피처의 정의가 미묘하게 달라 모델 성능이 운영에서 떨어지는 것이다. 같은 피처 정의를 Offline(학습)과 Online(추론) 양쪽에서 공유하면 이 불일치가 사라진다. 또 event_time을 기록해 point-in-time(시점 기준) 조회를 지원하는데, 이는 "예측 시점에 실제로 알 수 있었던 값"만으로 학습셋을 만들어 미래 정보 누수를 막는 장치다.
⚠️ 함정: Feature Store의 두 스토어 용도를 혼동하지 말 것. 실시간 저지연 단건 조회는 Online Store, 대량 과거 데이터로 학습셋을 만드는 것은 Offline Store다. "ms급 단건 추론 조회"가 키워드면 Online이 답이다.
데이터 준비를 어떻게 할 것인가?
├─ 코드를 거의 쓰지 않고 시각적으로, 품질 진단도 함께 → Data Wrangler
├─ 커스텀 코드로 대규모 분산 처리, 잡 끝나면 자동 종료 → Processing Job
├─ 데이터 레이크 전반의 공유 정제(여러 소비자) → Glue ETL / EMR
└─ 만든 피처를 여러 팀·모델이 재사용하고
학습·추론 정의를 일치시켜야 한다 → Feature Store
이 넷은 경쟁 관계가 아니라 한 파이프라인의 서로 다른 자리를 차지한다.
시험에서는 지문의 키워드 하나가 자리를 지정한다. "노코드", "커스텀 코드", "공유 정제", "재사용·일관성"이 그 키워드다.
[전형적 파이프라인]Data Wrangler (시각적 EDA·변환 정의) │ export ▼Processing Job (대규모 변환 실행) │ ingest ▼Feature Store (피처 저장·공유) ├─ Offline → 학습 잡 └─ Online → 실시간 추론
세 도구는 역할이 다르다. Data Wrangler는 시각적·노코드 EDA와 변환 정의, Processing Job은 코드 기반 대규모 분산 전처리, Feature Store는 피처 재사용과 학습/추론 일관성·시점 정확성 보장이다. 셋은 흔히 한 파이프라인에서 이어진다.