여러번 같은 주제로 글을 써버리고 있습니다.
그동안 몇가지 작업 환경의 변화를 겪었습니다.
맨 처음 Nvim에 익숙해지자는 맘으로 시작한 프로젝트가 어느새 살이 붙고 붙어서 작업하다보니
도구가 몇가지 늘었습니다.
처음 몇달간 웹 제미나이에서 GEMINI cli로 옮겨오고 얼마전 Antigravity로 환경을 바꾸었습니다.
그간 제미나이의 버전도 올라갔고 안티그래비티로 옮긴 다음부터는 Gemini3로 버전이 올라갔습니다.
이제 정리 차원에서 그간 느낀 문제점들과 내가 해결한 방법을 하나의 글로 묶어 정리하고자 합니다.
- 시작은 그냥 Nvim을 공부해보자는 마음으로 시작했습니다
간단한 편집같은게 아니라 Nvim에서 언어 공부하고 NVim으로 작업하는데 익숙해지면 좋겠다 싶었거든요. 가끔 Nvim과 크롬으로 접속한 제미나이를 가지고 작업한 경험이 있어서 어느정도 도움이 되겠다 생각했습니다. Nvim을 공부하고 언어를 공부하기 위해 확장부터 마구 깔기 시작했습니다. 여기서 제미나이의 도움을 상당히 많이 받았습니다.
그러니 프로젝트의 시작부터 다른 AI 도우미는 염두에 두지 않았습니다. 제 환경상 가장 쉽게 접할 수 있는게 제미나이였고 유료 결제는 그닥 염두에 두지 않았으며 claude같은 여타 AI 도구들도 손대지 않았습니다.
그냥 웹에서 제미나이와 대화 하면서 작업하면 될 줄 알았거든요.
문제는 대화가 길어질 수록 웹에서 맥락을 잃어버리는 일이 많았습니다. 그러면 처음부터 다시 작업해야 하는 일들이 반복됩니다. 그리고 어느새 나는 복붙만 하고 있더군요. NVIM으로는 작업 내용만 정리하는 이른바 편집기로만 사용하고 있었습니다.
- 어느새 Gemini cli 가 출시되었습니다.
터미널 작업을 위해서 가장 좋았던 건 Gemini cli 였던것 같습니다. Claude cli는 써보지 않았으니 비교 대상이 없습니다. 웹에서 하던 작업들을 모두 새로운 프로젝트 디렉토리를 만들어 이전하고 여기서 지금껏 작업한 걸 기반으로 GEMINI.md 파일 만들고 무작정 작업을 시작했습니다. Nvim에서 소스 파일 열어두면 자기가 알아서 소스 내용을 주르를 바꿔나가면서 작업 결과물을 내는게 참 신기했습니다. 그리고 ..
어느새 원래의 목적은 사라져버렸고 프롬프트 때려넣고 나머지 시간은 Nvim 꾸미기로 시간을 보냈더랬습니다.
하다보니 이렇게 Nvim이 바뀌었어요. Lazyvim 기반으로 바뀌어벼렸네요. 실제로 환경은 거의 비슷합니다. 이때부터 완전히 프로젝트의 방향이 바뀌었습니다. 바이브 코딩으로요. 그리고 API 쿼터 지옥을 맛보게 됩니다. 아침에 시작해서 몇시간도 안되어 쿼터가 끝나는 경험이 반복됩니다. 버전을 낮추어도 이건 마찬가지더군요.
- 다시 웹에서 GEMINI와 협업을 시작하다.
바이브 코딩은 돈이 듭니다. 프로그램에 대한 지식이 모자랄 수록 더욱 그걸 느낍니다. 한참 작업하다 에러메시지 뜨면 또 쿼터 소진입니다. 그리고 작업한 맥락을 다 잃어버립니다. 결제해야 하나 고민하다가도 요금제를 보면… Gemini Cli를 쓰는 요금제는 정액제가 아닙니다. 쓴 만큼 돈을 냅니다. 몇번이나 요금 계산을 해보았습니다. 크롬으로 제미나이에게 요금제의 효용성과 예상 비용을 물어보고.. ㅎ.. 그러면서 쿼터 끝나면 하루 기다리고 한주를 기다립니다. 본업이 아닌 취미로 하는, 일주일에 하루나 이틀 작업하는 걸로 끝내는데 돈을 쓰는 건 좀 아깝더군요. .그러니 쿼터를 소진하면 웹에서 제미나이에게 처음부터 다시 작업 내역을 알려주고 작업을 이어가는 상황이 계속 되었습니다.
그러다 아래의 글을 발견하게 됩니다.
지점장’으로서 바이브 코더의 역할 및 새로운 워크플로우
-
바이브 코더(사람)의 역할:
-
‘왜(Why)’ 이 일을 하는지 의도를 기록합니다.
-
결정 과정을 명확히 명시합니다(여러 해결책 중 선택한 이유와 근거).
-
우선순위를 명확히 구분하여 기록합니다 (Must-have, Should-have, Nice-to-have).
-
-
새로운 워크플로우:
-
기획서(PRD)의 중요성 극대화: AI가 매뉴얼에 따라 일하므로, 명확한 기획서 작성이 압도적으로 중요해집니다.
-
AI의 기획서 검토 활용: AI가 작성된 기획서를 검토하여 기존 기능 재사용 여부나 수정 사항 등을 먼저 분석하게 합니다.
-
워크플로우 기반 컨텍스트 확보: 팀은 회의 내용을 녹음하고 AI에게 이를 기반으로 기획서 초안을 작성하게 합니다. 이후 사람이 목표(Goal)와 비목표(Non-goal)를 명확히 정의하고 최종 검토를 완료합니다.
-
이 과정을 통해 '환각이 없는 에이전트 알바 군단’과 '완벽한 기획서’가 확보되어, 개발의 뒷단이 마법처럼 잘 풀리는 경험을 공유했습니다.
-
뭐 대충 요약하면 이런 겁니다. 아, 물론 중간에 더 중요한 내용은 지워버렸습니다. 내가 주목한 건 이겁니다.
“일단 나는 기획하는 입장이다. 그러면 기획자는 리드 프로그래머에게 ( 혹은 시니어에게 ) 작업 내용을 알려주고 시니어는 설계하고 로직짜고 작업 내용을 분화해서 주니어에게 일을 분담시킨다. 그러면 나는 시니어만 상대하면 된다. “
결론을 내립니다. 나는 기획하고 시니어를 웹에서 접속하는 제미나이로 쓰고 ( 맥락을 잃어버리는 일이 있긴 하지만 쿼터 소진은 없으니까.. ) Gemini Cli를 주니어로 해서 코드를 시니어가 짜면 Cli가 주니어로서 코딩한다.
이 결과 쿼터 소진 시간은 훨씬 길어졌습니다. 이 말은 작업에 몰두할 수 있는 시간이 늘어났다는 의미입니다.
하지만 이제부터 더 한 지옥을 보게됩니다. 작업을 편하게 하는게 아니라 작업 중 신경쓸게 계속 늘어납니다. 소스 확인시켜 주느라 구글 드라이브까지 작업에 활용하고 있네요. Gemini cli라면 아무 문제없이 확인 가능한 것도 웹에서는 로컬 파일이 안되니 구글 드라이브에 파일들 rclone으로 다 동기화 시키고 이걸 또 주소 알려주면서 이거 읽어봐 하고 들이밀어야 합니다.
게다가 가장 큰 문제는 웹에서 코드를 작성한다고 하면서 코드를 보내지 않는 일들이 자주 반복됩니다. 컨택스트가 길어지면 길어질 수록 이런 일들이 반복됩니다. 그리고 새 창을 만들어 처음부터 다시 컨택스트를 보내줍니다.
혼자서도 '맥도날드 시스템’의 ‘지점장(바이브 코더)’ 역할을 수행해야 합니다. 복잡한 PRD 대신, 작업을 시작하기 전에 **‘의도’**를 기록하는 습관을 들이세요.
-
작업 의도 기록: AI에게 작업을 요청하기 전에 텍스트 파일이나 주석으로 아래 세 가지를 최소한으로 기록하세요.
-
목표 (Goal): 이 작업이 달성해야 하는 것.
-
비목표 (Non-Goal): 이 작업이 건드려서는 안 되거나, 다음으로 미룰 것.
-
우선순위 (Priority): Must-have (필수 기능), Nice-to-have (선택 사항) 구분
작업 시작전에 이걸 항상 기억하라고 제미나이가 말했지만 바이브 코딩에서는 그게 잘 안됩니다. 그게 되면 내가 코드를 짜고 설계하고 프로그래밍하고 다 했겠죠. 코드 짠거 리뷰해서 버그 픽스 하고 수정하고 했겠죠. 그런데 이 일을 내가 해도 작업자가 다 잊어버립니다. 미치겠습니다.
-
바이브 코딩이란게 그냥 느낌 가는데로 마구 작업한다 라고 정의한다면 저건 이미 작업 지침이 아닙니다. 그리고 이미 GEMINI.md 파일에 거의 기획서 수준의 글들과 추가적인 메모들을 다른 txt 파일로 작성해두었습니다.
이런 일들이 몇번이나 계속되니 또 어느새 Gemini cli를 중심으로 작업하게 되더군요. 제자리 걸음이 시작된겁니다.
- Antigravity가 나오다
VSCode를 포크한 이 녀석이 눈에 들어옵니다. 이때부터 Nvim 학습 곡선을 위해 취미삼아 뭔가 해보면 더 도움이 되겠다는 생각은 안드로메다로 날아갔습니다. Gemini 3가 달려 있답니다. 무료랍니다. API가 아니라 계정 접속이 된답니다. 아. 그러면 요금제도 정액제가 될 가능성이 높겠다.. 싶었습니다.
주말 동안에만 컴터 켜서 작업하는 게 루틴이라 주말까지 기다렸습니다.
가장 먼저 프로젝트 폴더 열고 바로 주지 시킨게 GEMINI.md 파일입니다. 그리고 내가 작성한 버그 리포트와 추가 사항들을 기록한 문서들입니다. 그리고 소스 분석을 시켰습니다.
GEMINI.md 파일의 서두에 박아놓은 중요 사항들이 하나도 지켜지지 않았다면서 마구 리펙토링 하더군요.
안티그래비티에서 지원하는 제미나이는 3 PRO ( High ) / 3 Pro (Low) / 3 flash ( fast ) 가 있더군요. 이게 사기인게.. High에서 쿼터 소진되면 Low로 옮깁니다. Low 쿼터가 소진되면 Fast로 옮깁니다. Fast가 소진되면 Claude Sonnet으로 옮깁니다. 되돌이 표로 계속 멈추지 않고 작업이 진행되더군요. 미친.. 오전에 시작해서 소네트까지 쿼터가 소진되어서 혹시나 하고 Pro High로 모델을 옮기니 쿼터가 살아나 있더군요.
거의 12시간을 쉬지 않고 안티그래비티가 메모리 많이 써서 다운될때까지 풀 작업을 해보았습니다. 그러다 안되면 또 웹에서 작업하고
- 생각난 모든 것들은 Todo List로 만들고 실시간으로 보게 됩니다.
Todo list 만 열어두고 이제 소스는 보지도 않습니다. 생각나는 모든 걸 그냥 Todo List로 밀어 넣습니다. 그리고 작업하고 리펙토링하면서 하드 코딩하지 않고 오로지 외부에서 데이터 조작할 수 있게 만들어둡니다.
그렇게 만든게 사운드 시스템 - 터미널 로그라이크라며?, 스킬 시스템, 전투 시스템, UI 작업, 캐릭터 시스템,…
4일만에 전투 시스템이 끝나버렸습니다. 진짜 크리스마스부터 시작해서 오늘까지 하루 12시간 넘게 작업이 되니 엔간한 작업은 그대로 나옵니다. 6월달 부터 시작한 작업 내용보다 크리스마스 기간 동안 Antigravity를 사용한 작업 내용이 훨씬 깊고 작업 집중이 가능했습니다.
- 유료 결제 할거냐?
아마 할 거 같습니다. 계속 요금제를 보고 있습니다. AI Pro 요금제는 한달에 29000원입니다. 그중 내가 풀로 쓸 수 있는 시간이 8일 정도입니다. 그러면 8일에 29000원이면 API 쓴 만큼 요금 내는 것보다 훨씬 쌉니다. ㅠㅠ 연말 할인있으니 더 쌀 거 같네요.
- 이제 어떻게 할거냐?
음 이제 엔간한 시스템들은 거의 만든 거 같습니다. 벨런싱하고 Todo list에 있는 것들 마무리 지으면 이 작업에서도 손을 떼고 다른 프로젝트를 생각할 거 같아요. 이제 남은 작업들을 어떻게 하면 간편하게 만들 수 있는지 고민 좀 해봐야 할 거 같습니다. 벨런싱에서 어떻게 도움을 받을 수 있는지 알아봐야 합니다. 좀전까지 스킬들 모조리 캐릭터마다 테스트한다고 진이 빠져서 머리가 아픕니다. 이 작업을 벨런싱까지 해내야 한다면 벌써부터 몸서리 처집니다. 그런데 기왕 만드는 거 좀더 벨런싱에 도움이 될 만하게 작업 방식을 생각해봐야 할 거 같습니다. 얼마전 제작에 AI썼다고 GOTY 취소 당한 게임 이야기가 떠오르네요. 그리고 내가 전부터 한 고민인 내 작업의 결과물에 라이센스를 어떤 식으로건 매길 수 있는가도 다시 생각해봐야 할 거 같습니다. 지금 만들고 있는 로그라이크는 일단 제미나이를 사용해 제작했다는 것을 밝히고 MIT 라이센스로 배포하라는 제미나이의 조언이 있었습니다.
이제 지금까지 한 작업들은 한달안에 마무리 짓고 머리 식히면서 백서 비슷하게 작성하면서 프롬프트를 어떻게 다루는게 좀더 효과적인것인지도 생각해봐야 할 거 같습니다. 프롬프트 엔지니어링이 어쩌니 해도 프로그램을 모르는 이상 그냥 코드 내용 모르고 승인 때리고 기술 부채만 쌓여가는 작업물이지만 그래도 마무리는 잘 짓고 싶어요.
