ChatGPT 채팅만 쓰는 당신에게

AI가 매일 똑똑해지는 데이터 분석 시스템을 만들었다

by 파쎄오
# 용어 사전 (Glossary)

본문에 등장하는 용어들을 처음 접하는 분들을 위해 정리했습니다.


## 도구 & 서비스

**Discord (디스코드)**
원래는 게이머들이 음성·텍스트로 소통하려고 만든 무료 앱이다. 요즘은 스터디 그룹, 커뮤니티, 업무용으로도 많이 쓴다. 카카오톡 단체방과 비슷하지만, "채널"이라는 주제별 대화방을 자유롭게 만들 수 있고, 봇(자동 프로그램)을 붙일 수 있다는 게 결정적 차이다. 이 시스템에서는 AI에게 명령을 내리고, 결과를 받고, 기록을 보관하는 사무실 역할을 한다.

**OpenClaw (오픈클로)**
여러 AI 모델을 하나로 묶어서 "에이전트"로 운영할 수 있게 해주는 오픈소스 프레임워크다. 쉽게 말해, AI에게 역할과 판단 기준을 부여하고 24시간 자동으로 일하게 만드는 도구다. 이 시스템에서는 디스코드에 들어온 요청을 받아서 "어떤 스킬을 쓸지, 어떤 순서로 분석할지"를 스스로 판단하는 수석 매니저 역할을 한다.

**Claude (클로드)**
Anthropic이라는 AI 회사가 만든 대화형 AI다. ChatGPT와 비슷한 역할이지만, 긴 문서 처리와 정밀한 추론에 강점이 있다. 이 시스템에서는 두 가지 형태로 쓰인다.

- **Claude API**: 프로그램이 Claude에게 자동으로 질문하고 답을 받을 수 있는 통로. 사람이 직접 대화하는 게 아니라, OpenClaw 같은 에이전트가 "이 분석 좀 해줘"라고 요청하면 Claude가 답을 돌려주는 구조.

- **Claude Code**: 코드 작성과 실행에 특화된 Claude의 개발 도구 버전. 터미널에서 직접 코드를 짜고, 실행하고, 수정해준다.

**LiteLLM (라이트엘엘엠)**
여러 AI 모델(Gemini, Grok, Claude 등)을 하나의 창구로 통합해주는 중간 관리 도구다. "지금 Gemini가 느리면 Grok으로 자동 전환"같은 라우팅을 해주고, 각 모델이 토큰(사용량)을 얼마나 썼는지 모니터링한다. 총무팀처럼 눈에 띄지 않지만 없으면 시스템이 안 돌아가는 존재.

**Gemini Flash / Grok**
구글(Gemini)과 xAI(Grok)가 각각 만든 AI 모델이다. 둘 다 무료 티어가 있어서, 24시간 켜놔도 비용이 거의 들지 않는다. OpenClaw가 일상적인 판단을 할 때 이 모델들을 주로 쓰고, 복잡한 작업이 필요할 때만 Claude를 호출하는 구조로 비용을 절감한다.

**DigitalOcean Droplet (디지털오션 드롭릿)**
클라우드 서버 한 대를 빌리는 서비스다. 집에 컴퓨터를 켜놓는 대신, 인터넷 어딘가에 24시간 돌아가는 작은 컴퓨터를 월 몇천 원에 빌린다고 생각하면 된다. 이 시스템의 모든 프로그램이 이 서버 위에서 돌아간다.


## 기술 용어

**에이전트 (Agent)**
스스로 판단하고 행동하는 AI 프로그램을 말한다. 일반 챗봇은 "질문하면 대답하는" 수동적 구조인 반면, 에이전트는 "목표를 주면 스스로 계획을 세우고, 도구를 골라 쓰고, 결과를 확인하는" 능동적 구조다.

