AI가 CV 생성 앱 코드를 짜게 했더니 힘들었다는 이야기
요약
한 학생이 AI의 결과물에 과도하게 의존하며 겪은 개발 경험을 공유합니다. AI 에이전트 기반 개발 및 사양 주도 개발 개념을 접하고, Gemini CLI와 Claude를 활용해 CV 생성 앱 프로젝트를 시작했으나, 결국 스스로 이해하지 못하는 수준까지 도달하여 어려움을 겪었습니다.
핵심 포인트
- AI에 대한 과도한 의존은 학습 동기 상실과 이해 부족을 초래합니다.
- AI 에이전트 기반 개발 및 사양 주도 개발 개념을 접했습니다.
- Gemini CLI와 Claude를 활용해 CV 생성 앱 프로젝트를 시도했습니다.
- 프로젝트 진행 과정에서 AI 도구의 할당량 제한 및 비용 문제가 발생했습니다.
네. 맞습니다. 제가 방금 들으신 게 사실입니다. 이것은 저의 부끄러운 고백입니다.
저는 필리핀 민다나오 대학교(University of the Philippines Mindanao) 학생으로, 현재 컴퓨터 과학 학사 과정 2학년에 재학 중입니다. 그런데도 저는 모든 개발자가 피하는 치명적인 죄를 저질렀습니다: AI가 모든 작업을 하도록 내버려 두는 것이었습니다. AI가 만들어준 결과물 때문에 프로젝트를 계속할 동기를 완전히 잃어버렸고, 게다가 이 프로젝트 전체 시스템에서 실제로 무슨 일이 일어나고 있는지 이해하려고 애쓰면서 몇 개의 뇌세포마저 잃었습니다. 이것은 제가 AI의 결과물에 의존한 모든 결과를 고스란히 겪는 모습입니다.
저를 코딩에 너무 의존하는 사람이나 게으름뱅이라고 비난하기 전에, 제가 제 포트폴리오를 위해 멋진 앱을 만들려고 시도하면서 실제로 어떻게 문제가 생겼는지 이야기를 먼저 해드리겠습니다. 준비하세요. 이 글에는 저의 경험과 씨름하며 겪었던 어려움에 대한 많은 잡담과 불평(제가 솔직하게 말할게요)이 담겨 있습니다. 본인의 판단하에 읽어주세요.
2026년 5월 16일: AI와 함께하는 빌드 미팅.
그날 저는 Davao에서 Google Developers Group이 주최한 AI를 활용하여 개발하는 미팅에 참석했고, 거기서 학창 시절 친구 중 한 명과 네트워킹을 했습니다. 그 친구는 소프트웨어나 다른 것을 빠르게 구축하는 방법에 대한 몇 가지 팁과 트릭들을 공유해 주었습니다. 여기에는 AI 에이전트가 코드베이스 구축을 돕도록 하는 에이전트 기반 개발(agent-based development) 개념과, 사용자가 제공한 일련의 사양이나 무엇을 구축해야 할지에 대한 진실 근거(truth grounds)와 함께 투두 리스트에 따라 AI가 작동하는 사양 주도 개발(spec-driven development) 개념이 포함되었습니다 (IBM, 2026). 그는 또한 Gemini CLI가 어떻게 작동하는지, 그리고 그가 그것으로 얼마나 빠르게 구축하고 있는지 저에게 소개했습니다. 이 도구는 할당량 제한(rate limits)이 매우 관대합니다(크레딧은 5시간마다 초기화되며, 한도를 초과하면 1주 후에 재설정됨). 그래서 저는 '제대로 프롬프트를 작성하고 무엇을 유지할지, 수정할지 또는 삭제할지를 결정하기만 하면 AI로 원하는 모든 것을 만들 수 있다'는 망상에 빠졌고, 실제로 이를 시험해보고자 단독 프로젝트를 개발하기로 했습니다.
2026년 6월 ~ 8월: 고군분투의 시간.
학교와 해커톤 활동으로 바빴기 때문에 그 단독 프로젝트는 시작이 늦어질 수밖에 없었습니다. 그리고 놀랍게도, Gemini CLI가 이미 지원 종료되어 더 관대한 할당량 제한을 가진 Antigravity로 대체되었는데, 크레딧이 평소의 5시간 초기화 대신 주간 단위로 초기화되었습니다(사실 이것은 프로 플랜이었지만, 저는 AI에 돈을 지불할 생각이 없었습니다). 게다가 Claude를 많이 사용하고 싶지는 않았습니다. 왜냐하면 비싸고 프롬프트를 입력하는 순간 크레딧이 빠르게 소진되기 때문입니다. 그럼에도 불구하고, 사양을 작성하며 프로젝트 구축을 시작했습니다. 이를 위해 초기 프로젝트 사양을 작성하는 데 Claude의 도움이 필요했고 (이것은 제가 코딩 프로젝트를 위해 Claude를 사용한 단 두 번의 경우였습니다).
안녕하세요 Claude! 사용자가 거주지, Gmail, 연락처 번호, LinkedIn, GitHub와 같은 개인 정보와 경력, 학력, 수상 내역, 프로젝트, 기술 및 특징, 자격증, 연구 출판물 목록을 입력하여 이력서(CV)를 만들 수 있는 앱을 만들고 싶습니다. 웹사이트가 버튼 클릭만으로 CV에 어떤 섹션을 추가할 수 있도록 해야 합니다. 사용자가 완료하면, 웹사이트는 그 정보가 담긴 LaTeX 파일을 생성해야 합니다 (참고: 해당 정보를 변환하는 Python 스크립트가 있습니다). 이 앱을 구축하기 위한 프론트엔드와 백엔드 가이드가 포함된 SPECS.md 파일과 TODO.md 파일을 만들어 주시겠어요? 저는 백엔드는 REST API를 사용하고 Node.js와 PostgreSQL을 데이터베이스로 사용하는 것이 좋고, 프론트엔드는 React를 사용하는 것을 선호합니다.
(이 프롬프트에 무엇이 잘못되었는지 볼 수 있나요?)
하지만 제가 정확히 계획했던 것은 무엇이었나요?
저는 LaTeX CV 생성 앱을 만들 계획이었습니다. 기본적으로 이것은 사용자가 먼저 개인 정보를 채우고, 그 다음 다른 섹션들을 채우는 방식입니다. 이는 한 섹션의 '추가' 버튼 클릭을 통해 이루어집니다.

