출장을 갔다가 어느 기관 사무실에 잠깐 들른 적이 있습니다.
인사를 드리는데 화이트보드가 눈에 들어왔습니다. 빽빽했습니다. 표 같은 것, 화살표, 데이터 이름 같은 것들.
물어보니 그분도 저와 비슷한 생각을 하고 계셨습니다. 쓰던 프로그램이 불편해서 직접 만들어보려는 중이라고요. 주말마다 지인 개발자를 불러 배우고 있다고 했습니다.
솔직히 자극을 받았습니다. 사실 그 화이트보드가 아니었으면 저는 시작을 안 했을지도 모릅니다.
그리고 그때 들은 말이 하나 더 있습니다.
“80~90%까지는 되는데요”
거기서 멈춘다는 겁니다.
이건 그분만의 이야기가 아닙니다. 바이브코딩을 해봤다는 사람들에게 놀랄 만큼 자주 듣는 말입니다. 유튜브 댓글에도 흔합니다.
저는 이 말이 이상했습니다.
처음부터 안 되는 게 아닙니다. 거의 다 가서 멈춥니다.
시작 부분인 10%에서 포기하면 이해가 갑니다. 어려우니까요. 그런데 90%까지 간 사람이 왜 멈출까요.
흔한 설명
유튜브에서 가르치는 분들은 대개 이렇게 말합니다.
전산 쪽 지식이 있는 사람은 막혔을 때 기존 지식으로 헤쳐나가는데, 없는 사람은 거기서 포기한다고요.
저도 동의합니다.
저는 20년도 더 전에 컴퓨터공학을 전공했습니다. 지금은 코드를 못 읽지만, 그때 들은 게 아주 없어지지는 않았더군요. 데이터가 어딘가 따로 저장된다는 것, 화면과 자료는 다른 것이라는 것 정도의 감각. 그 정도가 도움이 됐습니다.
그런데 이 설명만으로는 아직 답이 안 됩니다. 왜 하필 80~90%인가는 설명하지 못하니까요.
앞이 너무 쉬웠던 겁니다
제 생각은 이렇습니다.
만드는 일은 두 구간으로 나뉩니다.
앞의 80%는 “만들기”입니다. 없던 걸 새로 만드는 일이라 AI가 거의 다 해줍니다. 몇 줄 이야기도 안 했는데 꿍짝꿍짝 하며 거창한 걸 막 만들어주는데, 처음에는 신납니다. 난이도가 사실상 0입니다.
뒤의 20%는 “고치기”입니다. 앞에서 이야기한 걸 만들어는 주는데, 내가 생각한 것과 똑같지도 않고 안 되는 것이 많습니다. 어디가 문제인지 짚어야 하고, 뭘 바꿔야 하는지 정해야 하고, 고치다 망가뜨리면 되돌려야 합니다.
여기서 난이도가 갑자기 치솟습니다.
문제는 앞의 80%를 지나오는 동안 나는 아무것도 배우지 못했다는 것입니다. 너무 쉬웠으니까요. 배울 기회가 없었습니다.
그래서 준비 없이 어려운 구간에 도착합니다. 어려워서 멈추는 게 아니라, 쉬웠기 때문에 멈추는 겁니다.
적당히 어려워야 재밌습니다
사람은 능력에 비해 너무 쉬우면 지루해하고, 너무 어려우면 불안해서 도망갑니다. 약간 어려울 때 제일 몰입한다고 합니다.
전산 쪽 감각이 있는 사람에게는 같은 문제가 “약간 어려운 문제” 혹은 “퀴즈” 같은 겁니다. 그래서 오히려 재밌어합니다. 끙끙대다 풀면 “내가 아직 살아있네” 싶은 기분도 들고요.
감각이 없는 사람에게는 똑같은 문제가 “벽”입니다. 재미가 아니라 불안입니다. 그러면 도망가는 게 정상입니다.
같은 문제인데 한쪽에는 놀이고 한쪽에는 벽입니다. 차이는 문제가 아니라 준비에 있습니다.
그래서 제가 하는 것
거창한 방법은 아닙니다.
잘 될 때 물어봅니다.
안 될 때 물으면 이미 늦습니다. 급하고, 무섭고, 뭘 물어야 할지도 모릅니다. 그런데 잘 돌아가고 있을 때는 여유가 있습니다.
그래서 화면이 잘 떴을 때 한 번씩 이렇게 묻습니다.
“이게 왜 되는 거야? 쉽게 설명해줘. 그리고 좀 전에 네가 이야기한 ○○, 그건 뭐야?”
처음 AI와 대화하며 만들 때, AI가 자꾸 “커밋을 할까요?”라고 묻더군요. 분위기상 왠지 제가 하라고 해야 할 것 같아서 하라고는 했는데, 그게 뭔지는 모르겠더군요.
그래서 물어봤습니다. 그게 무엇인지, 왜 필요한지. 한 번에 이해가 안 되면 예시를 들어 다시 설명해달라고 했습니다.
커밋은 지금까지 개발한 내용을 기록으로 저장한다는 뜻이더군요. 더 물어보니, 개발이 진행되면서 주기적으로 수정 버전을 관리해야 해서 하는 일이었습니다.
그때는 몰랐는데, 나중에 고치다 망가뜨렸을 때 저를 구해준 게 그 커밋이었습니다.
처음 그 순간에는 시간 낭비 같습니다. 잘 되는데 왜 묻나 싶고요. 그런데 이게 뒤의 20% 구간에서 난이도를 낮춰줍니다. 벽이 될 것을 “약간 어려운 문제”로 만들어주는 겁니다.
나머지 둘도 같은 종류입니다.
- 한 번에 하나씩만 시킵니다. 세 개를 한꺼번에 바꾸면 뭐가 문제인지 알 수 없습니다
- 되돌리는 법을 먼저 배웁니다. 고치기의 절반은 되돌리기입니다
물론 늘 뚫리는 건 아닙니다.
한 번은 보안 문제 때문에 통째로 멈춘 적도 있습니다. 그때는 답이 없어서 그냥 접어뒀는데, 얼마 뒤에 다른 길을 알게 돼서 다시 시작했습니다. 그 이야기는 여기에 썼습니다.
막혔다고 꼭 그 자리에서 뚫어야 하는 건 아니더군요. 멈추고 기다리는 것도 방법이었습니다.
그리고 동기(Motivation) 이야기
여기까지가 기술 쪽 이야기인데, 하나가 더 남았습니다.
솔직히 대부분은 “한번 해볼까?” 정도의 마음으로 시작합니다. 그 정도 동기로는 불안 구간을 못 버팁니다. 버틸 이유가 없으니까요.
제가 9주를 버틴 건 실력 때문이 아닙니다. 업무에 필요했기 때문입니다.
당장 내가 쓸 것이었고, 안 되면 예전 방식으로 계속 불편해야 했습니다. 그러니까 막혀도 도망갈 데가 없었던 겁니다.
취미로 배우면 막히는 순간 많은 경우 그만둡니다. 그게 정상입니다. 그래서 저는 뭘 만들지 고를 때 이걸 봅니다.
“이게 없으면 나와 조직이 계속 불편할까?”
불편하지 않으면, 아마 90%에서 멈추게 될 겁니다. 저라도 그럴 겁니다.