오늘 빠르게 출시하려고 선택한 모든 지름길은 대출이에요. 그리고 모든 대출에는 이자가 붙어요.
단어를 알기 전에 몸으로 먼저 느꼈을 거예요. AI로 빠르게 개발하던 초반, "어떻게든 작동만 하면 돼"라고 지시했어요. 그러면 정말 작동했어요. 배포도 됐고요. 천재가 된 기분이었죠. 그런데 2주 후, 아주 사소한 것 하나를 바꾸려 했더니 카드로 쌓은 집 전체가 흔들렸어요. 5분짜리 수정이 오후 내내를 잡아먹었어요. 새로운 무언가를 망가뜨린 게 아니었어요. 천재인 척했던 그때 잘라낸 모서리를 이제야 갚고 있었던 거예요.
"이렇게 빨랐는데"와 "지금은 왜 이렇게 힘들지" 사이의 그 간극이 기술 부채예요.
대출을 구체적으로 설명하면 이래요. 오늘 밤 안에 기능을 내보내야 해요. 깔끔하게 빌드하는 방법(하루)과 대충 해치우는 방법(한 시간)이 있어요. 한 시간을 선택해요. 솔직히 현명한 판단이에요. 마감을 지켰으니까요. 하지만 그 작업을 아낀 게 아니라 미래의 나에게서 빌린 거예요. 미래의 나는 그 코드를 건드릴 때마다 이자를 붙여 갚게 돼요.
이자는 마찰로 나타나요:
- "금방 끝날" 수정이 이상하게 일주일을 잡아먹어요.
- 변경 하나가 전혀 무관하다고 확신했던 세 군데를 망가뜨려요.
- 새로 합류한 사람(혹은 새 AI 세션)이 구조를 파악하는 데만 한참 걸려요.
- 팀 전체가 은근히 열기 두려워하는 파일 하나가 생기고요.
이것들은 버그가 아니에요. 청구서가 도착한 거예요.
중요한 점이 있어요. 부채는 죄가 아니에요. 여기서 많은 분이 오해해요. 어느 정도의 부채는 자연스럽고, 오히려 옳은 선택일 때도 많아요. 속도를 빌려서 출시하고, 고객을 확보하고, 제대로 만들 가치가 있는 아이디어인지 먼저 증명하는 거예요. 창업자들은 이걸 의도적으로 계속해요. 출시하려고 모서리를 잘라내는 것 자체가 실수가 아니에요.
실수는 갚지 않는 거예요. 방치된 부채는 그 자리에 가만히 있지 않아요. 복리로 불어나요. 모서리를 계속 잘라내면서 한 번도 돌아오지 않으면, 어느 날 모든 변경이 느리고 모든 수정이 두렵고 전체가 기어가는 코드베이스가 돼요. 팀이 게으른 게 아니에요. 수백 개의 낡은 지름길에 이자를 갚느라 새로운 것을 만들 여력이 남지 않은 거예요.
AI가 끼어들면 문제가 더 커지는 이유가 있어요. 바이브 코딩을 하면 한 오후에 "일단 작동하는" 코드를 엄청난 양으로 만들 수 있어요. 그 느낌은 굉장하죠. 동시에, 본인이 코드를 직접 작성하지 않았기 때문에 어느 모서리가 잘렸는지 전혀 알 수 없는, 눈에 보이지 않는 부채를 가장 빠르게 쌓는 방법이기도 해요. AI는 딱 시킨 대로 "작동하게" 만드는 것에 최적화되어 있거든요.
청구서를 감당 가능한 수준으로 유지하는 몇 가지 습관이 있어요:
의도적으로, 소리 내어 빌리세요. 대충 가는 길을 선택했을 때 기록해두세요. 코드에, 이슈에, 문서에: "이건 지름길이고, 나중에 제대로 고칠 방법은 이렇다." 적어둔 부채는 갚을 수 있어요. 잊어버린 부채가 나중에 기습해요.
조금씩, 자주 갚으세요. 대대적인 "전체 정리" 프로젝트는 필요 없어요(어차피 그런 프로젝트는 실현되지 않으니까요). 이미 그 코드 부분을 건드리는 김에 거친 경계 하나를 정돈해요. 작은 상환이 언제 올지 모르는 일시 상환보다 나아요.
AI에게 청구서를 찾아달라고 해보세요. 지저분한 부분을 가리키며 솔직하게 물어봐요: "여기 어떤 지름길이 있고, 나중에 뭐가 문제가 될까?" AI는 이 작업을 진짜 잘해요. 보이지 않는 부채는 갚을 수 없고, AI는 잊고 있던 모서리들을 드러내줘요.
빠른 버전과 올바른 버전은 거의 같은 버전이 아니에요. 괜찮아요. 다만 어떤 것을 선택했는지 기억해두세요. 어느 쪽이든 청구서는 반드시 와요.