TL;DR
이 pipeline은 legacy warehouse 테이블의 transformation logic을 역설계해 dims와 facts로 구성된 star schema를 만들고, 기존 소비자가 계속 사용할 backward-compatible view와 migration DDL을 생성한다. ingest부터 validation, 세 겹의 review, human approval, FK 의존성 기반 task decomposition, sandbox 코딩, 결과 검사까지의 control flow는 LangGraph와 deterministic Python으로 고정된다. LLM은 data modeling과 개별 coding처럼 reasoning이 필요한 단계에만 사용하며, Pydantic contract와 extra="forbid"가 출력 구조를 강제하고 별도 reviewer model이 설계 판단을 맡는다. 다만 legacy 결과와의 독립적인 row-count·metric reconciliation gate, 인프라 오류와 모델 오류의 retry budget 분리는 아직 남은 과제다.
실용적 조언
- 미리 정할 수 있는 순서와 의존성은 Python node, edge, topological sort로 고정하고 LLM에는 실제 판단이 필요한 작업만 넘긴다. 에이전트 출력은 Pydantic model과 extra="forbid"로 파싱하며, 구조가 맞지 않으면 별도의 LLM 검증 없이 validation failure로 종료한다. 이 구분은 누락된 단계와 prompt/schema drift를 재현 가능한 오류로 바꾸는 데 유용하다.
- 에이전트의 교정 경로는 호출마다 실제 입력으로 사용되는 live channel 하나로만 유지한다. modeling agent에는 correction transcript를 누적하고 coding agent에는 single-shot correction을 소비·삭제하는 식으로 역할별 정책을 명시한다. 로그나 observability side channel에 기록한 교정은 실행 입력으로 자동 전달되지 않으므로 별도 경로로 만들지 않는 편이 안전하다.
- 데이터 변경 agent는 SELECT 범위와 쓰기 권한을 분리하고, CREATE·INSERT·MERGE·DROP은 thread별 sandbox schema에서만 허용한다. production 변경은 DDL 파일로 반환하고 ERD approval 단계와 clarification·blocker 단계에서 pipeline을 중단한다. 여기에 legacy 테이블과 row count·metric을 비교하는 독립 reconcile gate를 추가하면 현재 self-check와 human review에 남은 검증 부담을 줄일 수 있다.
섹션별 상세
용어 해설
- 스타 스키마(Star Schema)
- — 중앙의 fact 테이블과 이를 둘러싼 dimension 테이블로 데이터를 구성하는 모델이다. 원문의 pipeline은 legacy 테이블을 차원·사실 테이블로 나누고 surrogate key와 conformed dimension을 적용한 뒤, 기존 소비자를 위해 호환 view를 유지한다.
- Kimball 모델링(Kimball Modeling)
- — 데이터의 업무 grain을 먼저 정하고 fact와 dimension을 설계하는 데이터 웨어하우스 모델링 방식이다. 원문에서는 각 컬럼을 감사 컬럼, 파생 컬럼, degenerate dimension, measure, FK lookup, attribute 순서로 분류해 설계 판단을 제한한다.
- Pydantic 계약(Pydantic Contract)
- — 모델의 출력 JSON을 Pydantic 타입으로 파싱해 허용된 필드와 구조를 강제하는 방식이다. extra="forbid"를 사용하므로 누락·추가 필드와 prompt/schema drift가 LLM의 재확인 없이 즉시 validation failure로 드러난다.
- Human-in-the-Loop
- — 자동화 pipeline의 특정 판단 지점에 사람이 승인하거나 개입하는 구조다. 원문의 시스템은 ERD가 렌더링된 approval 단계와 clarification 또는 blocker 발생 시 실행을 멈추며, production 변경은 사람이 실행할 DDL 파일로만 전달한다.
코드 예제
ingest (extract table name, verify it exists)
→ model (ReAct agent: proposes dimensional model as typed JSON)
→ validate (pure Python: parse + schema + semantic checks — no LLM)
→ review (3 layers, below)
→ approval (human-in-the-loop, with ERD rendered from the plan)
→ decompose (deterministic: plan → ordered coding tasks, topo-sorted by FK deps)
→ code (ReAct agent per task, sandboxed)
→ code_check (deterministic verification of every result)
→ summary (what was built + DDL the human must execute)legacy 테이블을 입력받아 차원 모델 설계, 검증, 사람 승인, 작업 분해, sandbox 코드 생성과 결과 확인까지 처리하는 LangGraph 실행 순서다.
언급된 도구
deterministic graph node와 agent 실행 단계를 연결하는 pipeline 프레임워크
agent 출력과 pipeline state의 typed JSON contract를 검증하는 라이브러리
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.