닿
⚔️ 베테랑 파트너

카톡방 CSV로 스터디 대시보드 만들기와 시행착오..! (feat. 클코랑 언제쯤 친해질까... 🫠)

소개

지피터스 스터디는 한 기수에 약 20-25개의 스터디가 열리고, 각 스터디별 카톡방이 있음. 스터디 실제 줌 세션은 줌으로 녹화되므로 vtt(voice to text) 파일을 기반으로 매일 모니터링 보고서를 받아보고 있음.

대단한 모니터링은 아니고.. 그냥 별 갈등은 없었는지, 발표 수가 활발했는지, 스터디장이 베스트발표자를 잘 선발했는지, 별도 특강 같은 게 따로 있었는지 등 최소한의 정보들을 파악하기 위함.

근데 카카오톡 채팅방은 내가 다 들어가있기는 하지만 모든 톡방을 팔로업할 수는 없음. 가끔 이슈 제보가 들어오면 들어가서 맥락을 직접 수동으로 파악하는 정도로 하는 중.

카카오톡 csv 내보내기를 해서 모든 스터디를 한 번에 분석해볼 수는 없을까? 일단 클코가 방대한 양의 csv도 잘 해주고 일회성 작업할 때 유용하다는 걸 깨달았기 때문에 한 번 트라이해보기로 함

진행 방법

⚙️ ClaudeCode 실행과 MCP 설치 혼란

먼저 dify 카톡방 대화 내보내기 해서 dify.csv를 프로젝트 폴더(250911_kakao_chat)에 넣어둠

클로드코드에서 해당 폴더로 이동 (cd 명령어 이용) 후 claude 쳐서 클코 실행

dify.csv 파일은 카카오톡 오픈채팅방 메시지 전체 내역이야. taskmaster-ai mcp를 활용해서 여기서 이 스터디가 잘 진행되는지, 스터디장이 너무 멤버들을 안챙지는 않은지, 스터디장만 말하고 있지는 않은지, 누가 가장 활발하게 이 톡방을 이끌어나가는지 등등 모니터링할 수 있는 대시보드를 만들기 위한 기획을 하고 실행해서 만들어줘. html 파일로 만들어줘.

분명 taskmaster-ai mcp를 설치해둔 거 같은데, 다시 mcp-installer mcp를 활용해서 다시 검색해서 설치하는 듯 했음

파란색 배경에 한국 파이썬 스크립트의 스크린 샷

여기서 혼란 - mcp를 설치하면 전체 상위 폴더에서 진행되는 모든 작업에서 사용되는 건지, 아니면 하위 프로젝트 폴더별로 mcp를 설치해서 사용하는건지..?

  • 전자여야 할 거 같음.. 후자는 너무 비효율적이자나?


📉 첫 HTML 대시보드 시도, 데이터가 비어 있음

이제 클코가 기획을 하기 시작합니다. 근데 taskermaster-ai mcp를 사용한 건지는 모르겠음. 아마 안쓴 거 같음… 태스크 단위로 안나눔… 그냥 기획해주고 바로 구현 때려버림

화살이 가리키는 한국 메뉴

html 파일을 직접 브라우저로 열었는데, 차트가 하나도 없었음.