**스킬 (Skill)**
에이전트가 특정 작업을 수행할 때 따르는 매뉴얼이다. 마크다운(.md) 파일로 작성되어 있고, "이런 데이터가 들어오면 이렇게 처리해라"는 구체적 판단 기준이 담겨 있다. 사람으로 치면 "업무 매뉴얼" 또는 "체크리스트"에 해당한다. 핵심은, 이 매뉴얼이 사용자의 전문 경험을 반영해서 점점 정교해진다는 것이다.

**INDEX.md**
스킬 폴더의 목차 파일이다. 에이전트가 "어떤 스킬이 어디에 있고, 언제 써야 하는지"를 빠르게 파악할 수 있게 정리해놓은 안내판. 도서관의 서가 배치도와 같은 역할이다.

**파이프라인 (Pipeline)**
데이터가 처리되는 일련의 단계를 뜻한다. "원본 데이터 읽기 → 전처리 → 분석 → 시각화 → 결과 저장"처럼, 순서대로 흘러가는 작업 흐름 전체를 파이프라인이라고 부른다.

**Headless (헤드리스)**
화면 없이 돌아간다는 뜻이다. 사람이 모니터를 보면서 버튼을 클릭하는 게 아니라, 명령 한 줄로 시작하면 끝까지 자동으로 실행되는 방식. "run_analysis.sh"가 headless 파이프라인인 이유는, 실행만 시키면 사람 개입 없이 분석이 완료되기 때문이다.

**토큰 (Token)**
AI가 텍스트를 처리하는 단위다. 대략 한글 한 글자가 1~2토큰, 영어 한 단어가 1토큰 정도다. AI 서비스의 요금은 보통 사용한 토큰 수로 매겨진다. "토큰을 절약한다"는 말은 곧 "비용을 줄인다"는 뜻이다.

**라우팅 (Routing)**
요청을 적절한 곳으로 보내는 것이다. 택배 물류 센터가 주소를 보고 적절한 배송차에 실어주듯, LiteLLM이 "이 요청은 Gemini가 처리하고, 저 요청은 Claude가 처리해"라고 분배하는 것을 라우팅이라 한다.

**전처리 (Preprocessing)**
분석하기 전에 데이터를 깨끗하게 정리하는 작업이다. 빈 칸 채우기, 날짜 형식 통일하기, 오타 수정하기, 불필요한 열 삭제하기 등. 요리 전에 재료를 씻고 손질하는 것과 같다.

**이상치 (Outlier)**
나머지 데이터와 동떨어진 비정상적 값이다. 예를 들어 직원 월급 데이터에 "9억 원"이 하나 있으면 그게 이상치다. 입력 실수일 수도 있고, 진짜 특수한 경우일 수도 있어서 분석 전에 판단이 필요하다.


## 핵심 개념

**1차 루프 / 2차 루프**
1차 루프는 에이전트가 매일 스킬을 활용해 분석을 수행하는 일상적 반복이다. 2차 루프는 사람이 한 달치 기록을 보면서 스킬 자체를 개선하는 상위 반복이다. 1차 루프가 "일하는 것"이라면, 2차 루프는 "일하는 방식을 개선하는 것"이다.

**복리 효과**
투자에서 이자가 이자를 낳듯, 스킬 개선이 다음 분석 품질을 높이고, 높아진 품질이 더 정교한 개선 메모를 만들어내는 선순환을 말한다. 시간이 갈수록 격차가 기하급수적으로 벌어지는 이유다.


ChatGPT든 Claude든, 대부분의 사람들은 AI를 이렇게 쓴다.

"이 엑셀 파일 분석해 줘."
→ 결과받음.
→ 다음 날 비슷한 파일을 또 올림.
→ "이 엑셀 파일 분석해 줘."

매번 처음부터다. AI는 어제 했던 분석을 기억하지 못한다. 내가 어떤 전처리를 선호하는지, 어떤 시각화가 효과적이었는지, 어떤 실수를 반복하는지 — 아무것도 축적되지 않는다.

나는 이게 답답했다.

