요즘 IT 개발자들은 자주 사용하는 용어가 있습니다. 바로 ‘바이브코딩(Vibe Coding)’입니다. 느낌을 살려서 개발을 한다는 의미 같기도 하지만, 소프트웨어 개발을 기본의 일반적인 방식으로 하지 않는다는 것이다.
기본적으로 코딩은 아주 깔끔하고, 꼼꼼한 작업입니다. 아주 큰 그림의 설계, 아키텍처, 인프라부터 아주 작은 오타와 콤마 실수하나까지, 모든 수준과 단계가 완전해야 아무 이상 없이 돌아가는 시스템입니다. 소프트웨어가 돌아가는 컴퓨터는 사람처럼 “알아서 적당히”하지 못했기 때문입니다.
그래서 개발자는 컴퓨터에게 이렇게 된 구체적이고, 단계별로 정리된 개발을 해야 합니다.
“숫자를 입력받을 수 있는 입력 상자를 이용해서, 사용자의 나이를 입력받고, 사용자의 나이가 16세 보다 작으면, 화면 가운데 붉은색 글씨로 부모님의 동의가 추가로 필요하다는 텍스트를 표시해.”
한 줄이라도 빠지면 프로그램은 멈추거나, 엉뚱한 행동을 합니다. 그래서 코딩은 정확함의 싸움이었고, 아주 많은 규칙을 외워야 합니다.
이런 방식의 코딩은 로봇에게 아주 자세한 설명서를 써주는 일과 비슷합니다. 조금만 틀려도, 조금만 환경이 달라도 로봇은 움직이지 않습니다. 그래서 많은 사람에게 코딩은 어려운 작업이라는 인식이 있습니다.
하지만 요즘은 상황이 조금 달라졌습니다. 그 이유는 바로 AI가 엄청나게 똑똑해졌기 때문입니다.
이제 AI의 성능과 기능이 좋아지면서, 개발의 모습이 바뀝니다. 이제는 개발자처럼 하나하나 명령을 작성하지 않아도 됩니다.
“사용자 나이가 16세 보다 작으면, 부모님의 동의가 필요하다고 표시해.”
이제는 이 정도면 충분합니다.
AI는 숫자를 입력받는 입력 상자를 만들고, 사용자의 나이를 분기 처리하는 로직을 개발하고, 조건에 맞으면 부모님의 동의가 필요하다는 텍스트를 표시하는 프로그램을 개발합니다.
“학생들이 로그인하면, 해야 할 자기 숙제를 볼 수 있는 화면을 만들어 줘.”
“사용자가 나이, 성별, 근무지를 입력하고 저장하는 기능을 만들어 줘. 나이와 성별은 필수야.”
이 정도면 충분합니다. AI는 이 말을 이해하고, 프로그램 코드를 작성합니다.
이렇게 정확한 명령, 명확한 프로그램 개발 언어 대신, 사용자의 의도와 기능을 설명하는 방식으로 프로그램을 개발하는 것을 ‘바이브코딩’이라고 부르기 시작했습니다.
바이브(Vibe) 단어의 ‘느낌’처럼, 정확한 명령과 명확한 프로그램 개발 언어가 아니라, 자연어로 충분히 느낌만 전달하면, AI가 알아서 프로그램 개발합니다.
하지만 여기서 아주 중요한 오해가 하나 생깁니다.
사실은 생각을 더 많이 해야 합니다.
바이브코딩을 처음 접하면 이런 생각이 들기도 합니다.
“와, 이제 코딩 공부 안 해도 되겠다.”
“AI가 다 해주니까 그냥 시키면 되는 거 아니야?”
"10일 걸릴 일이 하루에 끝나면, 나머지 9일은 쉬거나, 여가를 즐길 수 있겠다."
하지만 이건 반만 맞고, 반은 틀린 이야기입니다. 왜냐하면 AI에게 잘 말하려면, 내가 무엇을 만들고 싶은지 잘 알고 있어야 하고, 또 이것을 잘 설명하는 것이 아주 중요하기 때문입니다.
AI에게 “좋은 앱 만들어 줘", "사용자들이 좋아할 서비스를 개발해", "돈을 많이 벌 수 있는 SaaS 서비스를 만들어"라고 말한다고 해서, 결과물이 나오지 않습니다.
그래서 바이브코딩은 생각을 안 하는 코딩이 아니라, 오히려 더 많이 생각하고, 그 생각을 말로 잘 풀어내는 코딩입니다.
멋진 만년필이 생겼다고, 모두 예쁜 글씨를 쓰는 것은 아니죠. 멋진 주방에 생겼다고, 모두 맛있는 요리를 하는 것은 아닙니다. 연필이 생겼다고 해서 모든 사람이 갑자기 작가가 되지는 않습니다. 연필은 도와주는 도구일 뿐입니다.
바이브코딩도 마찬가지입니다. AI는 코딩을 도와주는 아주 똑똑한 연필입니다. 하지만 무엇을 쓰고 싶은지는 여전히 사람이 정해야 합니다.
바이브코딩을 잘하고 싶으면, 문제를 잘 이해하고, 그 문제에 대해서 설명을 잘하는 사람입니다.
‘능력 착각’을 조심해야 합니다. AI 덕분에 빠르게 결과물이 나오면, 사람은 코딩을 엄청 잘하게 된 것 같은 착각에 빠지기 쉽습니다. 하지만 사실은 AI를 사용할 수 있게 된 것이죠.
AI가 없을 때는 아무것도 못한다면, 그건 분명 내 실력이 아닙니다.
예전에는 코딩 문법을 공부해야 아이디어를 구체화하고, 시험해 볼 수 있었습니다. 하지만 이제는 아이디어와 생각이 있으면, 어렵지 않게 만들어 볼 수 있는 시대가 되었습니다.
바이브코딩의 가장 중요한 변화는 코딩의 중심이 “어떤 문법을 쓰느냐”에서 “무엇을 만들고 싶으냐”로 옮겨왔다는 점입니다. 이제 코딩은 순수하게 사람의 실력으로 생각하고, 타이핑하는 일이 아니라, 생각을 구조화하는 일이 되었습니다.
바이브코딩은 “대충 하는 코딩”도 아니고, “AI가 다 해주는 마술”도 아닙니다.
바이브코딩은 생각을 말로 바꾸고, 그 말을 코드로 바꿔주는 새로운 방식입니다.
그래서 바이브코딩 시대에 가장 중요한 능력은 생각하는 힘, 설명하는 힘, 그리고 방향을 잡는 힘입니다.
참고.
1) Andrej Karpathy. https://en.wikipedia.org/wiki/Andrej_Karpathy
2) Vibe coding. https://en.wikipedia.org/wiki/Vibe_coding
3) 바이브 코딩이란 무엇인가? https://www.ibm.com/kr-ko/think/topics/vibe-coding
4) If You’re Going to Vibe Code, Why Not Do It in C? https://stephenramsay.net/posts/vibe-coding.html
5) The creator of Clawd: "I ship code I don't read". https://newsletter.pragmaticengineer.com/p/the-creator-of-clawd-i-ship-code