[Image #1]사진처럼 현재 차트로 보여지는 영역이 다 비었어. 그리고 모니터링한 분석결과도 함께 표현해줘야지

🖼️ CLI에서 이미지 첨부 시도, 전달 여부 불확실

이미지 캡쳐해서 붙여넣기로 cli 창에 넣었는데 [Image #1] 이렇게 임베딩 됨. 근데 이게 잘 들어간건지 모르겠음.. ㅋㅋㅋ → 아는 사람..?

클로드가 이렇게 답변함.

이제 실제 CSV 데이터를 기반으로 HTML 대시보드를 수정하겠습니다. 브라우저에서 외부 파일을 읽을 수 없는 문제를 해결하기 위해 데이터를 직접 포함시키겠습니다.

아무래도 csv 데이터에 직접 접근할 수 없어서 데이터를 그냥 html 파일에 때려넣는다는 뜻 같음 → 근데 클코의 장점이 로컬에 있는 csv에 접근할 수 있다는 걸로 아는데 왜 안해주냐…

어쨋거나 결과가 왠지 그럴듯하게 나옴


🔄 3개 스터디 비교 대시보드 요청

자 근데 단순히 스터디장의 발화랑 멤버 발화 수만 비교한다고 될 문제가 아닌 것 같다는 생각이 듦. 특히 일정 기간 동안 몇 개 이상의 카톡이 있어야 활발한지, 안활발한지 판단 기준이 필요할 것 같았음.

나도 근데 전체 카톡방을 들여다본 게 아니기 때문에 평균치를 모름. 그래서 2개의 스터디 채팅내역 csv를 더 추가한 후에, 3개 스터디를 동일 기간 기준으로 비교해달라고 요청함

community.csv랑 brain.csv 각각 커뮤니티자동화스터디, 뇌과학 스터디인데 (참고 - dify.csv는 Dify 스터디야) 모두 동일한 기간에 진행된 스터디야. 대시보드에 드랍다운으로 스터디를 넘나들며 결과를 볼 수 있게 해주고, 최종 종합대시보드에는 스터디별로 비교해주는 걸 해야해.

완료. 원하는 기능들을 다 넣었다고 나한테 보고해줌. 이제 열어볼까?

multi_study_dashboard.html 이라는 파일을 만들어줌.


📂 CSV 접근 실패, 샘플 데이터만 분석

내용이 하나도 없는데? 데이터가 없나봐?

이번에도 내용이 텅텅 비었음. 역시나 로컬에 저장된 csv를 못 읽어오고 있음. 다시 물어보니.. 파일이 너무 커서 전체를 읽을 수가 없다고 함…

중간중간 파일 내용의 토큰수가 허용된 토큰수(25000)을 초과해서 안된다는 에러메시지도 떠있음

근데 분명히 태현님이 보여준 사례에서는 엄~~~~청 양이 많은 csv 데이터도 다 읽어왔단 말이야?


🚫 필요 없는 메시지 자동 제거? 하지만 불투명

그러더니 혼자 각 파일에서 100 line만 읽기 시작…;; 이제 파일이 너무 크니 ‘핵심 데이터’만 추출해본다고 애쓰기 시작함.

여기서 인상깊었던 게 클코가 csv 데이터 보더니 ~~님이 나갔습니다, 운영정책을 위반한 메시지입니다~ 등의 스터디와 무관한 내용을 알아서 걸러내주는 것 같아’보임’

같아보인다고 표현한 건.. 실제로 어떤 메시지들을 걸러냈는지 내가 알 수가 없음… → (질문‼️) 이거 어떻게 볼 수 있어요?


🗂️ final → complete, 파일명 관리 혼란

뽀짝뽀짝 일하더니 final_dashboard.html 이라는 파일을 만들어줌. (아니 내가 일을 얼마나 더 시킬줄 알고 지 혼자 final이래?)

여기서 든 생각 - html 파일을 업데이트 하는 게 아니라 매번 요청 때마다 새로운 html 파일을 만들어주는데, 넘버링도 없이 그냥 임의로 파일명을 만들어주다보니 뭐가 더 먼저 만들어진건지 확인이 안됨.

-> 앞으로 요청 시마다 html 새로 만들어야 할 때는 파일에 버전 넘버를 붙여달라고 지시사항에 넣어야겠음

하지만 안나왔죵...?

[Image #1]분명히 같은 파일에 있는데 왜 csv파일이 같은 폴더에 있는지 확인해달라고 하는걸까? 오류발생이래 데이터가 하나도 안떠

역시나 일단 이미지 캡쳐해서 줬지만, 잘 전달됐는지 내가 알길이 없으므로… 에러메시지도 함께 텍스트로 전달함.


🐍 파이썬 코드로 전환하면 될거라고??!

한국 컴퓨터 화면의 스크린 샷

웹서버 없이도 작동하는 완전 독립형 버전… 점점 내가 잘 모르는 세계가 열리는 듯 해서 거부감이 들기 시작..

나는 전체 csv를 갖고 분석해야해. 샘플 데이터로만 분석하면 안돼. 이 경우에 어떻게 해야해?


✋ 여기서 잠깐! 현재 폴더 구조를 봅시다

여기서 잠깐! 내가 올린 3개의 csv 파일 제외, 클로드가 혼자 뽀짝뽀짝 삽질(?)하면서 만들어 준 파일들을 살펴봅시다.

  • sample.txt 는 일단 대시보드에 데이터 띄우기 위해서 클로드가 임의로 샘플 텍스트만 추려낸 파일들을 의미할 것 같고

  • 현재 최적의 솔루션이 파이썬 코드를 짜서 실행하는 거라고 했으니, 뽀짝뽀짝 파이썬 파일을 만들어주는 것 같음


😆 진짜 완성?!

자 이제 진짜 만들어줬다고? 진짜짜???

그럼.. 아까 final 이었으니까 이번에는 뭐로 파일명 지었는지 볼까? → complete_dashboard.html ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아니 무슨 최종 최최종 찐찐최최종도 아니고 뭔데 ㅋㅋㅋㅋㅋㅋ

짜잔 결과물!!!!!!!!!!!!

근데 굉장히 찝찝하다…. 파이썬 코드로 돌린거니까 진짜로 전체 데이터로 분석한 거 맞나? → 이거 확인하려면 어떻게 해야하지?


배운 점을 정리해보자

일단 여기서 클코 테스트해본 건 마무리.

여기까지 작성한 내용을 GPT에게 주고 내가 겪은 시행착오와 배운점을 정리해달라고 함.

시행착오 & 필요한 도움

  1. MCP 설치 혼란

    • taskmaster-ai MCP를 설치했는데, 프로젝트마다 따로 설치해야 하는 건지, 전체 환경에 한 번만 설치하면 되는 건지 확신이 없었음. 실제로 태스크 분해가 안 돼서 “이게 적용이 된 건가?” 하는 의문만 남음.

    • 👉 도움 필요: MCP가 제대로 적용·사용되고 있는지 확인할 수 있는 방법과, 세션에서 호출 로그를 남기는 확실한 루틴.

  2. CSV 접근 문제

    • 로컬 CSV를 읽어 HTML 대시보드에 바로 띄워줄 거라 기대했는데, 브라우저 보안/토큰 제한 때문에 계속 비어 있거나 샘플 데이터만 하드코딩됨. “로컬 접근이 ClaudeCode 장점 아닌가?”라는 혼란.

    • 👉 도움 필요: 대용량 CSV를 전체 데이터 기반으로 안정적으로 분석하려면 어떤 접근(전처리 JSON, 로컬 서버 등)을 표준으로 삼아야 하는지.

  3. 필터링 불투명성

    • Claude가 “~님이 나갔습니다” 같은 메시지는 걸렀다고 했지만, 어떤 기준으로 무엇을 걸렀는지 내가 직접 확인할 수 없었음. 결과 신뢰가 떨어짐.

    • 👉 도움 필요: 필터링 규칙과 제거된 샘플을 별도 파일로 기록해 투명하게 확인할 수 있는 절차.

  4. 버전 관리 혼선

    • 결과물이 final.html, complete.html 같은 이름으로 계속 새로 생성돼서 어떤 게 최신인지 헷갈림. 버전 추적이 안 됨.

    • 👉 도움 필요: 파일 버전을 일관되게 관리할 수 있는 네이밍 규칙과, 모델에게 이를 강제하는 프롬프트 방법.

  5. 지표 부족 깨달음

    • 처음에는 리더 발화 수 vs 멤버 발화 수만 비교했는데, 이걸로는 스터디의 “활발함”이나 “건강성”을 평가하기 어렵다는 걸 느낌. 질문·응답 비율, 참여 폭 같은 다른 지표가 필요하다는 생각.

    • 👉 도움 필요: 스터디 건강성을 설명할 수 있는 최소한의 핵심 지표(3~5개)를 정의해주는 가이드.

  6. 검증 불안감

    • 파이썬 코드로 최종 대시보드를 뽑아줬는데, 정말 “전체 CSV 데이터”를 기반으로 한 건지, 아니면 샘플링된 결과인지 확인할 길이 없음. 찝찝하게 마무리됨.

    • 👉 도움 필요: 결과가 전수 데이터를 기반으로 했다는 걸 확인할 수 있는 검증 절차(행 수, 참여자 수, 데이터 해시 같은 요약치 비교 방법).

4
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요