모든 것이 망가져 버렸던 밤, 사실은 또 하나 무서운 사태가 벌어지고 있었습니다.
TubeLingo의 개발이 진행되고 하나의 파일의 코드량이 방대해지면서, Gemini가 다 처리하지 못하고 "중요한 코드를 멋대로 자꾸 삭제해서 출력하는" 현상이 일어나고 있었던 것입니다.
저는 그것을 눈치채지 못하고 "AI가 내준 거니까 완벽하다"고 굳게 믿으며, 그대로 Git으로 Commit(저장)해 버렸습니다. 결과적으로 여러 가지 처리가 연쇄적으로 작동하지 않게 되었습니다. 나중에 알아차렸을 때는 이미 늦은 상태. 어디가 지워졌는지조차 알 수 없는 상태였습니다.
"이제 끝일지도 몰라……."
한순간 마음이 꺾일 뻔했지만, 저는 끈기 있게 여기서 다시 마음을 다잡기로 결심합니다.
"AI는 마법 지팡이가 아니야. 내가 올바르게 리드(관리)하지 않으면 그저 폭주하는 기계가 될 뿐이야."
더 이상 제 시간과 코드를 낭비하지 않기 위해. 절망의 늪에서 기어올라 짜낸, 저만의 **'AI 개발 승리의 공식'**입니다.
마법사가 아닌 프로젝트 리더로서의 자각
승리의 공식 1: 프로젝트 전담 'GEM' 만들기
우선 TubeLingo 전용 'GEM(맞춤형 지시를 가진 AI)'을 만들었습니다. 제가 지금 만들고 있는 앱의 파일 구성(Tree)을 명령어로 추출하고, 그것을 GEM에게 읽혀서 "당신은 이 파일들을 관리하는 숙련된 엔지니어입니다"라고 정의했습니다. (참고로 이 GEM에 설정하는 지시서 자체도 모두 Gemini와 상담해서 작성하게 했습니다)
승리의 공식 2: AI의 한계를 알고 코드를 분할하기
멋대로 코드가 지워지는 현상을 막기 위해, 저는 Gemini에게 직접 **"당신이 안전하게 처리할 수 있는 한계 줄 수는 어느 정도입니까?"**라고 확인했습니다. 그리고 그 한계를 넘을 정도로 부풀어 오른 거대한 파일을 AI가 처리하기 쉬운 적절한 크기로 분할(리팩토링)해 달라고 부탁한 것입니다. 이 'AI의 위장 크기에 맞춘다'는 발상이 그 후 시스템의 안정화에 크게 공헌했습니다.
승리의 공식 3: 철저한 '전체 복붙' 의식
그리고 AI가 멋대로 코드의 파편을 건드리게 하는 것을 일절 그만두었습니다. 지금은 아무리 작은 수정이라도 다음의 **'엄격한 절차'**를 지키고 있습니다.
- [나] 요구사항(하고 싶은 것)을 전달한다.
- [GEM] 수정이 필요한 파일을 특정하고, "OO의 소스 코드 전체를 주세요"라고 나에게 요청한다.
- [나] 시키는 대로 파일의 전체 텍스트를 복사해서 건네준다.
- [GEM] 수정이 완료된 소스 코드를 '전체' 제시한다.
- [나] 그것을 VS Code에 통째로 복사해서 덮어쓰고 작동을 확인한다.
이 방법으로 바꾸고 나서 개발은 극적으로 안정되었습니다. 지금도 가끔 토큰이 끊겨 AI가 바보가 되는 일은 있지만, '자주 Commit(저장)하기'를 철저히 하고 있기 때문에 최악의 사태는 막고 있습니다.
굳이 '투박하게' 가는 이유
사실 VS Code의 확장 기능(Cline 등)을 사용하면 이런 번거로운 절차를 밟지 않아도 AI가 직접 에디터의 코드를 고쳐준다고 합니다. 한 번 시도해 보았지만 잘되지 않아 포기했습니다.
하지만 지금으로서는 당분간 이 '수작업 복붙 방식'으로 가려고 합니다.
내가 어떤 파일을 건네주고 어떻게 바뀌었는지를 하나하나 이 손으로 확인한다. 이 투박한 작업이야말로, 코드도 읽을 줄 몰랐던 저에게 '시스템 전체의 구조'를 가르쳐 주고 있다는 느낌이 들기 때문입니다.
🍳 [오늘의 AI 개발 레시피]
- 기술 난이도: ⭐⭐⭐☆☆ (시스템을 정리 정돈하기)
이번에는 거대해진 시스템을 AI가 처리하기 쉽게 정리하는 '대청소' 테크닉을 소개합니다.
1. '리팩토링(코드 분할)'이란?
리팩토링이란 앱의 '겉모습이나 기능'은 바꾸지 않고 '내부 코드의 작성법'을 깨끗하게 정리 정돈하는 것입니다. 뭐든지 하나의 거대한 파일(서랍)에 쑤셔 넣으면 AI도 사람도 어디에 무엇이 있는지 알 수 없게 됩니다. 그것을 '로그인용', '표시용' 등 적절한 크기의 파일로 소분하는 작업입니다.
2. 어떻게 했나요?
저는 코드가 멋대로 지워지는 현상에 직면했을 때, AI를 탓하는 대신 AI 자신의 스펙을 확인했습니다.
실제 대화: 나: "당신이 안전하게 처리(이해, 출력)할 수 있는 한계 줄 수는 어느 정도입니까?" Gemini: "안정적으로 처리할 수 있는 것은 OO줄 정도입니다." 나: "그럼 이 거대한 파일을 당신의 한계를 넘지 않도록 여러 파일로 분할(리팩토링)해 주세요."
이렇게 "AI의 위장(처리 능력) 크기"를 당사자에게 직접 물어보고, 그에 맞춰 코드를 잘라냄으로써 AI의 '기억 상실'이나 '멋대로 삭제'를 극적으로 줄일 수 있었습니다.
3. 독자 여러분께
AI가 갑자기 엉뚱한 대답을 하거나 문장을 중간에 끊어버리기 시작한다면, 그것은 '한 번에 처리하게 하는 양이 너무 많다'는 신호입니다. 그럴 때는 꼭 "한 번에 어느 정도의 정보량이어야 정확하게 처리할 수 있나요?"라고 AI 자신에게 물어보세요. 나만의 AI '취급 설명서'를 손에 넣을 수 있을 것입니다.
예고: 달려온 한 달. 우리가 손에 쥔 것
기술의 벽, 자금의 벽, 그리고 내 자신의 지식 부족이라는 벽. 수많은 절망을 극복하고 마침내 나만의 '승리의 공식'을 확립하여 TubeLingo는 안정적으로 돌아가기 시작했습니다.
아침 6시의 '운명의 5분'에서 시작된 AI와의 농밀한 한 달. 엔지니어도 아닌 40대인 제가 이 도전의 끝에서 본 풍경이란. 그리고 언어의 장벽을 넘는 앱은 가족에게 어떤 변화를 가져다줄 것인가.
다음 회, [제10화] 에필로그: AI와 함께 달린 한 달간의 궤적. 드디어 최종회입니다. 기대해 주세요!
유튜브의 '생생한 목소리'로 배우기 📺
동영상 URL만 입력하세요.
AI가 실제 댓글과 슬랭을 설명해 드립니다.
배운 내용을 바로 실천 ✍️
오늘 배운 표현으로 일기를 써보세요.
AI 튜터가 자연스럽게 첨삭해 드립니다.
