바이브 코딩 체험기

by 힙스터보살


들어가며...


아이들에게 코딩을 가르치는 사람이지만 코딩을 잘 하지 못한다. 개발을 배우긴 했지만 개발 프로젝트를 온전히 끝내본 적은 거의 전무하다는 게 나의 약점이고 또한 상처이다. 그런데 이제는 시대가 좀 바뀌어서 인공지능으로 바이브 코딩을 할 수 있는 시대가 왔다. 코딩마저 인공지능이 할 수 있으니 위기라고 생각이 드는 한편으로 인공지능을 통해 내 스스로 온전히 프로젝트를 완성할 수 있다는 점에 약간 가슴이 두근거리기도 하였다. 위기가 곧 기회라는 말이 현실적으로 와 닿았다.


무엇을 만들까 행복한 고민은 잠깐. 동아리 대표에 엄마 역할에 나가는 수업의 선생님까지 각종 역할이 나라는 자원을 소모한다. 그래도 뭐라도 만들어 보겠다고 구글 닥스와 App script를 이용한 크롤러를 만들어 봤다. 구현하고 싶은 기능을 전체 다 구현하지는 못했어도 어찌되었든 돌아가는 걸 만들기는 했다. 트리거를 걸어서 오토로 크롤링을 못한다는 점, 새로운 사이트를 추가했을 때 경우에 따라서는 메서드를 또 만들어야 제대로 구현되는 점이 한계이긴 하지만 어쨌든 돌아가는 그 무언가를 만들었다는 게 뿌듯했다.


image.png 말 좀 잘 들어아 이 시꺄....


이번에는 나름 에듀테크 느낌 낭낭하게 시계의 분침과 시침을 위치시키고 재생 버튼을 누르면 시각을 말해주는 웹앱을 만들었다. 뿌듯한 건 그렇다 치고, 바이브 코딩이라는 놀라우면서 또한 지긋지긋할만큼 별로인 부분이 동시에 있다는 것을 아주 잘 알았다. 이 점을 기록 해 보고자 한다.


1. AI가 잘 알아듣도록 명령을 내리는 건 결코 쉽지 않다.


기술경영 수업을 들으면서 '품질의 집(House of Quialty)'이라는 개념을 배웠다. 예를 들어 차를 만들 때, 소비자의 입장에서 '문이 스르륵 닫히다가 마지막에 착 붙는 느낌의 뒷문을 원해요'라고 할 때, 우리는 작업자에게 소비자가 말한 그대로를 전달할 수 없다. 그들에게는 어떤 부품을 어떤 방식으로 어느 정도의 강도로 체결해야 하는지를 구체적으로 전달해야 한다. 문제는 소비자와 작업자를 연결하는 번역하여야 한다는 것.


이런 문제의 양상이 인공지능과 협업하여 코딩을 하는 과정에서 동일하게 나타난다. 나는 코딩에 대한 아주 디테일하고 전문적인 지식을 갖고 있지는 않다. 내 나름대로는 자세히 명령내린다고 인공지능이 받아들일 수 있는 수준으로 자세한 번역은 힘들다. 명령을 잘 내리기 위한 프롬프트를 짜는 것마저 인공지능에게 외주를 줄 수 있다고는 하지만 상당히 번거롭다. 뭍 사람들이 찬양하는 바이브 코딩의 현실은 유능은 하지만 이해력이 좋지 못한 동료와 끊임없이 옥신각신 해가며 진행하는 우당탕탕 프로젝트라고 보는 게 적합한 것같다.


또한 아무리 인공지능이 코드를 잘 짠다 한들, 나역시 코딩에 대한 어느 정도의 경지는 올라와 있어야 한다. 그래야 일의 전반적인 효율이 증가한다. 외주를 잘 주기 위해서라도 내가 그 일을 잘 처리해야 하는 약간 아이러니를 겪어야 한다. 다행히도 내가 하고자 하는 일에 열정과 시간이 어느 정도 있다면 인공지능을 통해 원하는 분야의 학습을 이전보다 빠르게 해낼 수 있다. 위기와 기회의 순간이 빠른 주기로 오가는 게 인공지능과의 협업인 것같다.



2. AI는 내 요청을 시시때대로 무시한다


