1.2K
'클릭 한 번'이면 머릿속으로 상상만 하던 웹사이트, 앱, 프로그램까지 만들 수 있을 거라는
기대에 부풀었지만 시작하자마자 뜨는 화면에 멈칫한 적 있나요?
엔터만 누르면 알아서 잘하다가 갑자기 나한테 이건 직접 해오라고 뭘 시켜서 당황한 적이 있나요?
바이브 코딩을 처음 시작한 뒤 마주치는 당황스러운 '그것들' 4가지를 낱낱이 해부해보겠습니다.
이 4가지의 공통점은 하나입니다. 이걸 모르면 AI에게 잘못된 질문을 던지게 된다는 점이죠.

바이브 코딩을 시작할 때 가장 먼저 맞닥뜨리는 큰 장애물은 바로 밑도 끝도 없는 까만 화면입니다. 마우스로 클릭할 버튼도 없고, 보기 좋은 그래픽도 없습니다. 커서가 깜빡이며 입력을 기다리고 있을 뿐이죠.
초면인데 먼저 말부터 걸기를 기다리는, 이 적잖이 당황스러운 까만 화면을 윈도우에서는 '명령 프롬프트', 맥에서는 '터미널'이라고 부릅니다. 보통 개발 환경에서 터미널이라는 칭하는 건 까만 화면을 말합니다. 터미널은 컴퓨터와 텍스트로만 소통하는 창입니다. 우리가 지금 당연하게 쓰는 마우스, 아이콘, 창 같은 것들이 생기기 전에 컴퓨터는 오직 이 방식으로만 작동했습니다. 명령어를 입력하면 컴퓨터가 실행하고, 결과를 텍스트로 돌려 주는 것이 전부였습니다. 화려한 인터페이스가 없던 시절, 개발자들은 터미널 하나로 파일을 만들고, 프로그램을 실행하고, 서버를 관리했습니다.

작은 입력 창 하나가 이렇게 다양한 일을 할 수 있는 이유는, 터미널이 운영체제에 직접 말을 거는 창구이기 때문입니다. 운영체제란, 쉽게 말하면 컴퓨터라는 건물의 관리인입니다. 크롬, 카카오톡, 지뢰찾기 같은 프로그램들이 CPU, 메모리, 저장 공간을 쓰려면 반드시 이 관리인을 통해야 합니다.
즉, 우리가 마우스 오른쪽을 클릭해 폴더를 만들고 파일을 만드는 방식은 관리실 앞 키오스크를 거치는 것이고, 터미널에 명령어를 입력하는 방식은 관리실 문을 직접 두드리는 것입니다. 관리실 문을 두드렸을 때 장점은 키오스크에는 없는 메뉴도 처리할 수 있기 때문입니다. 수십 년이 지난 지금도 개발자들이 터미널을 쓰는 이유가 바로 이 때문이죠.

클로드 코드, 코덱스 등 많은 개발형 AI가 이 터미널을 쓰는 이유 역시 마찬가지입니다. 이들이 주로 하는 일이 파일을 만들고, 코드를 수정하고, 프로그램을 실행하는 것이기 때문입니다. 이런 작업은 텍스트 명령이 가장 빠르고 정확합니다. 마우스로 폴더를 하나하나 클릭해 찾아 들어가는 것보다 “이 폴더 안에 파일 100개 만들어”라고 한 줄 입력하는 게 훨씬 효율적이죠.
게다가 AI가 텍스트를 다루는 데 특화되어 있다는 점도 한몫합니다. AI는 화면의 버튼을 클릭하는 것보다 텍스트 명령을 주고받는 방식이 훨씬 자연스럽습니다. 결국 AI가 코드를 만들고 바로 실행까지 하려면, 터미널이 가장 자연스러운 환경인 것입니다.
여러분이 AI로 무언가를 만들어보겠다 결심했을 때 가장 먼저 만들었던 서비스를 떠올려 봅시다. 할 일 관리 앱, 칼로리 기록 앱, 게시판, 쇼핑몰 등 간단한 기록 앱부터 커뮤니티 기능이 딸린 거대한 웹사이트까지 무척 다양했을 것입니다. 처음에는 냅다 “할 일 관리 앱 만들어 줘”라고만 말해도 이 친구는 귀신 같이 알아듣고 어떤 기능이 필요한지 구현해야 할 기능을 나열하죠.
그러다 문득 이상한 일이 벌어집니다. 분명 처음에 ‘20-30대를 위한 다이어트 앱을 만들자’고 약속해놓고 시니어도 잘 볼 수 있도록 글씨 크기를 잔뜩 키우겠다고 합니다. 아까 정한 대로 해달라고 요청해도 무슨 말인지 모르겠다는 듯 되묻습니다. “작업을 이어서 진행할까요?” 어디서부터 뭐가 잘못된 걸까요? AI에 대한 기대치가 너무 높았던 탓일까요? 왜 기억을 잃어버린 것처럼 구는 걸까요?

