Data Analysis — 데이터 분석 풀 파이프라인
데이터의 탐색→정제→분석→시각화→보고서를 에이전트 팀이 협업하여 한 번에 수행한다.
실행 모드
에이전트 팀 — 5명이 SendMessage로 직접 통신하며 교차 검증한다.
에이전트 구성
| 에이전트 |
파일 |
역할 |
타입 |
| explorer |
.claude/agents/explorer.md |
탐색적 분석, 데이터 프로파일링 |
general-purpose |
| cleaner |
.claude/agents/cleaner.md |
데이터 정제, 변환 파이프라인 |
general-purpose |
| analyst |
.claude/agents/analyst.md |
통계 분석, 인사이트 도출 |
general-purpose |
| visualizer |
.claude/agents/visualizer.md |
차트 설계, 시각화 코드 생성 |
general-purpose |
| reporter |
.claude/agents/reporter.md |
최종 보고서 작성, 품질 검증 |
general-purpose |
워크플로우
Phase 1: 준비 (오케스트레이터 직접 수행)
- 사용자 입력에서 추출한다:
- 데이터 소스: 파일 경로, 포맷(CSV/Excel/JSON/DB), 크기
- 분석 목적: 비즈니스 질문, 가설, 기대 결과
- 제약 조건 (선택): 시간, 특정 분석 기법, 보고 대상
- 도메인 정보 (선택): 업종, 변수 의미, 비즈니스 맥락
_workspace/ 디렉토리와 _workspace/scripts/ 하위 디렉토리를 생성한다
- 입력을 정리하여
_workspace/00_input.md에 저장한다
- 데이터 파일을
_workspace/data/에 복사한다
- 기존 파일이 있으면
_workspace/에 복사하고 해당 Phase를 건너뛴다
- 요청 범위에 따라 실행 모드를 결정한다
Phase 2: 팀 구성 및 실행
| 순서 |
작업 |
담당 |
의존 |
산출물 |
| 1 |
탐색적 분석 |
explorer |
없음 |
01_exploration_report.md |
| 2 |
데이터 정제 |
cleaner |
작업 1 |
02_cleaning_log.md, scripts/02_cleaning.py |
| 3a |
통계 분석 |
analyst |
작업 2 |
03_analysis_results.md, scripts/03_analysis.py |
| 3b |
EDA 시각화 |
visualizer |
작업 1 |
04_visualizations.md (EDA 부분) |
| 4 |
분석 결과 시각화 |
visualizer |
작업 3a |
04_visualizations.md (분석 부분), scripts/04_viz_*.py |
| 5 |
최종 보고서 |
reporter |
작업 3a, 4 |
05_final_report.md |
작업 3a(분석)와 3b(EDA 시각화)는 병렬 실행한다.
팀원 간 소통 흐름:
- explorer 완료 → cleaner에게 정제 권고 전달, analyst에게 분석 제안 전달, visualizer에게 분포 시각화 대상 전달
- cleaner 완료 → analyst에게 정제 데이터 위치와 변환 이력 전달
- analyst 완료 → visualizer에게 분석 결과 시각화 요청, reporter에게 인사이트 전달
- visualizer 완료 → reporter에게 시각화 목록 전달
- reporter는 모든 산출물을 교차 검증. 불일치 발견 시 해당 에이전트에 수정 요청 (최대 2회)
Phase 3: 통합 및 최종 산출물
_workspace/ 내 모든 파일을 확인한다
- reporter의 보고서에서 필수 수정이 모두 반영되었는지 확인한다
- 최종 요약을 사용자에게 보고한다:
- 탐색 보고서 —
01_exploration_report.md
- 정제 로그 —
02_cleaning_log.md
- 분석 결과 —
03_analysis_results.md
- 시각화 —
04_visualizations.md
- 최종 보고서 —
05_final_report.md
- 재현 스크립트 —
scripts/ 디렉토리
작업 규모별 모드
| 사용자 요청 패턴 |
실행 모드 |
투입 에이전트 |
| "데이터 분석해줘", "풀 분석" |
풀 파이프라인 |
5명 전원 |
| "EDA만 해줘", "데이터 탐색" |
탐색 모드 |
explorer + visualizer |
| "데이터 정제해줘", "클리닝" |
정제 모드 |
explorer + cleaner |
| "통계 분석만", "가설 검정" |
분석 모드 |
analyst + visualizer + reporter |
| "시각화만 해줘", "차트 그려줘" |
시각화 모드 |
visualizer 단독 |
| "분석 보고서 써줘" (기존 분석 있음) |
보고서 모드 |
reporter 단독 |
기존 파일 활용: 이미 정제된 데이터가 있으면 explorer와 cleaner를 건너뛴다. 분석 결과가 있으면 analyst를 건너뛰고 시각화와 보고서만 진행한다.
데이터 전달 프로토콜
| 전략 |
방식 |
용도 |
| 파일 기반 |
_workspace/ 디렉토리 |
주요 산출물 및 데이터 저장 |
| 메시지 기반 |
SendMessage |
핵심 정보 전달, 수정 요청 |
| 코드 기반 |
_workspace/scripts/ |
재현 가능한 분석 스크립트 |
파일명 컨벤션: {순번}_{산출물}.{확장자}
에러 핸들링
| 에러 유형 |
전략 |
| 파일 읽기 실패 |
인코딩 순차 시도(UTF-8→CP949→EUC-KR→Latin-1), 구분자 자동 탐지 |
| 대용량 데이터(>1GB) |
샘플링 후 분석, chunk 처리, 전체 통계는 dask 사용 |
| 분석 가정 불충족 |
비모수 대안 자동 전환, 전환 이유를 보고서에 명시 |
| 시각화 한글 깨짐 |
OS별 한글 폰트 설정 코드 자동 삽입 |
| 에이전트 실패 |
1회 재시도 후 실패 시 해당 산출물 없이 진행, 보고서에 누락 명시 |
| reporter 불일치 발견 |
해당 에이전트에 수정 요청 → 재작업 → 재검증 (최대 2회) |
테스트 시나리오
정상 흐름
프롬프트: "이 매출 CSV 파일을 분석해서 매출 하락 원인을 찾아줘"
기대 결과:
- EDA: 변수 프로파일, 결측/이상치 분석, 매출 관련 변수 식별
- 정제: 결측치 처리, 이상치 캡핑, 타입 변환 로그
- 분석: 시계열 분해, 구간별 비교(t-test/ANOVA), 상관분석
- 시각화: 매출 추이 라인차트, 요인별 비교 막대그래프, 상관 히트맵
- 보고서: 하락 원인 Top 3 + 권고 액션 + 경영진 요약
기존 파일 활용 흐름
프롬프트: "이미 정제된 데이터가 있어. 통계 분석이랑 시각화만 해줘" + 정제 데이터 파일 첨부
기대 결과:
- 기존 데이터를
_workspace/data/에 복사
- 분석 모드: explorer와 cleaner는 건너뛰고 analyst + visualizer + reporter 투입
- 정제 이력은 사용자 제공 정보 기반으로 기록
에러 흐름
프롬프트: "이 엑셀 파일 분석해줘" (결측 50% 이상 변수 다수, 이상치 대량)
기대 결과:
- explorer가 데이터 품질 문제를 상세히 보고
- cleaner가 변수별 처리 전략을 근거와 함께 제시, 행 30% 이상 감소 시 경고
- analyst가 데이터 충분성 한계를 명시하고 검정력 분석 수행
- reporter가 한계 섹션에 데이터 품질 이슈를 정직하게 기록
에이전트별 확장 스킬
| 스킬 |
경로 |
강화 대상 에이전트 |
역할 |
| statistical-tests-selector |
.claude/skills/statistical-tests-selector/skill.md |
analyst |
검정 선택 트리, t-검정/ANOVA/카이제곱, 효과 크기, 검정력 |
| visualization-chooser |
.claude/skills/visualization-chooser/skill.md |
visualizer |
차트 유형 매트릭스, matplotlib/seaborn/plotly 패턴, 안티패턴 |
1---2name: data-analysis-23description: 데이터 분석 프로젝트의 탐색적 분석(EDA), 데이터 정제, 통계 분석, 시각화, 보고서 작성을 에이전트 팀이 협업하여 한 번에 수행하는 풀 분석 파이프라인. '데이터 분석해줘', 'EDA 해줘', '탐색적 분석', '통계 분석', '데이터 시각화', '분석 보고서 써줘', 'CSV 분석', '데이터 인사이트 뽑아줘', '데이터 정제', '이상치 분석' 등 데이터 분석 전반에 이 스킬을 사용한다. 단, 실시간 데이터 스트리밍, ML 모델 학습/배포, BI 대시보드 서버 구축은 이 스킬의 범위가 아니다.4---56# Data Analysis — 데이터 분석 풀 파이프라인78데이터의 탐색→정제→분석→시각화→보고서를 에이전트 팀이 협업하여 한 번에 수행한다.910## 실행 모드1112**에이전트 팀** — 5명이 SendMessage로 직접 통신하며 교차 검증한다.1314## 에이전트 구성1516| 에이전트 | 파일 | 역할 | 타입 |17|---------|------|------|------|18| explorer | `.claude/agents/explorer.md` | 탐색적 분석, 데이터 프로파일링 | general-purpose |19| cleaner | `.claude/agents/cleaner.md` | 데이터 정제, 변환 파이프라인 | general-purpose |20| analyst | `.claude/agents/analyst.md` | 통계 분석, 인사이트 도출 | general-purpose |21| visualizer | `.claude/agents/visualizer.md` | 차트 설계, 시각화 코드 생성 | general-purpose |22| reporter | `.claude/agents/reporter.md` | 최종 보고서 작성, 품질 검증 | general-purpose |2324## 워크플로우2526### Phase 1: 준비 (오케스트레이터 직접 수행)27281. 사용자 입력에서 추출한다:29 - **데이터 소스**: 파일 경로, 포맷(CSV/Excel/JSON/DB), 크기30 - **분석 목적**: 비즈니스 질문, 가설, 기대 결과31 - **제약 조건** (선택): 시간, 특정 분석 기법, 보고 대상32 - **도메인 정보** (선택): 업종, 변수 의미, 비즈니스 맥락332. `_workspace/` 디렉토리와 `_workspace/scripts/` 하위 디렉토리를 생성한다343. 입력을 정리하여 `_workspace/00_input.md`에 저장한다354. 데이터 파일을 `_workspace/data/`에 복사한다365. 기존 파일이 있으면 `_workspace/`에 복사하고 해당 Phase를 건너뛴다376. 요청 범위에 따라 **실행 모드를 결정**한다3839### Phase 2: 팀 구성 및 실행4041| 순서 | 작업 | 담당 | 의존 | 산출물 |42|------|------|------|------|--------|43| 1 | 탐색적 분석 | explorer | 없음 | `01_exploration_report.md` |44| 2 | 데이터 정제 | cleaner | 작업 1 | `02_cleaning_log.md`, `scripts/02_cleaning.py` |45| 3a | 통계 분석 | analyst | 작업 2 | `03_analysis_results.md`, `scripts/03_analysis.py` |46| 3b | EDA 시각화 | visualizer | 작업 1 | `04_visualizations.md` (EDA 부분) |47| 4 | 분석 결과 시각화 | visualizer | 작업 3a | `04_visualizations.md` (분석 부분), `scripts/04_viz_*.py` |48| 5 | 최종 보고서 | reporter | 작업 3a, 4 | `05_final_report.md` |4950작업 3a(분석)와 3b(EDA 시각화)는 **병렬 실행**한다.5152**팀원 간 소통 흐름:**53- explorer 완료 → cleaner에게 정제 권고 전달, analyst에게 분석 제안 전달, visualizer에게 분포 시각화 대상 전달54- cleaner 완료 → analyst에게 정제 데이터 위치와 변환 이력 전달55- analyst 완료 → visualizer에게 분석 결과 시각화 요청, reporter에게 인사이트 전달56- visualizer 완료 → reporter에게 시각화 목록 전달57- reporter는 모든 산출물을 교차 검증. 불일치 발견 시 해당 에이전트에 수정 요청 (최대 2회)5859### Phase 3: 통합 및 최종 산출물60611. `_workspace/` 내 모든 파일을 확인한다622. reporter의 보고서에서 필수 수정이 모두 반영되었는지 확인한다633. 최종 요약을 사용자에게 보고한다:64 - 탐색 보고서 — `01_exploration_report.md`65 - 정제 로그 — `02_cleaning_log.md`66 - 분석 결과 — `03_analysis_results.md`67 - 시각화 — `04_visualizations.md`68 - 최종 보고서 — `05_final_report.md`69 - 재현 스크립트 — `scripts/` 디렉토리7071## 작업 규모별 모드7273| 사용자 요청 패턴 | 실행 모드 | 투입 에이전트 |74|----------------|----------|-------------|75| "데이터 분석해줘", "풀 분석" | **풀 파이프라인** | 5명 전원 |76| "EDA만 해줘", "데이터 탐색" | **탐색 모드** | explorer + visualizer |77| "데이터 정제해줘", "클리닝" | **정제 모드** | explorer + cleaner |78| "통계 분석만", "가설 검정" | **분석 모드** | analyst + visualizer + reporter |79| "시각화만 해줘", "차트 그려줘" | **시각화 모드** | visualizer 단독 |80| "분석 보고서 써줘" (기존 분석 있음) | **보고서 모드** | reporter 단독 |8182**기존 파일 활용**: 이미 정제된 데이터가 있으면 explorer와 cleaner를 건너뛴다. 분석 결과가 있으면 analyst를 건너뛰고 시각화와 보고서만 진행한다.8384## 데이터 전달 프로토콜8586| 전략 | 방식 | 용도 |87|------|------|------|88| 파일 기반 | `_workspace/` 디렉토리 | 주요 산출물 및 데이터 저장 |89| 메시지 기반 | SendMessage | 핵심 정보 전달, 수정 요청 |90| 코드 기반 | `_workspace/scripts/` | 재현 가능한 분석 스크립트 |9192파일명 컨벤션: `{순번}_{산출물}.{확장자}`9394## 에러 핸들링9596| 에러 유형 | 전략 |97|----------|------|98| 파일 읽기 실패 | 인코딩 순차 시도(UTF-8→CP949→EUC-KR→Latin-1), 구분자 자동 탐지 |99| 대용량 데이터(>1GB) | 샘플링 후 분석, chunk 처리, 전체 통계는 dask 사용 |100| 분석 가정 불충족 | 비모수 대안 자동 전환, 전환 이유를 보고서에 명시 |101| 시각화 한글 깨짐 | OS별 한글 폰트 설정 코드 자동 삽입 |102| 에이전트 실패 | 1회 재시도 후 실패 시 해당 산출물 없이 진행, 보고서에 누락 명시 |103| reporter 불일치 발견 | 해당 에이전트에 수정 요청 → 재작업 → 재검증 (최대 2회) |104105## 테스트 시나리오106107### 정상 흐름108**프롬프트**: "이 매출 CSV 파일을 분석해서 매출 하락 원인을 찾아줘"109**기대 결과**:110- EDA: 변수 프로파일, 결측/이상치 분석, 매출 관련 변수 식별111- 정제: 결측치 처리, 이상치 캡핑, 타입 변환 로그112- 분석: 시계열 분해, 구간별 비교(t-test/ANOVA), 상관분석113- 시각화: 매출 추이 라인차트, 요인별 비교 막대그래프, 상관 히트맵114- 보고서: 하락 원인 Top 3 + 권고 액션 + 경영진 요약115116### 기존 파일 활용 흐름117**프롬프트**: "이미 정제된 데이터가 있어. 통계 분석이랑 시각화만 해줘" + 정제 데이터 파일 첨부118**기대 결과**:119- 기존 데이터를 `_workspace/data/`에 복사120- 분석 모드: explorer와 cleaner는 건너뛰고 analyst + visualizer + reporter 투입121- 정제 이력은 사용자 제공 정보 기반으로 기록122123### 에러 흐름124**프롬프트**: "이 엑셀 파일 분석해줘" (결측 50% 이상 변수 다수, 이상치 대량)125**기대 결과**:126- explorer가 데이터 품질 문제를 상세히 보고127- cleaner가 변수별 처리 전략을 근거와 함께 제시, 행 30% 이상 감소 시 경고128- analyst가 데이터 충분성 한계를 명시하고 검정력 분석 수행129- reporter가 한계 섹션에 데이터 품질 이슈를 정직하게 기록130131132## 에이전트별 확장 스킬133134| 스킬 | 경로 | 강화 대상 에이전트 | 역할 |135|------|------|-----------------|------|136| statistical-tests-selector | `.claude/skills/statistical-tests-selector/skill.md` | analyst | 검정 선택 트리, t-검정/ANOVA/카이제곱, 효과 크기, 검정력 |137| visualization-chooser | `.claude/skills/visualization-chooser/skill.md` | visualizer | 차트 유형 매트릭스, matplotlib/seaborn/plotly 패턴, 안티패턴 |