클로드 대리, 과장으로
1편 내용을 간단히 요약해보면
업무 중 가장 시간을 잡아먹는 블로그 아티클 작성, 이걸 AI 에이전트에게 통째로 넘겨버리겠다는 야심찬 계획을 세운 어느 마케터가 있었으니!
주제 하나만 던져주면 에이전트들이 알아서 척척 작업을 이어받고, Claude와 함께 마크다운 파일을 만들고, Claude Code와 함께 블로그 작성을 한 큐에 끝내버리는... 장미빛 미래를 향해 가슴이 두근두근 부풀어 오르고 있었습니다!
그.런.데.
배경지식 1도 없이 무대뽀로 부딪혀 들어가다 보니, 유튜버 선생님(일잘러 장PM님)이 쓰시는 VS Code라는 것이 대체 무엇인지, 어떤 역할을 하는 것인지 도무지 알 수가 없는데다가!
VS Code에서 Claude Code를 연결하려면 Anthropic API라는 것을 통해 별도의 통행료를 내야 한다는, 그야말로 청천벽력 같은 소식이 들려오고 맙니다!
과연 코딩 일자무식 이 마케터, 이 난관을 어떻게 헤쳐나갈 것인가! 2편에서 계속됩니다!
네, 김경식 아저씨 톤으로 작성해보았습니다. 여튼 1편 말미에 "API 키 발급을 좀 더 고민해보고, 결정되면 VS Code에서 구현해볼 생각입니다." 라고 울며 겨자먹기로(아무도 협박한 적은 없지만) 제 생각을 써두었는데요. 의외의 곳에서 이것을 해결할 수 있었습니다.
통행료가 있다는 소식에 슬쩍 다른 길을 알아보기 시작했습니다. 그러다 문득 든 생각.
"어? 우리 회사 구글 워크스페이스 쓰는데? Gemini도 Pro로 구독 중이잖아?"
그래서 당연히 이렇게 생각했어요. "이미 Gemini를 쓰고 있으니까 개발 도구(Google Antigravity)에서 Gemini를 호출해도 그 구독 안에서 처리되지 않을까?" 이렇게 생각해버렸습니다. 아주 자신 있게요.
한 마디로 말하면, 사용자용 서비스와 개발자용 프로그래밍 인터페이스 기반 서비스가 다르다는 것을 개념적으로 여전히 구분하지 못하고 있었다는 것입니다. 클로드만 그런 방식으로 과금하는 줄 알았던 거죠. 그래서 구글로 넘어갔는데...
에이전트에 필요한 건 당연히 후자입니다. 그런데 저는 이 차이를 모른 채, "Gemini 구독 중이니까 Google Antigravity 에이전트에서 내 계정으로 로그인 하면 내가 구독하는 총량이 그대로 적용되는 거겠지?" 하고 연동을 시작했습니다. (같은 구글 계정을 쓸 수는 있어도 서로 완전히 다른 접근 방식이라는 걸 몰랐던 것이죠. 이 개념을 이해하지 못해서 삽질을 한 번 더 하게 됩니다. 오늘의 교훈: 개념 이해를 확실히 하자. 덕분에 2편으로 끝날 아티클이 3편까지 이어지게 되었습니다.)
자, 여기서 잠깐. 제가 왜 이 개념을 헷갈렸는지 이해하려면 API가 뭔지부터 알아야 합니다. 물론 1편에서도 썼지만 분량이 짧아질 수 있으니까 2편에서도 쓸랍니다.
API(Application Programming Interface)... 다들 알고 계시지만, 좀 더 쉽게 말하면 이렇습니다. 식당에 가면 주방이 있고, 손님이 있고, 그 사이에 웨이터가 있죠. 손님은 주방에 직접 들어가서 "이거 해주세요"라고 하지 않습니다. 웨이터에게 주문하면, 웨이터가 주방에 전달하고, 완성된 음식을 다시 손님에게 가져다주죠. API가 바로 그 웨이터입니다. 프로그램과 프로그램 사이에서 "이런 요청 받았어요, 이렇게 처리해줘요" 하고 중간에서 소통해주는 역할이에요.
그리고 API 키는 쉽게 말해 출입증입니다. "나 이 서비스 쓸 수 있는 사람이에요"라는 것을 증명하는 코드 한 줄인데, 이걸 발급받아야 AI를 VsCode 같은 프로그램 안에서 호출할 수 있어요.
같은 Gemini인데 왜 두 가지가 존재하냐고요? 비유를 하나 더 들어볼게요. 넷플릭스를 생각해봅시다. 우리가 넷플릭스 앱을 켜서 드라마를 보는 건 사용자용 서비스입니다. 월정액 내고 UI에서 클릭해서 보는 거죠.
그런데 어떤 개발자가 자기 앱 안에 "넷플릭스 인기 콘텐츠 목록 불러오기" 기능을 넣고 싶다면? 그건 넷플릭스 UI를 갖다 쓸 수 없으니까 넷플릭스의 API를 통해 데이터를 요청해야 합니다. 그리고 이 경우엔 월정액이 아니라, 데이터를 불러온 횟수나 양만큼 따로 과금이 됩니다.
AI도 똑같습니다.
에이전트는 사람이 직접 채팅창을 열어서 입력하는 게 아니라, 프로그램이 AI에게 자동으로 요청을 보내는 구조입니다. 그러니 당연히 API가 필요하고, 당연히 구독과는 별개로 돈이 나갑니다.
Gemini 월 구독료는 "내가 직접 Gemini를 쓰는 요금"이고, API 요금은 "내 에이전트가 Gemini를 쓰는 요금"인 거죠. 완전히 별개입니다. 저는 이 개념에 대해 눈으로 읽기만 하고 진짜 이해는 못했던 겁니다. 이제서야 개발하신 분들이 에이전트는 토큰을 많이 들여야 잘 돌아간다고 표현한 게 이해가 됩니다...
왜냐면 구글 계정으로 로그인하면 내 계정의 쿼터(무료 버전 또는 Google One AI 프리미엄 등)를 그대로 사용할 수 있거든요. 구글 계정 로그인 만으로요! 심지어 클로드와도 연동이 가능해서, API 키 없이도 Gemini와 Claude를 동시에 활용할 수 있습니다.
그런데 저는 이걸 모르고 제 길을 갔습니다. 클로드만 API 과금이 있는 줄 알고, 클로드에게 이렇게 말했습니다.
"나 이제 Gemini+Google Antigravity로 에이전트 구현할 거니까 인수인계 부탁해."
"나 이제 Gemini+Google Antigravity로 에이전트 구현할 거니까 인수인계 부탁해."
그랬더니 클로드 과장님께서 진짜로 인수인계서를 써주셨습니다.
그 인수인계서를 Gemini 대리님께 전달했고, Gemini 대리님은 "ㅇㅋㅇㅋ" 하며 Google Antigravity에 md 파일 세팅과 에이전트 설정 방법을 친절하게 알려주셨습니다.
그리고... 드디어.
Google Antigravity에서 에이전트 실행 완료.
코알못인 제가 이걸 해냈다는 사실에 너무 감격한 나머지, 여기저기 자랑했죠.
후후. 혹시 제가 에이전트 만든 사람처럼 보이시나요? 후후.
팀 내에도 공유하고, "이제 블로그 글 빠르게 쓸 수 있다"고 신나게 자랑했습니다.
네에... 그런데 말입니다.
신나게 자랑하고 며칠 후. 에이전트를 다시 돌리려는데 이런 메시지가 뜹니다.'
Agent terminated due to error.
뭐지? 프롬프트 문제인가? 설정이 바뀐 건가? 이것저것 뒤져봐도 원인을 알 수 없었습니다. 긴 글을 처리하다가 서버가 버텨내지 못하는 것인지, 에이전트가 여러 단계를 거치면서 요청이 너무 복잡해지는 것인지... 코알못인 저로서는 도무지 알 수가 없었습니다.
그 다음 이야기는 3편에서 알려드릴게요.