맞습니다. AI는 기억을 잃은 것입니다. 정확히 말하면 대화 내용을 담아 두는 공간이 가득 차서 이전 내용을 비워버린 거죠. 원인은 AI의 구조에 있습니다. AI는 글을 읽고 쓸 때 토큰(Token)이라는 단위를 소비합니다. 사용자가 입력한 말, AI가 출력한 답, 이전 대화 기록까지 전부 토큰으로 변환됩니다. 그리고 한 번의 대화에서 처리할 수 있는 토큰의 총량은 정해져 있습니다. 이 총량을 컨텍스트 윈도라고 합니다.

바이브 코딩의 특성상 하나의 대화가 길어지기 쉽습니다. 기능을 요청하고, 결과를 보고, 수정하고, 다시 확인하고, 에러가 나면 고쳐달라고 하고. 이 모든 과정이 한 대화에서 일어납니다. 그 모든 요청과 응답이 토큰으로 쌓입니다. 컨텍스트 윈도가 가득 차면 AI는 오래된 내용부터 조용히 밀어내거나 핵심 내용만 남겨 두고 새 대화를 시작합니다.
이 과정을 반복하다 보면 초반에 정한 기술 선택, 파일 구조, 변수 이름 같은 맥락이 하나씩 사라지기 시작하죠. 아까 그 다이어트 앱이 갑자기 시니어용으로 변하는 이유가 바로 이것입니다. AI는 약속을 어긴 게 아니라 약속 자체를 잊어버린 겁니다.

어제 "게시판 만들어 줘"라고 했더니 기가 막히게 깔끔하고 트렌디한 사이트를 만들었던 AI가, 오늘 똑같이 "게시판 만들어 줘"를 입력했더니 인터넷이라는 게 처음 생겼을 때나 있었을 법한 사이트를 뱉어냈습니다. 오늘 기분 안 좋은 일이라도 있었던 걸까요?
같은 프롬프트를 입력해도 결과가 다른 이유는 AI가 여러분의 요청을 '해석'하는 방식에 있습니다. 우리가 AI에게 전달하는 요청, 즉 텍스트든 이미지든 모든 입력을 프롬프트라고 합니다. 프롬프트는 단순한 명령이 아닙니다. AI가 무엇을 어떻게 만들지 판단하는 유일한 근거입니다.
문제는 같은 단어라도 해석의 여지가 있다는 점입니다. "게시판"이라는 단어 하나에도 글 목록, 댓글, 좋아요, 카테고리 분류, 검색 기능 등 수십 가지 선택지가 숨어 있습니다. 여러분이 그중 무엇을 원하는지 명시하지 않으면, AI가 스스로 고르게 되고, 그 결과는 매번 달라집니다.
AI는 확률적으로 다음 단어를 예측하는 구조이기 때문에, 같은 입력이라도 매번 동일한 출력이 나온다는 보장이 없습니다. 주사위를 던지는 것과 비슷합니다. 어떤 면이 나올지 확률적으로 정해져 있지만, 매번 같은 면이 나오지는 않죠.
해결책은 생각보다 단순합니다. AI가 해석할 여지를 줄여 주는 것입니다. "게시판 만들어 줘"보다 "글 목록, 작성, 수정, 삭제가 가능한 게시판 만들어 줘. 카드형 레이아웃으로, 한 페이지에 10개씩 보여 줘"가 원하는 결과에 가까운 답을 받을 확률이 훨씬 높습니다. 사용할 도구나 라이브러리 이름을 콕 집어 알려 주는 것도 좋은 방법입니다. AI가 빈칸을 채우는 능력이 뛰어난 만큼, 빈칸을 적게 줄수록 결과가 안정됩니다. 이것이 프롬프트 민감성을 다스리는 첫걸음입니다.