17년간 엔지니어링 현장에서 쌓은 데이터 분석 노하우가 있다. 어떤 데이터를 보면 먼저 어디를 봐야 하는지, 어떤 전처리가 필요한지 몸으로 안다. 그런데 AI에게 매번 이걸 처음부터 설명해야 한다니.

그래서 만들었다. 쓸수록 똑똑해지는 나만의 데이터 분석 시스템.


다섯 개의 톱니바퀴


이 시스템은 각자 역할이 다른 다섯 가지 도구가 맞물려 돌아간다. 비유하자면, 회사 하나를 운영하는 것과 같다.

디스코드는 사무실이다. 모든 소통이 여기서 일어나고, 모든 기록이 여기에 남는다. 분석 요청을 던지는 것도, 결과를 받는 것도, "이 부분 다음에 개선하자"라고 메모를 남기는 것도 전부 디스코드 안에서 이뤄진다.

OpenClaw는 24시간 상주하는 수석 매니저다. Gemini Flash와 Grok을 무료 티어로 돌리기 때문에 항상 켜놔도 비용이 거의 없다. 디스코드에 요청이 들어오면, 이 매니저가 즉시 받아서 판단한다. "이 작업에는 어떤 스킬이 필요하지? 전처리는 뭘로 하지? 내가 처리할까, 아니면 전문가를 부를까?"

LiteLLM은 총무팀이다. 여러 AI 모델 사이의 라우팅을 관리하고, 토큰 사용량을 추적하고, 에러가 나면 로그를 남긴다. "지금 Gemini가 느리니까 Grok으로 돌려"라는 판단도 여기서 자동으로 이루어진다. 화려하지 않지만 이게 없으면 시스템이 안 돌아간다.

Claude API는 외부 전문 컨설턴트다. 수석 매니저(OpenClaw)가 "이건 내 수준을 넘어선다"라고 판단하면 호출된다. 복잡한 추론, 정교한 리포트 생성, 깊은 코드 분석이 필요할 때 등장한다.

Claude Code는 개발팀이다. 분석 스크립트를 작성하고, 디버깅하고, headless 파이프라인(`run_analysis.sh`)을 유지보수한다. 코드 품질을 일정하게 유지하는 게 이 팀의 본업이다.

이 다섯이 맞물려 돌아갈 때, 나는 폰에서 한 줄만 치면 된다.


소통의 방이자 기록보관소: 디스코드


이 시스템에서 디스코드의 역할은 단순한 채팅 앱 그 이상이다. 세 가지 기능을 동시에 한다.

첫째, 명령 인터페이스. "이 CSV 분석해 줘"를 던지는 창구이자, 결과물을 받아보는 곳이다.

둘째, 실행 로그 아카이브. 에이전트가 어떤 판단을 했고, 어떤 스킬을 썼고, 어디서 막혔는지가 전부 채널에 남는다. 한 달 뒤에 "그때 그 데이터 어떻게 분석했지?" 하고 되짚어볼 수 있다.

셋째, 스킬 정제소. 이게 핵심이다. 분석 결과를 받아보면서 "환율 반영이 안 됐네", "이 차트보다 히트맵이 나았을 텐데"라는 생각이 든다. 이걸 바로 메모해 둔다. 이 메모들이 모여서, 매월 정기 점검 때 새로운 스킬로 결정화된다.

채널 구조는 이 세 가지 기능에 맞춰 설계했다.

운영 카테고리에는 공지사항과 시스템 상태 채널을 둔다. 봇이 살아있는지, API 잔여량은 얼마인지 확인하는 곳이다.

에이전트 카테고리에는 명령, 실행 로그, 결과 세 채널이 있다. 요청 → 과정 → 결과가 자연스럽게 흐른다.

스킬 관리 카테고리에는 스킬 목록, 개선 제안, 업데이트 로그가 있다. 현재 어떤 스킬이 있는지 한눈에 보고, 개선 아이디어를 즉시 메모하고, 변경 이력을 추적한다.

