나는 왜 이 무모한(?) 시도를 했는가?
나는 10년차 퍼포먼스 마케터다.
- 퍼포먼스 마케터의 업무 루틴 중 가장 기본은 리포팅이다.
- 지난 10년간 출근하면 전날까지 운영된 광고 데이터를 정리해왔다.
- 나름 고민 많이해서 여러 함수 조합과, 파워쿼리와 같은 엑셀 기능을 활용해 최대한 빠르게 리포트용 Raw 데이터를 만들며 업무해왔지만,
- 바이브코딩과 함께라면 이 과정을 훨씬 더 강력하고 빠르게 해낼 수 있을 거라 믿었다.
- 이번 프로젝트는 나의 첫 바이브코딩 사례이며, 리포팅 업무를 자동화할 수 있는 무언가를 만드는 데 목적이 있었다.
아래는 보통의 경우 리포팅 작업을 하는 과정이다.
1. 각 매체/tool 대시보드 접속
2. 각 매체/tool 마다 추출한 data 항목을 정의하고 보고서 형태로 저장.
- 노출/클릭/kpi 전환 값 등을 나열
3. 각 매체마다 보고서 형태 csv 형태로 다운
4. 다운받은 여러 파일의 칼럼과 값을 동일하게 처 리되도록 전처리
- e.g 1 어떠한 매체는 날짜를 2025-11-24 저장하는데 어떠한 매체는 2025.11.24 로 저장하는데, 이걸 하나의 규칙으로 통일
- e.g 2 어떠한 매체의 칼럼명은 'imp'. 이고 다른 곳은 '노출'. 이 칼럼도 동일해야 머지가 됨
5. 모든 전처리를 끝나면 데이터를 하나로 모두 이어 붙임
이렇게 수식을 짜고, Ctrl C + V 하는 행위들을 뭔가 바이브 코딩으로 쉽게 해결할 수 있다는 믿음으로 이 프로젝트가 시작되었다.
지피터스의 스터디를 통해 claude code로 바이브 코딩 하는 것의 기초를 배웠고
거기서 배운대로 visual studio code (이하 VS code) 로 첫 코딩 프로젝트를 진행해 보겠다.
** 곽은철 강사님의 세션을 들었다. EBS 수학에 정승재 강사가 있다면 바이브코딩에는 곽은철강사님이 있달까..
개발 : VS Code(claude code), Python, Node.js
서버 : Uvicorn (백앤드), Vite (프론트앤드)
데이터 소스 : Meta API, MixPenel API
데이터 출력 : google API , CSV
버전 관리 : GIT
1. 기획 파일 생성
일단 GPT 에게 내가 하고 싶은 아이디어를 기획 문서로 만들어 달라고 했다. 월 3만원씩 꼬박꼬박 월세를 내고 있기에 밥값을 했으면 했는데 제법 잘 정리된 기획안을 주었다.
원래 1차 기획안을 받아 검토했는데, 첫 기획에는 보고서 작성까지 포함되어 있어 작업물의 스펙이 지나치게 크다고 느꼈다.
서두에서 말했듯 이번이 첫 바이브코딩 프로젝트인 만큼, 스스로에게 용기를 주기 위해서라도 일단은 부담을 줄이고 쉽게 시작할 필요가 있었다.
그래서 원래는 보고서 작성까지 이어가고 싶었던 프로젝트였지만, 범위를 Raw data 생성 수준으로 줄였고, meta와 mixpanel 데이터만 가져와 데모를 먼저 만들어보기로 했다.
이렇게 나온 기획 파일을 VS Code 를 띄어 입력 후 MD 파일로 저장했다.
2. Phase. 0 매체(메타, 믹스패널) API 연결
AI 를 상대하지만 휴머니즘을 중요시하는 문과출신답게 AI에게 가스라이팅부터 시작했다.
첫번째 과정은 API 키 발급이었다.
어플리케이션에서 데이터를 각 매체에서 받아오기 위해 고유 키 값을 가져오는 것이 첫 미션이었는데, 이 과정은 Claude 가 링크와 함께 친절하게 하나하나 알려주기 때문에 어렵지 않게 할 수 있었다.
광고 운영 업무를 정말 오래 해왔는데, 이번 경험을 통해 메타에 처음으로 api 관련 대시보드에 접근도 해보았다. 참 신선한 경험이었다.
모르는 부분이 있더라도 쫄 필요 없었다. 하나하나 claude 에게 물어보며 진행했다.
애초에 나와 claude 사이에 위계를 잡아두니 훨씬 편해진 느낌이었다.
그러나 너무 휴머니즘이 과했던 탓일까. Claude도 해이해질 수 있다는 걸 배웠다.
갑자기 휴가를 달라고 요구하는 Claude 에 열이 받았다.
믹스패널까지 API 연동을 마쳤다.
사실 믹스패널 연동 과정에 이슈가 하나 있었다.
현재 회사 믹스패널 계정이 아직 무료 구독 기간으로 이용되고 있는데, DATA 값을 가져오려면 유료 플랜을 써야한다는 것이었다.
다만 Claude 가 무료 플랜도 이용할 수 있는 방법으로 내용을 수정해줬고.. 금마가 뭘 했는지 모르겠지만 여튼 나는 무료 플랜이지만 잘 연결되었다.
3. Phase1. 공통 스키마 설계 + 변환 함수 설정
- 메타와 믹스패널의 서로 다른 데이터 구조를 하나의 스키마로 통합
사실 Phase1 은 빠르게 지나갔다.
스키마를 정의하고 정리하는 것이 Phase의 중요한 내용인데, 이는 어플리케이션을 완료하고 들어오는 데이터를 보고 미세조정 할 것이 많을 것이라고 판단했다.
그래서 최대한 데이터가 잘 쌓이는지 정도만 체크했던 것 같다.
이 과정에 몇 가 지 이슈들이 있었고 그 부분을 claude 가 알아서 잡아줬다.
나도 공부하며 진행하는 시간이라 생각해서 몇가지는 캡쳐하여 gpt 한테 물어보곤 했다.
(하지만 완벽히 이해가 된 건 아니다. - 이럼에도 불구하고 바이브코더는 앞으로 나아간다.)
4. Phase2. 인터페이스 제작 (바이브 코딩 절망편)
phase2 에서는 위에서 정리한 스키마 값대로 데이터가 출력 되도록 구글 sheet와 연동하는 작업과 어플리에키션의 인터페이스를 조정하는 것을 하게 되었다.
Google의 sheet의 API를 활성화하고 관련한 준비를 하는 것은 아주 쉬웠다.
Claude 의 요청을 따라하면 되었던 점과, 이 부분에 대해선 곽은철 강사님의 시연이 한번 있었어 서 아주 쉽게 진행 되었다.
이때 나의 자신감은 하늘을 찌르고 있었다.
이제 바이브코딩 좀 알겠다는 생각이 스물스물 들었다...
와이프에게는 이제 코더라고 부르라고 하였다....
이제 딸깍 몇 번이면 어플리케이션이 완성될 거라 믿어 의심치 않았다.
일요일에 이 프로젝트를 무사히 마치고 위스키와 함께 주말을 보낼 수 있을 거라 생각했다.
하지만 내가 정복한 건 바이브코딩이 아니라
더닝크루거 효과에서 언급되는 우메함의 봉우리였다
그렇게 나는 절망의 계곡에 빠지게 되었다.모든 것이 순조롭게 진행되고 있던 중 처음 만난 문제는 서버 관련 문제였다.
문제1. 서버 메모리 관련 문제
다 되었다고 생각한 순간 계속해서 데이터 처리 중 오류 문제가 발생했다.
그 이유는 claude 가 제안한 render 서버에서 무료로 사용가능한 메모리 량이 믹스패널 데이터를 감당하 지 못해서였다. 또한 render 의 경우 무료버전이 슬립모드로 전환되는 것이 있어서 그걸 계속 깨워줘야 하는 것 같았다.
이를 Fly.io 로 전환하여 사용하려고 했으나 이 역시도 메모리 문제로 사용하기 어려웠다.
그래서 결국 데이터를 Local 에서 처리하기로 하였다.
생각해보면 이 어플리케이션은 데이터를 처리하는 '나'에게만 필요했다. 그래서 local 경로에서 진행해도 무리없다고 판단하여 이렇게 진행하게 되었다.
문제2. 페이스북 API 토큰 만료 문제
[문제 1]을 해결하기 위해 노력하는 중에도 위와 같은 오류가 중첩해서 발생했다.
이는 페이스북에서 발급 받은 API 토큰이 단기 토큰이라 발생하는 문제였다.
한 3번 정도 재발급을 받고 정리하고 하는 과정을 겪다보니 뭔가 잘못된 것 같아서 Claude 와 Gpt를 통해 문제를 해결할 방법을 찾어 보았다
결국 Claude가 단기 토큰을 장기토큰으로 변환하는 방법을 찾아 적용해주었다.
이렇게 두 문제때문에 정말 오랜 시간을 날려버렸다.
별 거 아니라 생각될 수 있겠지만 바이브코딩 초심자에게는 골치 아픈 일이었다...
5. 데이터 검증
이런 모든 절차를 거치고나서 원하는 모습이 조금씩 갖추어졌다.
마지막으로 phase1 에서 생략한 스키마 정리를 제대로 하였다.
내가 원하는 스키마의 목록과 각 매체에서 나오는 값을 어떻게 대치할 지 엑셀로 정리해서 claude 랑 소통하니 원하는대로 데이터를 가공해줬다.
다만, 이 자동화의 결과물이 DATA 다보니 데이터의 완결성에 대한 검증이 꼭 필요했다.
아니나 다를까 일부 데이터가 안 맞는 부분이 있었고,
그 이유는 믹스패널 데이터 열람 기준이 claude 의 생각과 나의 생각이 달라셔였다.
이런 부분을 맞추어 확실한 데이터인지를 검증했다.
6. 완성
결국 나는 완성해냈다...
비록 이 어플리케이션은 데모버전이기 때문에 실효성은 없다.
다만 이 경험을 바탕으로 나중에 네이버 SA , GFA , 카카오 등의 매체와도 연동을 하는 작업을 하여 정말 내가 활용할 수 있는 툴로 디벨롭 하려고 한다...
하... 할 수 있겠,,,있다!
악