#운영 #프로덕트 #기타
바이브코딩이 멋대로 정한 조건, 코드 열기 전에 잡는 법

AI 코딩 도구를 쓰면 화면 하나는 몇 시간이면 나옵니다.
그런데 막상 코드를 뜯어 보면 시킨 적 없는 결정이 들어 있어요.
결제가 실패하면 세 번 재시도한다거나, 당일 취소가 조건 없이 된다거나.

내가 적어 주지 않은 조건은 물어보지도 않고, 그럴듯한 쪽으로 그냥 AI가 마음대로 정해버립니다. 

이 글은 그 조건들을 AI가 정하기 전에 내가 먼저 정해두려고 해 본 작업 기록이에요.

 

AI는 빈칸을 물어보지 않습니다

프롬프트로 화면부터 만들어 보는 방식에는 이유가 있습니다.
눈에 보이는 걸 먼저 만들어야 뭘 원하는지도 빨리 알게 되니까요.

개발자한테 일을 맡기면 조건이 빠졌을 때 되물어봅니다.
그런데 AI는 묻지 않고 일단 만들어요. 제가 만들던 예약 앱에서는 실제로 이런 식이었어요.

결제가 실패하면? → 세 번 재시도하고 안내는 없음

같은 시간을 두 명이 누르면? → 둘 다 등록

당일에 취소하면? → 조건 없이 취소

내가 적어 준 적 없는 부분마다 AI가 답을 하나씩 정해둔 겁니다. 

고치는 것 자체는 어렵지 않아요. 발견만 하면 다시 시키면 되니까요.

문제는 발견하는 쪽입니다. 어떤 조건이 빠졌는지는 코드를 다 읽거나 써 본 사람이 걸려 넘어져야 
드러나는데, 기획서를 안 써 봤다면 애초에 뭘 정해뒀어야 하는지 목록부터 없거든요. 

그 목록을 문서가 대신 들고 있으면 어떻게 되는지, 그 프로젝트 그대로, 이번에 직접 확인해 봤습니다.

 

이번 사례에서 만들어볼 서비스

 

혼자 네일샵이나 공방을 운영하는 사장님을 위한 예약 관리 서비스, '우리동네 예약'을 만들어 볼 겁니다. 

카카오톡, 전화, DM으로 예약이 흩어져 들어와서 겹치는 예약이 생기고, 

예약해 놓고 안 나타나는 손님도 많은 상황이라고 가정해 봅시다.

일단 시작할 때 목표부터 숫자로 적어뒀습니다. 
노쇼율 30% 감소, 이중 예약률 1% 미만, 리마인드 정상 발송률 90% 이상. 
뒤에서 기능을 넣을지 말지 고민될 때마다 돌아올 기준이 됩니다.

 

Step 1. 만들려는 걸 한 문단으로 적어 넣기

 

저희 팀이 만들고 있는 기획 도구 매니패스트에 프로젝트를 만들고, 만들고 싶은 걸 대화하듯 적었습니다.

 

“동네 미용실이나 공방처럼 사장님 혼자 예약을 받는 곳에서 쓸 예약 앱을 만들려고 해. 
지금은 인스타 DM이랑 전화로 받는데 겹치는 일이 잦고, 와야 할 손님이 안 오는 경우도 많아.”

 

이 한 문단에서 PRD가 만들어지고, 이어서 기능명세서가 뽑혔어요. 
예약 접수부터 리마인드 알림까지 상위 요구사항은 6개, 상세 기능은 18개입니다.

여기까지는 다른 AI 도구로도 비슷하게 만들 수 있습니다.
차이는 이렇게 만들어진 기능 목록을 열었을 때 생겨요.

 

Step 2. 조건이 비어 있는 기능부터 찾기

 

기능 목록을 열면 기능 이름 옆에 숫자가 하나씩 붙어 있어요. 
이 기능을 개발에 넘기기 전에 정해둬야 할 항목이 모두 몇 개이고, 
그중 몇 개를 정했는지 세어 둔 숫자입니다.