프로젝트를 시작하는 시점에, 내가 인공지능에게 요구사항을 말하는 것은 당연히 완성된 채로 전달하는 것이 아니다. 일단 가벼운 아이디어로부터 시작하여 좀 더 세밀한 명령을 내리며 파인튜닝을 한다. 명령을 내리는 횟수가 누적될 수록 내 요구사항은 당연히 많아지는데. 그 여러 가지 요구사항 중에서도 이번부터는 꾸준히 늘 지켜야 하는 핵심적인 규칙이 등장하기도 한다.


문제는 이놈의 인공지능이 내 마음과 같이 중요도를 꿰차고 있는 것도 아닐 뿐더러, 요구사항을 수용하는 시행횟수가 누적되면서 지멋대로 덜 중요하다고 여기는 것을 무시하기 시작한다는 것이다. 뭐 그렇게 치면 인간도 '아 이게 뭣이 중요해'라며 기획자의 요구사항을 무시하기도 하지만. AI는 그 정도가 좀 심하다는 생각이 들 정도로 지멋대로 요구사항을 무시한다.


때문에 명령을 내리는 입장에서 좀 더 세심하게 인공지능에게 명령을 내려야 한다. 지금부터는 작업물마다 백업을 해야만 한다면, 그 명령은 새로운 명령을 내릴 때마다 항상 같이 덧붙여놔야 한다. 그만큼 내가 인공지능에게 내려야 할 프롬프트가 길어진다. (쓰는 사람도 지친다) 물론 이마저도 없는 시절에는 결과물을 만든다는 게 언감생시였기는 하지만, 그럼에도 불구하고 바이브 코딩은 생각만큼 '딸깍'이 아님을 꼭 알아야 한다.



3. AI는 시시때때로 지 멋대로 결과물을 만든다


3번의 특성은 2번과 어느 정도 연관이 되어있다. 내가 인공지능에게 이 리소스를 써서 요래요래 만들라고 지시를 하면, 앞으로 보고 뒤로 보고 옆으로 봐도 변형을 시키지 말아야 할 부분인데 제멋대로 변형된 결과물을 내뱉곤 한다. 아무래도 인공지능이 갖고 있는 할루시네이션이라는 특징이 작업을 할 때 이런 방식으로 발현하는 게 아닐까 하는 의심이 든다. 물론 사람도 상대방의 요청을 제멋대로 해석하여 엉뚱한 짓을 한다곤 하지만, 인공지능이 보여주는 헛짓거리는 인간의 수준을 뛰어넘는다. 특정 기능은 훌륭하나 뭔가가 결여된 서번트 증후군 환자를 대하는 느낌이랄까.


물론 이 시각에도 인간의 뇌구조와 이를 알고리즘으로 구현하려는 일련의 시도, 창조한 모델이 보이는 한계를 극복하고자 세우는 별의 별 수리적 모형 등등으로 앞으로 할루시네이션스러운 현상은 줄어들 것이라고 보긴 한다. 하지만 적어도 현재는 아니다. 언제 인공지능이 지멋대로 결과물을 만들지 모르기에, 매 번 명령을 내릴 때마다 백업을 만들어두라고 해야한다. 가능하다면 여러 버전으로 롤백할 수 있는 환경을 구현하면서 바이브 코딩을 할 수 있다면 좋을 것같다. 듣자하니 깃 헙(Git Hub)이 이런 기능을 지원하는 것같은데. 가볍게 경험을 해보면 좋겠다 싶으면서도 할 공부가 태산이니 막막하다.



마치며...


바이브 코딩의 시대가 왔다고 바로 당신이 바이브 코딩을 능수능란하게 할 수 있을 거라는 환상은 버리자. 유튜브에서 바이브 코딩이면 뭐든 다 할 수 있다는 식의 영상은 당분간은 보지 말자. 그 말이 맞을지라도 지금 당장 당신의 수준에서는 적용하지도 못할 이야기일 수 있다. 그럼에도 불구하고 바이브 코딩의 거대한 물결에 올라가고자 한다면 화면 1개로 구성된 앱부터 만들어 보자. 1개라고 무시하면 안된다. 만들다 보면 스트레스 맥스를 찍을지도 모른다. 진심어린 충고이다.




※ 연재는 매주 수요일에 합니다.

작가의 이전글길 잃은 여행자를 위한 안내서