월간 점검 카테고리에는 버그-루프 기록, 개선 백로그, 점검 리포트가 있다. 여기가 시스템이 "진화"하는 곳이다.

지식 베이스 카테고리에는 도메인 노트, 외부 자료, 아이디어 채널을 둔다. 분석과 직접 관련 없더라도, 언젠가 스킬로 만들 수 있는 원석들을 모아두는 곳이다.


스킬이 쌓이는 방식


스킬이 10개일 때는 그냥 나열해도 된다. 하지만 50개, 100개가 넘어가면 에이전트가 "어떤 스킬을 언제 써야 하지?" 하고 헤맨다. 그래서 계층적 구조가 필수다.

최상위에 INDEX.md가 있다. "데이터 전처리 관련이면 이 폴더, 시각화 관련이면 이 폴더, 도메인 특화 분석이면 이 폴더." 에이전트는 이 INDEX만 읽고 필요한 카테고리로 내려간다.

각 카테고리 안에도 INDEX.md가 있다. "결측치 처리면 이 스킬, 이상치 탐지면 이 스킬." 에이전트는 여기서 구체적 스킬을 선택한다.

결과적으로 3단계 탐색이 완성된다. 전체 맵 → 카테고리 → 구체 스킬. 토큰 낭비 없이 정확한 스킬에 도달한다.

이 구조 덕분에 스킬이 아무리 많아져도 에이전트의 판단력이 흐려지지 않는다.


실전 시나리오


말로만 하면 감이 안 온다. 실제로 이 시스템이 어떻게 돌아가는지 보자.

상황은 이렇다. 해외 프로젝트에서 지난 6개월간의 자재 발주 데이터를 받았다. 예산 대비 실적을 분석하고, 초과 지출 항목을 식별하고, 다음 분기 예측까지 만들어야 한다.

내가 하는 일은 이게 전부다. 디스코드 `#명령` 채널에 CSV를 올리고 한 줄 친다.

"자재 발주 데이터야. 예산 대비 초과 지출 항목 찾고, 다음 분기 예측까지 해줘."

20초. 끝.

그다음은 전부 자동이다. OpenClaw의 architect가 요청을 받고, INDEX.md를 따라 필요한 스킬을 찾아간다. 전처리 스킬이 CSV를 정리하고(결측치 처리, 날짜 포맷 통일, 통화 단위 변환), 도메인 스킬인 material-cost.md가 예산 대비 실적을 비교한다. 이 스킬에는 "10% 이상 초과 항목은 빨간 플래그"라는 내 기준이 이미 박혀 있다.

예측이 필요한 부분은 OpenClaw가 "이건 나 혼자 못해"라고 판단하고 Claude API를 호출한다. 시계열 트렌드 기반으로 다음 분기 자재비를 추정한다.

2~5분 뒤, `#결과` 채널에 분석 결과가 올라온다. 요약 텍스트, 차트 이미지, 상세 데이터 파일까지.

결과를 보니 환율 변동이 반영 안 됐다. `#개선-제안`에 메모 하나 남긴다.

"material-cost 스킬에 환율 변동 반영 로직 추가 필요. USD/KRW 기준."

30초. 이 메모는 다음 월간 점검 때 스킬 업데이트로 반영된다. 그러면 다음 달부터는 환율까지 자동으로 반영된 분석 결과가 나온다.

같은 작업을 Claude 채팅에서 하면 어떨까. 매번 CSV를 업로드하고, "결측치 이렇게 처리해 줘, 예산 초과 기준은 10%야, 차트는 이런 형태로"를 전부 다시 설명해야 한다. 분석 자체는 해주지만, 내 기준도 모르고, 지난번 실수도 모르고, 다음번에도 또 같은 설명을 해야 한다.


매달 한 번, 시스템의 건강검진


