CSV/XLSX 파일의 전처리를 웹 기반 GUI로 수행하는 도구
개요
| 항목 |
내용 |
| URL |
https://dataprep.eommydocs.com |
| 호스팅 |
맥미니 자체 호스팅 (Cloudflare Tunnel) |
| 앱 위치 |
~/apps/data-prep-tool/ |
| HuggingFace |
gheom24/data-prep-tool |
| 기술 스택 |
Python, Streamlit |
| 제한 |
파일 1GB (권장 300MB), 6GB RAM |
기능
1. 데이터 프로파일링
| 기능 |
설명 |
| 기본 통계 |
행/열 수, 데이터 타입, 기술통계 |
| 결측치 현황 |
컬럼별 결측 비율, 패턴 시각화 |
| 분포 확인 |
히스토그램, 박스플롯 |
| 상관관계 |
상관 매트릭스, 히트맵 |
2. 결측치 처리
| 방법 |
설명 |
적합 상황 |
| 삭제 |
행/열 단위 삭제 |
결측 비율 낮을 때 |
| 평균/중앙값 |
수치형 대체 |
MCAR 가정 |
| 최빈값 |
범주형 대체 |
범주형 변수 |
| 보간 |
선형/시계열 보간 |
시계열 데이터 |
| KNN |
유사 데이터 기반 대체 |
복잡한 패턴 |
3. 이상치 처리
| 방법 |
설명 |
| IQR |
Q1 - 1.5IQR ~ Q3 + 1.5IQR |
| Z-score |
평균에서 3 표준편차 이상 |
| Winsorize |
극단값을 백분위수로 대체 |
| 시각적 탐색 |
산점도, 박스플롯으로 확인 |
4. 인코딩
| 방법 |
적합 상황 |
| Label Encoding |
순서형 범주 |
| One-Hot |
명목형 (카디널리티 낮음) |
| Target Encoding |
카디널리티 높은 범주 |
| Frequency Encoding |
빈도 기반 |
5. 스케일링
| 방법 |
수식 |
적합 상황 |
| StandardScaler |
(x-mean)/std |
정규분포 가정 |
| MinMaxScaler |
(x-min)/(max-min) |
범위 제한 필요 |
| RobustScaler |
(x-median)/IQR |
이상치 존재 |
| Log Transform |
log(x+1) |
왜도 큰 분포 |
6. 파생변수 생성
| 기능 |
설명 |
| 수학 연산 |
컬럼 간 사칙연산 |
| 날짜 파생 |
요일, 월, 분기, 경과일 |
| 텍스트 파생 |
길이, 단어수, 패턴 추출 |
| 구간화 |
연속형 → 범주형 (Binning) |
아키텍처
[사용자 브라우저]
|
v
[Cloudflare Tunnel]
|
v
[맥미니: Streamlit App]
|--- 파일 업로드 (임시 저장)
|--- Pandas 기반 처리
|--- 결과 다운로드
v
[메모리: 6GB 할당]
인프라
LaunchAgents
| 파일 |
용도 |
| com.eommydocs.dataprep.plist |
Streamlit 앱 자동 시작 |
| com.cloudflare.tunnel.dataprep.plist |
Cloudflare Tunnel 자동 시작 |
모니터링
# 앱 상태 확인
launchctl list | grep dataprep
# 로그 확인
tail -f ~/apps/data-prep-tool/logs/app.log
# Tunnel 상태
cloudflared tunnel info dataprep
개발 이력
| 날짜 |
내용 |
| 2026-02-22 |
초기 배포 (프로파일링, 결측치, 이상치) |
| 2026-02-22 |
Cloudflare Tunnel 설정 |
| 2026-02-22 |
HuggingFace Space 미러링 |
향후 계획
- [ ] 대용량 파일 지원 개선 (Dask 기반)
- [ ] 전처리 파이프라인 저장/재사용
- [ ] 자동 EDA 리포트 생성
- [ ] API 엔드포인트 추가
최종 업데이트: 2026-03-18