현업의 비즈니스 분석가(BA)와 지식 근로자들은 매일 스프레드시트 작업에서 수많은 비효율을 경험합니다. ERP에서 내보낸 비정형 보고서, 통화 기호와 단위 텍스트가 뒤섞인 금액 컬럼, 깨져버린 VLOOKUP 수식, 불규칙한 날짜 포맷, 그리고 경영진 보고를 위한 차트 제작 요구가 끊이지 않습니다. 기존의 일반적인 대형 언어 모델(LLM)을 텍스트 기반 대화로 사용할 경우, 토큰 길이 제약뿐만 아니라 수치 연산 과정에서 그럴듯한 거짓말을 만들어내는 연산 '환각(Hallucination)'이 빈번히 발생합니다.
GLM 모델 구조를 기반으로 하는 즈푸칭옌(智谱清言, ChatGLM)은 고급 데이터 분석(Advanced Data Analysis / Code Interpreter) 기능을 통해 이러한 근본적인 한계를 해결합니다. 텍스트 확률에 의존해 숫자를 추측하는 대신, 사용자의 자연어 요청을 실제 실행 가능한 Python 스크립트로 컴파일하여 안전하게 격리된 클라우드 Linux 샌드박스에서 구동합니다. 샌드박스 내부에는 pandas, openpyxl, matplotlib, seaborn 등 전문 데이터 분석 라이브러리가 기본 탑재되어 있어, 업로드된 Excel(.xlsx, .xls) 및 CSV 파일을 대상으로 정밀한 연산, 자동 오류 수정(Agent Loop), 데이터 구조 정제, 고품질 시각화 차트 생성 및 가공된 파일 다운로드를 지원합니다.
웹 인터페이스(chatglm.cn)를 통한 파일 대화는 물론, Microsoft 365 환경에 연동되는 GLM in Excel (Beta) 애드인을 활용하여 분석가는 체계적인 4단계 데이터 워크플로를 구축할 수 있습니다.
1. 동작 메커니즘: Python 샌드박스와 자가 복구 루프
비즈니스 현장에서 신뢰할 수 있는 수치 결과를 얻으려면 즈푸칭옌의 내부 구동 원리를 명확히 이해해야 합니다.
- 격리된 클라우드 샌드박스 환경: 사용자가 업로드한 파일은 Python 3.11+ 환경이 구축된 독립 Linux 컨테이너에 마운트됩니다. 모델은 도구 호출(Tool Calling) 프로토콜을 통해 코드 실행 도구를 호출합니다.
- 언어적 추론이 아닌 알고리즘 기반 계산: "D열의 표준편차와 상위 10% 분위수를 계산해 줘"라는 요청에 대해, 일반 대화 모델은 텍스트 패턴에서 유사한 숫자를 생성하지만, 즈푸칭옌은
df['Column_D'].std()와df['Column_D'].quantile(0.90)코드를 직접 작성해 실행한 뒤 반환된 정확한 값을 보고합니다. - 에이전트 자가 복구 루프(Self-Correction Loop): 인코딩 불일치(BOM이 포함된 UTF-8이나
GBK파일 등)나 데이터 타입 충돌로 스크립트 실행이 중단될 경우, 샌드박스의stderr오류 로그가 모델에 실시간 전달됩니다. GLM은 스택 트레이스를 분석하여 코드(예:encoding='gb18030'명시 또는pd.to_numeric(..., errors='coerce')적용)를 스스로 수정한 후 올바른 결과가 도출될 때까지 자동으로 재실행합니다. - 코드 투명성 제공: 모든 답변 하단의 아코디언 메뉴를 열면 실행된 Python 소스 코드를 확인할 수 있습니다. 분석가는 계산 로직과 필터링 조건을 직접 검증할 수 있으며, 해당 코드를 복사하여 사내 Jupyter Notebook이나 데이터 파이프라인에 그대로 활용할 수 있습니다.
2. 1단계: 스프레드시트 구조 탐색 및 데이터 진단
AI를 활용한 데이터 분석에서 흔히 발생하는 실수는 파일을 올리자마자 "이 데이터를 분석해서 인사이트를 도출해 줘"와 같이 모호한 질문을 던지는 것입니다. 실제 업무용 Excel 파일은 병합된 셀, 빈 행, 헤더 장식 행, 집계 행, 다중 시트 등을 포함하고 있어 명확한 탐색 없이 처리할 경우 필드 인식이 왜곡되기 쉽습니다.
올바른 작업의 출발점은 언제나 구조 진단입니다.
구조 탐색 실무와 프롬프트
- 파일 업로드: 즈푸칭옌 대화창의 첨부 아이콘을 클릭하여
.xlsx또는.csv파일을 업로드합니다. - 구조 탐색 프롬프트(Prompt) 입력:
"업로드된 통합 문서를 읽고, 먼저 포함된 모든 시트(Sheet)의 이름을 나열해 주세요. 주요 데이터 시트에 대해 상위 5개 행(
head()), 전체 행과 열 크기(shape), 각 열의 이름과 데이터 타입(dtypes), 그리고 열별 결측치 개수와 비율을 출력해 주세요. 아직 데이터를 수정하지 말고 구조 진단 결과만 정리해 보여주세요." - 진단 결과 검토:
즈푸칭옌은 Python 코드를 실행하여 다음과 같은 정보를 보고합니다:
- 시트 목록 구성(예:
['Q3매출실적', '고객마스터', '피벗요약']) - 실제 데이터 시작 행과 제목 행의 분리 상태
- 데이터 타입 왜곡: 통화 기호(
₩,$,¥), 쉼표, 또는 '검토 중'과 같은 텍스트가 섞여 있어 숫자가 아닌 문자열(object)로 잘못 인식된 열 식별
- 시트 목록 구성(예:
숨겨진 구조적 결함 파악
이 진단 과정을 통해 다음과 같은 잠재적 오류를 사전에 제거할 수 있습니다:
- 열 이름 끝의 공백:
'영업지역 '처럼 보이지 않는 공백이 포함된 경우 이후 필터링이나 VLOOKUP 매칭이 실패합니다. - 병합된 셀의 결측 처리: 여러 행에 걸쳐 병합된 셀은 Pandas로 로드될 때 첫 번째 행만 값을 유지하고 나머지 행은
NaN으로 처리됩니다. - 시트 하단의 총합계 행: 최하단의 "총합계"나 "작성자 메모" 행을 미리 배제하지 않으면 평균값이나 최댓값 연산이 심각하게 왜곡됩니다.
3. 2단계: 데이터 정제 및 스키마 정규화
테이블 구조가 파악되면, 분석가는 단계별 대화를 통해 즈푸칭옌에 오염된 데이터를 정리하고 분석 표준 형태로 변환하도록 지시합니다.
주요 정제 시나리오 및 프롬프트 실무
A. 복합 단위 및 비수치 문자 제거
보고서에 흔히 등장하는 "500w", "12.5만", "₩3,450,000", "$1,200.00" 등의 혼합 수치 처리:
- 프롬프트 예시:
"'매출액'과 '원가' 열을 정제해 주세요. 모든 통화 기호('₩', '$', '¥'), 쉼표, 공백을 제거하세요. 단위에 '만' 또는 'w/W'가 붙어 있으면 10,000을 곱하고, 'k/K'가 붙어 있으면 1,000을 곱하세요. 두 열을 float64 형식으로 변환하고, 숫자로 변환할 수 없는 값은 0으로 채운 뒤 정제 전후의 샘플 행을 비교해 보여주세요."
B. 병합 셀 해제 및 직전 값 채우기(ffill)
부서명이나 대분류가 세로로 병합되어 아래쪽 행들이 비어 있는 경우:
- 프롬프트 예시:
"'사업부문' 열은 원본 엑셀의 셀 병합으로 인해 아래쪽에 결측치가 많습니다. 앞선 행의 값으로 채우는 ffill을 적용하여 모든 행이 소속 부서명을 갖도록 해주세요. 그 후 '주문번호'와 '결제금액'이 모두 비어 있는 무효 행을 삭제하세요."
C. 불규칙한 날짜 포맷 표준화
2026/03/15, 2026-3-15, 15/03/2026, Excel 시리얼 번호(45366 등)가 섞여 있는 경우:
- 프롬프트 예시:
"'주문일자' 열을 ISO 표준 날짜 포맷(
YYYY-MM-DD)으로 일괄 변환해 주세요. 날짜로 변환되지 않거나 2026년 범위를 벗어나는 비정상 행이 있다면 해당 행 번호를 별도 목록으로 작성해 검토할 수 있게 해주세요."
D. 복합 키 기반 중복 제거
- 프롬프트 예시:
"['고객번호', '거래일자', '제품코드'] 복합 키를 기준으로 중복 행을 확인하세요. 중복이 있다면 '수정일시'가 가장 최근인 행만 남기고, 제거된 중복 데이터의 총 건수를 알려주세요."
정제 완료 파일 다운로드
정제 작업이 완료되면 결과 데이터는 샌드박스 출력 영역에 저장됩니다. 다음과 같이 요청하면 다운로드 링크를 제공합니다:
"정제 완료된 전체 데이터를 적절한 컬럼 헤더와 수치 서식을 갖춘 엑셀 파일
cleaned_sales_q3.xlsx로 저장하고 다운로드 링크를 제공해 주세요."
생성된 다운로드 카드를 클릭하면 정제된 스프레드시트를 즉시 현업에 활용할 수 있습니다.
4. 3단계: 분석 차트 생성 및 시각적 전달
정제된 데이터는 샌드박스의 matplotlib와 seaborn 라이브러리를 통해 의사결정에 직결되는 비즈니스 차트로 변환할 수 있습니다.
해외 다수 AI 도구는 차트를 생성할 때 한글이나 한자 등 다국어 폰트가 깨져 네모 상자(이른바 폰트 깨짐 현상인 '두부' □□)로 표시되는 문제가 자주 발생합니다. 즈푸칭옌의 클라우드 환경에는 Noto CJK 및 WenQuanYi 폰트가 사전에 구성되어 있어, 한글 제목, 범례, 축 레이블이 깨짐 없이 선명하게 렌더링됩니다.
비즈니스 차트 요청 작성 요령
- 차원, 지표, 집계 방식 명시: "보기 좋은 차트를 그려줘" 대신 X축, Y축, 집계 방식(합계, 평균), 정렬 순서를 구체적으로 정의합니다.
- 기준선 및 보조 지표 추가: 막대 상단 데이터 레이블 표기, 목표치 기준선, 파레토 80% 누적 기준선 등을 포함하도록 지시합니다.
- 고해상도 및 규격 지정: 보고서용 슬라이드 삽입에 적합하도록
dpi=300및 적절한 종횡비를 지정합니다.
차트 생성 프롬프트 예시
시나리오 1: 파레토 차트 (막대 + 누적 꺾은선 2축 차트)
- 프롬프트 예시:
"'제품카테고리'별로 매출액을 합산하고 내림차순으로 정렬해 주세요. 이중 Y축 차트를 작성하세요: 왼쪽 축에는 각 카테고리의 매출을 짙은 파란색 막대그래프로 나타내고 막대 끝에 금액 레이블(단위: 천만 원)을 표시하세요. 오른쪽 축에는 주황색 꺾은선으로 누적 비율(%)을 표시하고 80% 지점에 빨간색 점선으로 파레토 기준선을 추가하세요. 한글이 깨지지 않도록 설정하여 300 DPI 이미지로 출력해 주세요."
시나리오 2: 월별 추이 및 순이익률 변동 (영역 음영 및 주요 포인트 강조)
- 프롬프트 예시:
"데이터를 월별로 집계하여 최근 12개월간의 '총매출'과 '순이익률' 추이를 선 그래프로 그려주세요. 순이익률 곡선 하단에는 옅은 회색 반투명 음영을 채우고, 이익률이 가장 낮았던 달에는 빨간색 화살표와 설명 텍스트 상자를 추가해 강조해 주세요."
시나리오 3: 다변량 상관관계 히트맵
- 프롬프트 예시:
"'마케팅비용', '노출수', '클릭률', '고객획득비용(CAC)', '고객생애가치(LTV)' 지표 간의 피어슨 상관계수 행렬을 계산해 주세요. Seaborn을 사용해 coolwarm 컬러맵의 히트맵을 생성하고, 각 격자에 소수점 둘째 자리까지 상관계수를 표시하세요. X축 레이블은 겹치지 않도록 30도 회전해 주세요."
차트 세부 조정
차트가 출력된 후 대화를 통해 디자인 디테일을 즉각 수정할 수 있습니다:
- "범례(Legend)를 차트 내부에서 우측 상단 바깥쪽으로 옮겨주세요."
- "막대그래프 색상을 코퍼레이트 네이비로 바꾸고 배경 그리드선의 투명도를 높여주세요."
- "이 차트를 고해상도 PNG와 벡터 PDF 형식으로 저장해 다운로드 링크를 제공해 주세요."
5. 데스크톱 직접 연동: GLM in Excel (Beta) 애드인
브라우저 창에서 파일을 반복적으로 업로드하고 다운로드하는 번거로움을 줄이고자 하는 사용자를 위해 GLM in Excel (Beta) 애드인이 제공됩니다.
- 스프레드시트 내 직접 실행: Microsoft 365 또는 Office 2021+ Excel 우측 작업창(Task Pane)에 상주합니다. 보안에 민감한 문서를 외부로 반출할 필요 없이 열려 있는 파일 내에서 모든 작업을 즉각 수행합니다.
- 수식 오류 진단 및 즉시 수정:
#REF!,#VALUE!,#DIV/0!오류나 순환 참조가 발생했을 때 오류 셀을 정확히 짚어내고 참조 경로를 분석하여 올바른 수정 수식으로 덮어씁니다. - 다중 시트 연계 및 XLOOKUP 자동화: 판매 명세서, 단가표, 고객 정보 등 여러 시트로 분산된 데이터 모델에서 공통 키를 인식하여 시트 간
XLOOKUP이나SUMIFS복합 연산을 자동으로 구성합니다. - 수정 영역 하이라이트 및 감사 추적: AI가 변경하거나 수식을 적용한 셀 범위는 지정된 색상으로 자동 강조 표시되어, 재무 분석가와 감사자가 변경 내역을 신속하게 검증할 수 있습니다.
6. 현업 분석가를 위한 데이터 거버넌스 및 활용 수칙
상업용 데이터를 다룰 때 분석가는 다음과 같은 운영 원칙을 준수해야 합니다:
- 사전 비식별화(Masking): 개인 식별 정보(PII), 계좌번호, 주민등록번호, 연락처, 기밀 재무 정보가 담긴 문서를 원본 그대로 업로드하지 마십시오. 업로드 전 로컬에서
고객_A,ID_001등의 가명으로 치환해야 합니다. - 단계별 프롬프트 분할: 구조 진단, 대규모 정제, 피벗 집계, 여러 종류의 차트 생성을 단일 프롬프트에 몰아서 요구하지 마십시오. "구조 진단 → 컬럼 정제 → 통계 연산 → 시각화 생성"의 4단계로 나누어 진행하면 중간 검증이 가능하고 세션 타임아웃을 방지할 수 있습니다.
- 코드 검증 습관화: 답변 하단의 Python 코드를 펼쳐 결측치 처리 방식(
dropna로 삭제했는지,fillna(0)으로 대체했는지)이나 테이블 병합 시 원치 않는 행 복제가 발생하지 않았는지 필수 가정 사항을 확인하십시오. - 데이터 크기 최적화: 수백만 행에 달하는 빅데이터 로그는 사내 데이터 웨어하우스(DW)에서 SQL로 먼저 요약 및 샘플링한 후, 20MB~50MB 내외의 스프레드시트 형태로 변환하여 분석에 투입하는 것이 바람직합니다.
즈푸칭옌의 고급 데이터 분석을 곁에 둔 '클라우드 전담 Python 분석가'로 활용할 때, 비즈니스 분석가와 지식 근로자는 기계적인 스프레드시트 정리 작업에서 벗어나 데이터가 제시하는 비즈니스 의사결정에 집중할 수 있습니다.