이 시스템의 약점이 하나 있다. 방치하면 잘못된 스킬이 잘못된 결과를 계속 만들어낸다는 것이다. 반복되는 실수가 스킬에 그대로 고착되고, 쓸모없는 스킬이 쌓여 탐색 효율이 떨어진다.

해법은 간단하다. 매달 한 번, 정기 점검을 한다.

1단계, 로그 리뷰. 한 달간의 `#버그-루프-기록`과 `#실행-로그`를 훑는다. 반복되는 에러 패턴을 찾는다. "날짜 형식이 YYYY/MM/DD인 데이터가 들어오면 매번 실패하네." 이런 것들.

2단계, 스킬 업데이트. `#개선-제안`에 쌓인 메모를 보고 스킬을 고친다. 환율 로직 추가, 날짜 파싱 규칙 확장, 새 시각화 템플릿 추가.

3단계, 스킬 정리. 중복 통합, 안 쓰는 스킬 아카이브, INDEX.md 갱신. 스킬 셋을 날씬하게 유지한다.

4단계, 점검 리포트. 이번 달 뭘 고쳤고, 뭘 추가했고, 다음 달에 뭘 할 건지 기록한다.

이게 사실 이 시스템의 핵심이다. OpenClaw가 일상 분석에서 스스로 스킬을 쓰는 게 1차 루프라면, 내가 한 달치 로그를 보면서 구조 자체를 개선하는 게 2차 루프다. 시스템이 스스로 진화하되, 진화의 방향은 내가 잡는다.


Claude 채팅 vs. 이 시스템


오해하지 말자. Claude 채팅이 나쁘다는 게 아니다.

일회성 탐색 분석에는 Claude 채팅이 더 낫다. 셋업이 필요 없고, 코드 실행 환경이 내장되어 있고, "이 데이터 대충 뭔지 봐줘"라고 바로 던질 수 있다. 새로운 종류의 데이터를 처음 만났을 때도 마찬가지다. 아직 스킬이 없으니까.

하지만 같은 유형의 분석을 반복할 때, 도메인 전문성이 필요한 분석을 할 때, 품질을 일정하게 유지해야 할 때 — 이 시스템이 압도적이다.

결정적 차이는 시간축에 있다.

Claude 채팅은 1년을 써도 첫날과 같다. 하지만 이 시스템은 1년 뒤에 완전히 다른 수준이 되어 있다. 스킬이 축적되고, 에러 패턴이 해소되고, 내 분석 스타일에 최적화된다. 복리처럼 쌓인다.



결국, AI에 담을 만한 전문성


이 시스템을 만드는 데 필요한 건 생각보다 소박하다. 리눅스 서버 하나(나는 DigitalOcean 월 $6짜리를 쓴다), 터미널 기본 조작, 그리고 AI에게 "이거 세팅해 줘"라고 요청할 수 있는 능력. 코드를 직접 짤 필요는 없다. Claude Code가 다 짜준다.

진짜 필요한 건 따로 있다. 자기 분야의 전문성이다.

스킬이라는 건 결국 "이 상황에서는 이렇게 해"라는 판단 기준이고, 그 기준은 AI가 만들어주는 게 아니라 수십 년의 경험에서 나온다. AI는 그 기준을 실행하고 확장하는 도구일 뿐이다.

이 시스템의 가능성은 나 개인에게만 해당되지 않는다. 은퇴를 앞둔 베테랑 엔지니어의 현장 노하우, 30년 차 의사의 진단 기준, 숙련 투자자의 분석 프레임워크 — 이런 것들이 스킬로 결정화되면, 전문가가 자리를 떠난 후에도 그 지혜가 계속 작동한다.

기술에 뒤처질까 불안해하는 사람들에게 말하고 싶다.

AI 시대에 가장 가치 있는 건 AI를 다루는 기술이 아니다. AI에 담을 만한 전문성이다. 그리고 그건 이미 당신 안에 있다.

작가의 이전글AI는 더 이상 대화하지 않는다. 행동한다.