학습 목표
본 강의의 목표는 파이썬(Python)과 OpenAI의 ChatGPT API를 결합하여, 실무에서 가장 많이 활용되는 엑셀(Excel) 및 CSV 데이터를 자동으로 분석하고 인사이트가 포함된 보고서 초안을 생성하는 파이프라인을 구축하는 것입니다. 수동으로 데이터를 필터링하고 요약하는 반복 업무를 자동화함으로써 업무 효율성을 극대화하는 방법을 습득하게 됩니다.
사전 준비 사항
실습을 시작하기 전, 아래의 환경이 준비되어 있어야 합니다. 2026년 현재 표준이 되는 안정적인 버전들을 기준으로 구성되었습니다.
- 운영체제(OS): Windows 11 이상, macOS Sequoia 이상, 또는 주요 Linux 배포판
- 개발 도구(IDE): Visual Studio Code (VS Code) 최신 버전
- 파이썬 버전: Python 3.11.x 이상 (안정성 및 라이브러리 호환성 권장)
- 필수 라이브러리 설치: 터미널(Terminal)에서 아래 명령어를 실행하여 필요한 패키지를 설치합니다.
pip install openai pandas openpyxl python-dotenv - OpenAI API Key: OpenAI 플랫폼에서 발급받은 유효한 API 키가 필요합니다.
단계별 실습 과정
1. 프로젝트 구조 설정 및 환경 변수 관리
보안을 위해 API 키를 소스 코드에 직접 노출하는 것은 금물입니다. 프로젝트 루트 디렉토리에 .env 파일을 생성하고 다음과 같이 키를 저장합니다.
OPENAI_API_KEY=your_api_key_here이제 main.py 파일을 생성하여 라이브러리를 임포트하고 환경 변수를 로드하는 것으로 시작합니다.
import os
import pandas as pd
from openai import OpenAI
from dotenv import load_dotenv
# 환경 변수 로드
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))2. 데이터 로드 및 탐색적 분석(EDA)
분석할 대상인 엑셀이나 CSV 파일을 로드합니다. 여기서는 sales_data.csv라는 가상의 매출 데이터를 가정합니다. 데이터의 크기가 너무 클 경우 API 전송 시 토큰 제한에 걸릴 수 있으므로, 핵심 통계 정보만 추출하여 ChatGPT에게 전달하는 것이 전략입니다.
def load_and_summarize(file_path):
# 데이터 읽기 (CSV 기준)
df = pd.read_csv(file_path)
# 기초 통계량 산출
summary_stats = df.describe(include='all').to_string()
columns_info = df.dtypes.to_string()
head_data = df.head(10).to_string()
return f"""
[데이터 정보]
컬럼 정보:
{columns_info}
기초 통계량:
{summary_stats}
상위 10개 샘플 데이터:
{head_data}
"""3. OpenAI API를 활용한 분석 프롬프트 설계
단순히 데이터를 보내는 것보다 ‘어떤 관점’에서 분석할지 명확히 지시하는 것이 중요합니다. 이를 ‘프롬프트 엔지니어링’이라고 합니다. 데이터 요약본을 기반으로 전문 비즈니스 분석가처럼 답변하도록 설정합니다.
def generate_analysis_report(data_summary):
prompt = f"""
당신은 전문 비즈니스 데이터 분석가입니다. 아래 제공된 데이터 요약본을 바탕으로 상세 보고서를 작성하세요.
보고서에는 다음 항목이 반드시 포함되어야 합니다:
1. 주요 트렌드 및 패턴 분석
2. 주의가 필요한 이상치 또는 문제점
3. 향후 비즈니스 전략을 위한 3가지 핵심 제언
데이터 요약:
{data_summary}
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "당신은 유능한 데이터 분석가입니다. 분석 결과는 Markdown 형식으로 출력하세요."},
{"role": "user", "content": prompt}
],
temperature=0.7
)
return response.choices[0].message.content4. 자동 보고서 생성 및 파일 저장
분석된 텍스트 결과를 마크다운(Markdown) 형식으로 저장하여 나중에 보고서로 바로 활용할 수 있게 합니다. 이 과정에서 에러 핸들링을 추가하여 안정성을 확보합니다.
def save_report(content, filename="analysis_report.md"):
try:
with open(filename, "w", encoding="utf-8") as f:
f.write(content)
print(f"성공: 보고서가 {filename}으로 저장되었습니다.")
except Exception as e:
print(f"오류 발생: {e}")
# 전체 실행 프로세스
if __name__ == "__main__":
file_path = "sales_data.csv" # 분석할 파일명
print("1. 데이터 로드 및 요약 중...")
summary = load_and_summarize(file_path)
print("2. ChatGPT API를 통한 분석 진행 중...")
report_content = generate_analysis_report(summary)
print("3. 보고서 파일 저장 중...")
save_report(report_content)
print("모든 프로세스가 완료되었습니다.")결과 확인 및 활용
스크립트 실행이 완료되면 프로젝트 폴더에 analysis_report.md 파일이 생성됩니다. 이 파일에는 데이터의 통계적 특성뿐만 아니라, ChatGPT가 도출한 비즈니스 인사이트가 체계적으로 정리되어 있습니다.
단순한 수치 나열을 넘어 “특정 분기에 매출이 급감한 원인 추정”이나 “재고 관리 최적화 방안” 등 인간 분석가가 수작업으로 수행하던 통찰을 수 초 내에 얻을 수 있습니다. 2026년의 업무 환경에서는 이러한 자동화 도구를 얼마나 잘 다루느냐가 생산성의 척도가 됩니다.
추가 팁: 대용량 데이터 처리
만약 처리해야 할 데이터가 수백만 행에 달한다면, 전체 데이터를 보내는 대신 파이썬의 pandas를 활용해 먼저 그룹화(Groupby)하거나 피벗 테이블(Pivot Table)을 생성한 뒤, 그 결과값만을 ChatGPT에게 전달하십시오. 이는 API 비용을 절감하고 답변의 정확도를 높이는 핵심 기술입니다. 또한, openpyxl 라이브러리를 활용하면 분석 결과를 다시 엑셀 양식에 맞춰 저장하는 기능까지 확장할 수 있습니다.
이제 여러분은 파이썬과 AI를 결합한 강력한 데이터 분석 도구를 갖게 되었습니다. 이를 실무 데이터에 적용하여 자신만의 자동화 시스템을 구축해 보시기 바랍니다.