아무것도 모르는 사람이 설명으로 버틴 방식
이 웹앱을 만들면서 가장 자주 하는 말이 있다.
“솔직히 이게 뭔지는 잘 모르겠다.”
정확히 말하면, 코딩을 거의 모른다. 문법도 모르고, 구조도 잘 모른다. 이 코드가 왜 돌아가는지도 대부분은 모른다. 지금도 그렇다. 가끔은 내가 뭘 만들고 있는 건지도 헷갈린다.
그래서 내가 택한 방식은 조금 이상하다. 코드를 이해하려고 애쓰기보다는, 그냥 계속 설명했다. “이건 이렇게 됐으면 좋겠고”, “이 상황에서는 이런 화면이 나왔으면 좋겠다.” 그걸 계속 말로 풀어냈다.
아이디어를 정리할 때는 챗지피티를 썼다. 하고 싶은 말을 정리해보는 용도였다. 생각이 맞는지, 말이 되는지 확인하는 정도였다. 그 다음엔 그 정리된 내용을 클로드에게 줬다. “이걸 코드로 만들어달라”고 했다.
클로드는 항상 꽤 그럴듯한 코드를 내놨다. 문제는 그 다음이었다. 코드를 보고 있으면, 이게 맞는 건지 틀린 건지 판단이 안 됐다. 어느 줄이 중요한지도 모르겠고, 함부로 고쳐도 되는 건지도 모르겠다. 그냥 전반적으로 다 모르겠다는 상태였다.
그래서 다시 챗지피티를 불렀다. “클로드가 이렇게 짜줬는데, 이거 괜찮은 거냐”고 물었다. 그러면 거의 항상 이런 식의 답이 돌아왔다.
“그건 클로드가 이 부분을 잘 몰라서 그렇게 한 것 같다.”
“이 구조는 비효율적이다.”
“이렇게 하는 게 맞다.”
제미나이는 더했다. 챗지피티랑 클로드 둘 다 별로라는 듯한 말투로, 자기 방식이 더 낫다고 설명했다.
그 답을 들고 다시 클로드에게 갔다. “챗지피티랑 제미나이는 이렇게 말하던데?” 그러면 클로드는 또 다른 표정으로 답했다.
“그건 맥락을 충분히 고려하지 않은 답변이다.”
“그 방식은 여기서는 적절하지 않다.”
셋이서 은근히 서로를 무시하는 느낌이 들 때도 있었다. 그걸 보고 있으면 웃기기도 했고, 한편으로는 조금 소름이 돋기도 했다. 얘네가 지금 각자 자기 말이 맞다고 나를 설득하고 있다는 생각이 들었다.
그런데 웃긴 건, 그 사이에 서 있는 나는 여전히 아무것도 모른다는 점이다. 누가 맞는지 판단할 기준이 없으니까, 그냥 그럴듯해 보이는 쪽을 고를 수밖에 없었다. 말이 더 잘 이어지는 쪽, 지금 상황에 덜 무서워 보이는 쪽을 택했다.
그렇게 정리한 의견을 다시 클로드에게 던졌다. “이런 의견들이 있는데, 이걸 반영해서 다시 짜줄 수 있냐”고 했다. 그러면 또 새로운 코드가 나왔다. 이 과정을 정말 수도 없이 반복했다.
지금 돌이켜보면, 이건 개발이라기보다는 회의에 가까웠다. 누군가는 계속 의견을 내고, 누군가는 그걸 반박하고, 나는 그 사이에서 중재자 역할을 했다. 다만 회의실에 사람이 없었고, 전부 AI였을 뿐이다.
이 방식의 문제점도 잘 알고 있다. 왜 이렇게 동작하는지 설명 못 하는 코드가 점점 쌓였다. 나중에 고치려면 더 힘들어질 거라는 것도 안다. 실제로 시간이 지나서 다시 보면 “이게 뭐였지?” 싶은 코드도 많다.
그래도 이 방식이 아니었으면, 나는 아마 중간에 포기했을 거다. 혼자 문서를 보고, 에러 메시지를 해석하고, 하나하나 이해하면서 갔어야 했다면 여기까지 오지 못했을 것 같다. 대신 나는 모르는 걸 그대로 인정하고, 계속 물어봤다.
바이브 코딩이라는 말이 정확히 뭘 뜻하는지는 잘 모르겠다. 다만 내 방식은 분명했다. 나는 코드를 짜는 사람이 아니라, 계속 설명하는 사람이었다. 이해하지 못해도 멈추지 않고, 이상하면 다시 묻고, 답이 갈리면 또 묻는 방식이었다.
지금 이 웹앱에는 그런 흔적이 많이 남아 있다. 깔끔하진 않지만, 계속 말을 걸면서 만들어진 흔적들. 누군가는 이걸 엉성하다고 말할지도 모르겠다. 그 말도 맞다.
그래도 적어도 나한테는, 이게 유일하게 끝까지 갈 수 있었던 방법이었다. 나는 그렇게, 아무것도 모르는 상태로, 여러 AI를 붙잡고 이걸 만들고있다.