Claude Code로 PDF 편집기를 다시 만들면서 내 엔지니어링 실력을 의심하게 되었다
Rebuilding a PDF editor with Claude Code made me question my engineering skills
핵심 요약
AI 도구에 의존해 복잡한 프로젝트를 진행하다 겪은 좌절과, 이를 극복하기 위해 작업 범위를 좁히고 주도권을 되찾은 경험담입니다.
- 과도한 의존 — AI가 복잡한 아키텍처를 주도하게 두면서 통제력을 상실함
- 범위 축소 — 프로젝트를 작은 단위로 쪼개고 단순한 구현을 우선시함
- 엔지니어의 역할 — AI 시대에도 여전히 설계와 범위 설정은 인간의 몫임
- PDF의 복잡성 — PDF 포맷 자체가 가진 기술적 난이도를 과소평가함
구현 계획이 3,000줄을 넘어갔다. Claude Code는 나한테 자꾸 아키텍처 결정을 내리라고 닦달하는데, 선택지들이 뭔 소린지 도통 이해가 안 가더라. 결국 작업을 중단했다.
난 안드로이드 개발만 6년 넘게 굴러먹은 놈이다. 이번에는 내 동생이 운영하는 PDF 툴 사이트인 HonestPDF를 위해 Next.js, React, TypeScript로 PDF 편집 엔진을 만들고 있었다. 동생이 이미 '바이브 코딩'으로 에디터를 하나 만들어놨길래, 그걸 좀 개선해보려고 덤벼든 거였다.
근데 사소한 수정조차 고역이었다. 코드가 여기저기 흩어져 있어서, AI 에이전트한테 뭘 시키려면 코드부터 파악해야 하는데 그게 너무 힘들었다. 걔들은 수정 한 번 하는 데 몇 시간씩 잡아먹으면서 토큰만 엄청나게 태워 먹더라.
한번은 Claude Code를 밤새 돌려놓은 적이 있다. 12시간쯤 지나서 확인해봤는데도 여전히 작업 중이더라. 결국 다 끝났다고 해서 확인해보니, 코드는 더 복잡해졌고 멀쩡하던 기능들까지 다 고장 나 있었다.
그래서 그냥 엔진을 처음부터 새로 짜기로 했다.
그때 나 자신한테 엄청난 목표를 세웠다. 기존 에디터 기능을 더 깔끔한 코드와 확장성 있는 아키텍처로 빠르게 재구현하겠다는 거였다. Adobe나 SmallPDF 같은 놈들이랑 기능 비교까지 해가면서 말이지. 당장 제대로 된 엔진을 뽑아내고 싶었다.
근데 아키텍처 논의 단계에 들어가니까 머리가 터질 것 같았다. 정확히 무슨 질문이었는지는 기억 안 나는데, 죄다 엣지 케이스나 폴백 메커니즘 같은 골치 아픈 것들이었다. Claude가 설명하는 건 이해하기 힘들었고, 계획은 점점 비대해지기만 했다.
난 내가 시스템 설계를 당연히 잘할 줄 알았다. 경력직 개발자인데 이런 결정 하나 못 내리고 쩔쩔매는 게 너무 쪽팔리더라. 이 혼란을 겪으면서 '아, 난 실력이 부족하구나', 'AI를 써도 제품 하나 제대로 못 만드는구나' 싶어서 자괴감이 들었다.
자신감이 바닥을 쳤다. 내가 아직 익숙하지 않은 스택에, 범위까지 너무 크게 잡은 프로젝트 하나 가지고 내 엔지니어링 능력 전체를 깎아내리고 있었던 거다.
결국 새로운 구조는 때려치우고, 훨씬 작은 단위인 '텍스트 감지'부터 다시 시작했다.
작동만 하고 내가 이해할 수만 있다면, 코드가 좀 구려도 상관없다고 생각했다. 내가 통제할 수 있을 만큼 작은 코드베이스를 만들고, 거기서부터 조금씩 살을 붙여나가기로 했다.
그래서 CLAUDE.md에 규칙을 추가했다.
-
추측성 추상화 금지.
-
현재 작업 범위 밖의 기능 금지.
-
지루하고 단순한 구현을 우선할 것.
-
작동하는 기능은 건드리지 말 것.
-
사양과 계획은 사람이 이해하기 쉽게 짧게 유지할 것.
그 뒤로는 사양 중심 개발(spec-driven development)과 TDD로 밀고 나갔다. 수정할 때마다 타입 체크, 린팅, 유닛 테스트도 필수로 넣었다. 작업 범위를 좁히니까 한 번에 파악하고 검증해야 할 양이 줄어서 훨씬 수월했다.
이렇게 기초부터 다지니까 훨씬 내 손안에 있다는 느낌이 들었다. 예전 에디터는 내가 코드 구조도 모르면서 에이전트한테 지시만 내리는 꼴이었는데, 새로 만든 엔진은 코드가 커지는 과정을 다 이해하고 있으니까 달랐다.
물론 배포 과정에서 문제는 있었다. 패키징하고 보니 기존 에디터 기능 몇 개가 빠져 있더라. 그것까지 다 마무리하고 나서야 새 엔진을 프로덕션에 올렸다.
그 이후로 Edit PDF 툴에 달리는 별점 5개짜리 리뷰 비율이 확 늘었다.
그때 깨달았다. 내 소프트웨어 개발 실력은 여전히 중요하다는 걸. 두 방식 다 Claude Code를 썼지만, 내가 범위를 어떻게 잡고 엔진을 어떻게 빌드하느냐에 따라 결과가 완전히 달라졌다. 사람들이 에디터에 긍정적인 반응을 보이는 걸 보면서, 내 기여가 헛되지 않았다는 걸 인정받은 기분이었다.