Moonchild AI가 생성한 프로젝트 UI 목업
이것이 해결하려는 문제는 기본적으로 우리 각자가 CV에 어떤 순서로 정보를 제시하는 것을 선호하는지에 대한 사실입니다. 유일한 제한 사항은 이것이 컴퓨터 과학(CS) 또는 유사 학위와 더 호환성이 높다는 것입니다.
필드를 채운 후, 웹사이트는 기본적으로 입력된 내용을 가져와 LaTeX 파일로 파싱하고, 이를 PDF로 파이프라인 처리합니다. 또한 웹사이트에서 PDF 미리보기를 제공합니다. 이 PDF는 다음과 같은 모양일 것입니다:

웹사이트의 예상 PDF 출력물
게다가, 이 앱은 완전히 무료로 설계되었고, 이런 방식으로 광고될 계획이었습니다. 저는 클라이언트와 개발자인 저 모두에게 앱을 완전히 무료로 유지하고 싶었기 때문에 AWS 서비스를 전혀 사용하고 싶지 않았습니다. 사용자 상호작용에서 수익을 얻기 위해 고객들에게 광고를 퍼붓고 싶지도 않고, 또한 클라이언트의 여러 요청에 대해 예상치 못한 비용이 청구되는 것도 원하지 않았습니다.
기획 및 디자인 단계
AI로 실제로 구축하기 전에, 저는 프로젝트의 사양(specs)과 요구사항을 다듬어야 했습니다. 사양 문서가 확정되기까지 많은 생각과 수정 작업이 필요했습니다. 왜냐하면 일단 AI에게 사양을 입력하게 되면 되돌릴 수 없기 때문입니다. 너무 일반적인 프로젝트로 끝나고 싶지 않았기 때문에, 저는 사양에 새로운 기능을 추가해야 했습니다.
위에 보신 목업(mockup)은 실제로 AI가 생성한 것입니다. 제가 사용한 프롬프트는 다음과 같습니다:
"사용자가 위치, Gmail, 연락처 번호, LinkedIn, GitHub와 같은 개인 정보를 입력하고, 버튼 클릭을 통해 경력, 학력, 수상 내역, 프로젝트, 기술 및 특성, 자격증, 연구 출판물 목록을 작성한 후 제출하면 PDF 파일이 생성되는 CV 이력서 제작 웹사이트를 PC/모바일용으로 디자인해 주세요. 사용자가 자신의 콘텐츠에 전적으로 집중할 수 있도록 빠르고, 쉽고, 신뢰감을 주는 느낌이어야 합니다. UI는 깨끗하고, 단순하며, 이해하기 쉬워야 합니다."
"색상에 관해서는 배경은 순백색(pure white)으로 하고 구분선 테두리는 연회색(light gray divider borders)을 사용하며, 구조는 높은 대비의 텍스트 레이아웃을 위해 제트 블랙 색상(#1A202C)을 사용하고, 전기 인디고(#4F46E5)는 현재 활성화된 입력 필드와 주요 완료 버튼에만 사용해 주세요."
⚠️ [IMG:N] 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
사용자가 각 섹션을 개별적으로 채워야 하는 순차적인 CV 생성 과정은 만들지 말아주세요. 다음과 같은 형태를 원합니다:
- 모든 가능한 섹션이 나열된 사이드바 또는 상단 툴바가 있어야 합니다.
- 아직 추가되지 않은 섹션에는 "섹션 추가(Add Section)" 버튼이 표시되어야 합니다.
- 추가된 섹션은 메인 빌더 영역에 접을 수 있는 카드 형태로 나타납니다.
- 각 섹션 카드는 다음 요소를 갖습니다:
- 접기/펼치기 토글(Collapse/expand toggle)
- 섹션 삭제 버튼(Delete section button)
- 드래그하여 재정렬하는 핸들 (선택 사항, v2)
- 반복 가능한 섹션(경력, 학력 등)에는 새로운 빈 항목 양식을 추가하는 "항목 추가(Add Entry)" 버튼이 있어야 합니다.
제가 프롬프트를 어떻게 구성했는지에 주의를 기울여 주세요. 이 블로그가 진행됨에 따라 중요할 것이기 때문입니다. 저는 AI에게 필요한 맥락, 지침, 그리고 톤을 포함한 제약 조건을 제공했습니다. 위의 결과물은 어느 정도의 가능성을 보여주었습니다. 그래서 저는 이 프로젝트를 성공적으로 수행할 수 있을 거라는 높은 기대를 가졌습니다.
하지만 말씀드린 것처럼, 제한된 크레딧 사용이라는 어려움에 부딪혔습니다. 때로는 Antigravity를 사용했지만, 이것들은 제가 프롬프트를 보낼 때 많은 크레딧을 소모하기 때문에, 저는 오직 제 사양(specs)과 할 일 문서(todo documents)를 다듬는 데만 그것을 사용했습니다. 저는 주로 GitHub Copilot을 사용하여 프로젝트를 구축했고, 월별 크레딧이 한도에 도달하면 저에게 작업을 맡기기 위해 AWS Kiro로 전환했습니다.
백엔드 구축 (Building the backend)
공식적인 고군분투가 시작되는데, 저는 프로젝트의 백엔드를 구축하기 시작합니다. 하지만 제 AI와의 관계가 그리 좋지 않다는 것만 말씀드리겠습니다. 여기 GitHub Copilot에 대한 샘플 프롬프트가 있습니다:
SPECS.md와 TODO.md를 읽어주세요. 앱의 내보내기 엔드포인트(POST /api/cv/export 및 POST /api/cv/:id/export) 구현을 도와주시겠어요? 제가 알기로는 LaTeX 생성 스크립트(server/python/generate_latex.py)와 LaTeX PDF 서비스(src/services/latex.service.js)는 이미 구현되었지만, 원하시면 자유롭게 다듬어 주셔도 됩니다. 모든 것이 작동하는지 확인하고, 보안 고려 사항이 위반되지 않았으며 보호된 공개 코드가 그대로 복사되지는 않도록 해주세요. 검사 중에 발생할 수 있는 오류가 있다면 수정해 주세요. 누락된 파일이 있다면 앱이 다음 단계에 준비될 수 있도록 추가해 주세요. 완료되면 TODO.md의 체크박스를 확인하여 해당 작업을 완료했음을 표시해 주세요._
(이 프롬프트에 무엇이 잘못되었는지 보시겠어요?)
저는 AI에게 최대한 좋은 프롬프트를 작성하려고 노력하고 있지만 시간이 촉박합니다. 여름 방학이 끝날 때까지 프로젝트를 끝내고 싶었지만, 무료 모델만 사용할 수 있고 크레딧도 제한적이라서 최대한 활용해야 했습니다. 그런데 백엔드에 대해 생성된 코드가 너무 엉망이었습니다. 한 번은 이런 오류 때문에 고생한 적이 있습니다:
Status: 500
Response: {
"error": true,
...
오류: 등록 시 토큰을 반환하지 않음 (데이터베이스에 연결할 수 없음)
심지어 GHCopilot은 제가 입력한 프롬프트가 보호된 공개 코드를 그대로 일치시키기 시작하자 제 요청을 차단하기도 했습니다. 위에서 읽으신 프롬프트는 사실 GHCopilot이 이전 요청을 차단한 것에 대한 응답이었는데, 정말 짜증나는 건 월간 크레딧의 15%가 낭비되었다는 점입니다. 저는 '이미 프롬프트를 충분히 자세하게 설명했는데, 이게 부족합니까? 더 뭘 원하십니까?'라고 생각했습니다. 이 지점에서 AI에게 모든 작업을 맡기려고 할수록, 실망시키지 못하는 것이 짜증나게 느껴집니다. 계속해서 형편없는 결과물만 내놓는다는 점이요. 하지만 제 고집은 멈추지 않았습니다. 결국, 제가 어려움을 겪던 시기가 7월 말이었고, 크레딧은 8월 시즌에 초기화될 것이었기 때문입니다.
프론트엔드 구축하기
모든 것이 정리되고 API 엔드포인트가 마침내 '작동하는' 방식에 만족하게 되자, 드디어 프론트엔드를 구축할 차례가 왔습니다. 랜딩 페이지는 폼 빌더 페이지가 완전히 기능하게 되면 쉽게 코딩할 수 있을 것 같아 폼 빌더 페이지를 먼저 만드는 것을 우선순위로 두었습니다. 하지만 저답게, AI에게 UI 목업과 사양 및 할 일 문서를 컨텍스트로 보여주었으니 모든 것을 맡겨버렸고, 이것이 그 결과물입니다.

AI의 초기 결과물 (GitHub Copilot; 형편없는 결과물)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기