새로운 웹 또는 앱 서비스에 회원 가입을 하려면 이름, 성별, 전화번호, 주소 등 개인 정보를 입력하는 과정이 반드시 필요합니다. 하지만 최근 이런 정보를 일일이 입력하지 않고, "SNS으로 3초만에 가입"을 눌러서 동의만 하진 않았나요?
동의 버튼을 누르기 전에 어떤 항목에 동의하는지 읽어 본 적이 있다면 여러분은 API의 흐름을 이미 이해한 것입니다. 읽어 본 적이 없어도 사실 우리는 이미 알고 있습니다. 이 "동의" 버튼을 누르면 SNS에 입력한 내 개인 정보가 새로운 서비스로 흘러간다는 것을요.
예를 들어, 카카오톡 계정으로 A라는 서비스에 로그인하는 과정을 생각해 봅시다. 사용자가 A 서비스에서 로그인 버튼을 누르면 사용자를 카카오 로그인 페이지로 안내합니다. 사용자가 카카오에 로그인을 한 다음 "동의"를 누르면, 카카오가 A 서비스에 이 사용자가 허락했으니 정보를 가져가도 된다는 증표를 보내 줍니다. A 서비스의 백엔드는 그 증표를 들고 카카오 서버에 다시 사용자의 이름, 이메일 등을 요청합니다. 카카오 서버가 증표를 확인하고 사용자의 정보를 내려 줍니다.

쉽게 말하면 API는 식당의 메뉴판이자 주문 규칙입니다. 어떤 메뉴가 있는지, 어떻게 주문해야 하는지가 정해져 있습니다. 고객은 그 규칙대로 주문해야 하고, 주방은 그 규칙대로 음식을 내옵니다.

바이브 코딩으로 매일 뉴스를 브리핑해주는 자동화 시스템을 만들어 봤거나, 날씨 데이터 또는 지하철 도착 정보를 불러온다거나, 결제 시스템 등을 만든 적이 있다면 그때마다 AI는 해당 서비스의 API를 사용해왔을 것입니다. 나도 모르는 사이에 API를 수백 번은 쓴 셈이죠.
API라는 단어를 한 번 익혀 두면 바이브 코딩 중 마주치는 메시지들이 갑자기 해석되기 시작합니다. "API 키를 발급받아 오세요", "API 요청 한도를 초과했습니다", "직접 구글에 가서 등록해 오세요" 같은, 그동안 멘탈을 흔들던 안내문이 더 이상 무섭지 않게 되거든요.
이 4가지의 공통점은 하나입니다. AI가 어떻게 작동하는지, 어떤 환경에서 일하는지를 모르면 잘못된 질문을 던지게 된다는 것이죠. AI는 만능 해결사가 아니라 도구입니다. 도구는 잘 쥐는 사람이 잘 쓰는 법이고, 잘 쥐려면 구조를 알아야 합니다.
까만 화면 앞에서 멈칫하던 순간, 약속을 잊어버린 AI 앞에서 한숨 쉬던 순간이 모두 '내가 부족해서'가 아니라 '구조를 몰랐기 때문'이라는 걸 알게 되면, 다음번 막힘은 훨씬 짧아질 거예요.
본 글은 도서 『바이브 코더를 위한 최소한의 AI/IT 지식』에서 일부 발췌·재구성했습니다.

댓글