시킬 내용을 md 파일이나 노션에 적을 때는 이게 안 보입니다. 
내가 적은 것만 남고, 안 정한 조건은 빠졌다는 사실조차 표시되지 않으니까요.

예약 요청 등록은 9개 중 9개가 채워져 있는데, 방지금 요청 안내(노쇼를 막으려고 미리 받는 보증금 안내), 고객 정보 등록과 수정, 운영자 로그인은 0개입니다.

코드를 읽다가 하나씩 발견했을 빈칸이 만들기 전에 목록에서 먼저 보이는 거죠.
기획을 오래 한 사람은 경험으로 이 빈칸들을 짚어낸다는데, 
여기서는 그 경험을 아홉 칸짜리 목록이 대신해 줍니다.

 

Step 3. 매니가 묻는 질문에 답하기

 

아직 0개인 방지금 요청 안내를 열어 봤습니다. 매니가 빈칸마다 질문을 하나씩 걸어뒀더라고요.
그중 하나는 이거예요.

"운영자는 어디에서 방지금 요청 안내 발송을 시작하나요?"

선택지는 예약 상세 화면, 예약 상세와 미납 목록, 예약 상세와 캘린더, 
그리고 직접 입력. AI 추천 답변이 표시돼 있긴 하지만, 누르기 전까지는 아무것도 반영되지 않습니다.

'예약 상세와 미납 목록'을 골랐더니 문서에 이렇게 적혔습니다. 
"운영자는 예약 상세 화면과 미납 예약 목록에서 방지금 요청 안내 발송을 시작한다." 
안내를 누구한테 보낼지 묻는 질문에도 답하고 나니, 0개였던 칸이 9개 중 2개로 찼어요.

코딩 AI라면 이 질문을 하지 않았을 겁니다. 그럴듯한 쪽으로 정하고 만들었겠죠. 
여기서는 정하는 쪽이 나고, 답한 내용은 문서에 문장으로 남습니다. 
남은 일곱 칸에도 같은 방식으로 질문이 걸려 있고요.

 

Step 4. 사용자가 막히는 경로까지 확인하기

 

조건을 채웠다면, 이번엔 손님이 눌러볼 화면 순서를 봅니다. 

유저플로우 '고객 예약 확정'은 손님이 예약 링크를 여는 순간부터 예약 확정 화면까지 한 줄로 이어져 있어요.

그 흐름을 글로 적으면 '결제 실패 시 재안내' 한 줄이 전부가 되기 쉽습니다. 
여기서는 그 한 줄이 그림에서 갈라져요. 원하는 시간이 이미 찼을 때, 그리고 방지금을 안 내고 나갔을 때.

대체 일정 안내 화면과 미결제 안내 화면은 내가 적어 준 적도, 만들 계획에 있던 적도 없는 화면입니다. 

그런데 개발을 시작하기 전에 이 두 화면이 만들 목록에 올라와 있고, 
막혔던 손님이 예약 확정까지 어떻게 돌아오는지도 같은 그림에 그려져 있어요.

 

Step 5. 누가 정한 조건인지 기록으로 남습니다

 

여기까지 오는 동안 문서를 고친 게 저만은 아니었습니다. 
매니가 초안을 썼고, 저는 질문에 답했고, 개발을 봐주기로 한 지인도 들어와서 문장을 손봤거든요.

프로젝트 오른쪽의 작업 로그를 열면 그 기록이 한 줄씩 남아 있습니다. 
누가 어떤 기능을 언제 고쳤는지가 시간순으로 적히고, 매니가 한 일에는 AI 배지가 따로 붙어요.

코드를 고치다가 "이 조건, 내가 정한 거였나 AI가 정한 거였나" 하고 멈춘 적이 있다면, 
여기서는 그 답이 로그에 있습니다. AI가 고친 문장과 내가 고친 문장이 구분되어 남아요.

옆의 버전 기록에는 문서가 바뀔 때마다 버전이 자동으로 저장됩니다. 
지금 프로젝트는 아홉 번째까지 쌓여 있어서, AI 제안을 받아들였다가 
마음이 바뀌어도 그 전 문서가 남아 있어요.

기능마다 코멘트도 달립니다. 개발을 봐주는 지인이 고객 프로필 조회 기능에 
"고객 프로필 조회 부분은 고객 연락처로 일단 1차적으로 확인하는 걸로 합시다."라고 남겼고, 
저는 그 밑에 답을 달았어요.

결정이 그 기능 옆에 붙어 있어서, 나중에 이 기능을 다시 열면 그때 오간 얘기까지 같이 보입니다. 
메신저를 거슬러 올라가며 찾을 일이 없어지는 거죠.

혼자 만들 때 제일 아쉬운 게 리뷰죠. 문서 전체 검토를 돌리면 
개발, 사업, UX, 디자인, QA, 보안 여섯 관점에서 의견이 옵니다.

지금 프로젝트에는 주의 10건, 제안 1건이 나타나 있습니다. 
개발 관점은 이중 예약을 동시에 저장하는 걸 막을 기준이 아직 없다고 짚었는데, 
앞에서 본 "같은 시간을 두 명이 누르면?" 바로 그 조건입니다.

의견을 읽고 나서 고를 수 있는 처리는 세 가지입니다. 
나중에 다시 보려면 보류, 정리가 끝났으면 해결. 
그리고 어떻게 고칠지부터 정해야 하는 의견에는 채팅에서 해결하기가 있어요.

개인정보 보관 기준은 저 혼자 바로 답을 정하기 어려운 문제였습니다.
여기서 채팅에서 해결하기를 누르면, 이 의견을 주제로 매니와의 채팅이 바로 이어져요. 
지적을 읽는 화면과 고치는 논의가 한자리에 있는 거예요.

 

그래서 다시 시킬 때 뭐가 달라지나요?

 

프롬프트 문장을 다듬는 것보다 조건을 먼저 채우는 쪽이 결과 차이가 큽니다.
조건이 채워진 기능 문서는 그대로 AI에게 넘길 입력물이 되니까요.

 

정리하며

 

처음 장면으로 돌아가 볼게요.
코드를 열었더니 시킨 적 없는 결정이 들어 있던 것. 
결제가 실패하면 세 번 재시도한다던 그 조건들이요. 
이번에 해 보니 그 결정들이 코드가 아니라 문서에서 먼저 나타났습니다.

돌아보면 매니는 세 번 끼어들었어요. 
기능마다 개발 전에 정할 항목 아홉 개를 세어서 빈칸을 숫자로 보여줬고, 
빈칸마다 질문을 걸어 뒀고, 흐름이 갈라지는 예외 화면은 그림에 미리 올려 뒀죠. 
그 사이 누가 뭘 고쳤는지는 작업 로그에 남았고요.

셋 다 조건이 정해지는 자리를 코드 앞으로 당겨 오는 장치예요. 
빠르게 만드는 방식은 그대로 두셔도 됩니다. 
거기에 질문 몇 개에 답하는 단계만 하나 끼워 넣는 겁니다.

조건을 정하는 쪽을 AI에서 나로 바꿔 보세요.
다음에 코드를 열 때는, 그 안의 결정들이 전부 낯익은 것들일 거예요.

 

오늘 해볼 수 있는 것

 

1. 지금 만들고 있는 기능을 목록으로 적어 보세요.

2. 기능마다 AI가 멋대로 정했을 조건(실패하면, 동시에 누르면, 취소하면)을 표시해 보세요.

3. 사용자가 막힐 예외 경로를 두 개만 찾아보세요.

4. 그 상태로 AI에게 넘겨 보세요. 고칠 게 눈에 띄게 줄어 있을 거예요.
 

이 글은 매니패스트 팀이 자사 도구로 직접 작업한 과정을 담았습니다.
본문 화면은 모두 실제 작업 화면입니다. 원문은 매니패스트 사례집에서 보실 수 있습니다.

링크 복사

댓글 0
댓글이 없습니다.
추천 아티클
0