네 가지 질문과 건넬 말
이 책에 나온 말을 장별로 모았습니다. 걸린 시간이 붙은 네 문장은 11월 6일 밤 바이브 코딩 기본 모델에 실제로 보낸 그대로이고, 네 번에 약 180크레딧을 썼습니다. 고급 모델 판에서 보낸 말은 그렇다고 적었습니다. 나머지는 저희가 보내 보지 않고, 확인할 것을 묻거나 고칠 것을 시키려고 정리한 말입니다. 그대로 복사해 써도 되고, 내 서비스에 맞게 고쳐 써도 됩니다.
1. 이 책에서 건넨 말
2장 말 한 줄로 만든 신청 페이지
처음 만들 때(23초).
토요일 스터디 모임 참가 신청 페이지를 만들어 줘. 닉네임과 한마디를 적고 [신청하기]를 누르면 아래 신청자 명단에 바로 보이게 해 줘. 정원은 10명이고 남은 자리를 보여 줘.
답에 시트 주소가 없어 명단이 함께 보이지 않을 때.
다른 사람이 자기 휴대폰에서 열어도 같은 명단이 보이게 해 줘.
3장 내 서버를 둔다
본 증상을 말하고 내 서버로 옮길 때(29초).
친구 둘이 동시에 마지막 자리를 눌렀더니 정원 10명인데 11명이 됐어. 그리고 이 명단은 매일 새벽 4시에 지워진대. 신청을 내 서버로 옮겨 줘. 정원은 서버가 지키게 하고, 명단은 지워지지 않게 해 줘.
코드를 못 읽어도 확인할 시험 화면을 만들 때(26초).
내가 코드를 못 읽어도 확인할 수 있게 /test 화면을 만들어 줘. [30명 동시에 신청하기] 단추를 누르면 30개의 신청을 한꺼번에 보내고, 받아 준 수와 거절된 수, 지금 명단 수를 보여 줘.
시험해 보니 규칙이 깨졌을 때. 고급 모델 판에서 30명이 모두 들어간 뒤 보낸 말입니다.
30명이 동시에 [신청하기]를 누르는 시험을 했더니 정원 10명인데 30명이 모두 들어갔어. 동시에 눌러도 10명까지만 받고 나머지는 '정원이 찼어요'를 받게 고쳐 줘.
명령을 실행하는 도구에서 AI가 직접 시험하게 할 때(3장 3절).
이 신청 서버에서 정원 10명이 지켜지는지 시험을 만들어 돌려 줘. 30명이 동시에 신청하는 경우를 꼭 넣어 줘. 고치지는 말고, 시험한 것, 통과, 실패, 시험 못 한 것 네 칸으로 보고해 줘.
4장 데이터는 어디에 남는가
저장하는 곳을 물을 때.
이 앱은 무엇을 어디에 저장해? 파일 이름과 표 이름, 표마다 칸을 적어 줘. 서버를 껐다 켜면 남는 것과 사라지는 것도 나눠서 알려 줘.
다른 도구로 만든 앱을 올리기 전.
이 앱을 위니버시티 배포에 서버가 있는 앱으로 올릴 거야. 다시 배포해도 남는 폴더는 /data 하나야. 이 앱이 파일이나 데이터베이스를 저장하는 곳을 모두 찾아서 적어 주고, /data 밖에 저장하는 곳이 있으면 /data 안으로 옮겨 줘.
배포한 앱에 칸을 더할 때.
신청할 때 참석 방법(현장/온라인)을 고르게 해 줘. 이미 배포한 앱의 /data/app.db에는 신청이 쌓여 있어. 표 모양이 바뀌면 기존 명단이 어떻게 되는지 먼저 알려 주고, 기존 명단이 그대로 남은 채로 새 칸이 생기게 만들어 줘. 기존 신청의 참석 방법은 '미정'으로 해 줘.
5장 누가 무엇을 할 수 있는가
지우는 사람을 정할 때(49초).
주최자인 나만 장난 신청을 지우고 신청을 마감할 수 있게 해 줘. 주최자 확인에 쓰는 값은 코드에 적지 말고 배포할 때 환경변수 ADMIN_KEY로 넣을게. 주최자 화면은 /admin 주소로 따로 만들어 줘.
화면을 거치지 않은 요청이 막히는지 시험할 때.
/test 화면에 [키 없이 지우기 보내기] 단추를 더해 줘. 누르면 관리자 키 없이 첫 번째 신청을 지우는 요청을 보내고, 서버가 돌려준 숫자와 문구, 그 뒤의 명단 수를 보여 줘.
비밀값이 비었을 때를 물을 때.
환경변수가 하나도 없을 때 이 앱은 어떻게 동작해? 비밀값이 비어 있으면 미리 정해 둔 값으로 열리는 기능이 있는지 찾아서 알려 줘.
받는 정보를 점검할 때.
이 서비스가 사용자에게 받는 정보와 서버가 스스로 남기는 정보를 모두 표로 적어 줘. 칸마다 누가 볼 수 있는지, 이 서비스에 꼭 필요한지 적고, 빼도 되는 칸이 있으면 알려 줘.
6장 세상에 내놓기
배포하기 전에 /test를 뺄 때.
/test 화면을 빼 줘. 신청 화면과 주최자 화면은 그대로 두고, 다시 시험할 때는 다시 만들어 달라고 할게.
다시 배포하기 전.
이걸 올리면 지금 쌓여 있는 신청 명단 중에 사라지는 게 있어? 있으면 고치기 전에 먼저 알려 줘.
2. 어떤 서비스에도 던질 네 가지 질문
토요일 스터디 신청이 아닌 다른 것을 만들어도 묻는 것은 같습니다. AI가 만든 서비스를 받으면 이 넷을 묻습니다.
규칙은 어디서 지키나. 정원 10명은 화면에 적어 두었을 때는 부탁이었고, 서버가 지키고 나서야 규칙이 되었습니다.
이 서비스에 있는 규칙(정원, 마감, 글자 수 같은 것)을 모두 적고, 규칙마다 화면에서 막는지 서버에서 막는지 알려 줘. 화면에서만 막는 것이 있으면 서버에서도 막아 줘.
데이터는 어디에 남나.
이 서비스의 데이터는 어디에 저장돼? 서버를 다시 켜거나 다시 배포하면 남는 것과 사라지는 것을 나눠 주고, 백업은 어떻게 받는지 알려 줘.
누가 무엇을 할 수 있나. 실습 API에서는 아무나 지웠고, 내 서버에서는 키가 맞는 주최자만 지웠습니다.
이 서비스에서 할 수 있는 일을 모두 적고, 일마다 누가 할 수 있는지 표로 만들어 줘. 그 확인을 서버가 요청마다 하는지도 적어 줘.
비밀값은 어디에 두나.
이 서비스에 쓰이는 비밀값(키, 토큰, 비밀번호)을 모두 찾아 줘. 코드나 화면 쪽 파일에 적힌 것이 있는지, 환경변수가 비어 있으면 어떻게 동작하는지 알려 줘.
"막았어요"라는 답을 들으면 시험 화면을 만들어 달라고 합니다(3장 3절).
3. 이 책에 나온 말
| 말 | 뜻 | 이 책에서 본 곳 |
|---|---|---|
| 요청과 응답 | 브라우저가 서버에 "이것 해 줘"라고 보내는 것과 서버가 돌려주는 답 | 실습 API 시트의 '최근 요청' |
| GET | "달라" | 명단 보기 GET /api/applicants |
| POST | "받아 줘" | 신청하기 POST /api/applicants |
| DELETE | "지워 줘" | 주최자의 [지우기] |
| PATCH | "일부를 고쳐 줘" | 신청 마감하기 PATCH /api/admin/status |
| 200 | 됐어요 | 명단 받기, 실습 API에서 남의 신청을 지운 요청 |
| 201 | 받아서 새로 만들었어요 | 받아 준 신청 |
| 403 | 당신에게는 허락하지 않아요 | 관리자 키가 맞지 않을 때 |
| 409 | 지금 상태와 맞지 않아 못 해요 | "정원이 모두 찼어요.", "신청이 마감되었어요." |
| 503 | 서버 쪽 사정으로 지금은 처리하지 못해요 | 주최자 키를 아직 넣지 않았을 때 "관리자 키가 아직 설정되지 않았어요." (5장 2절) |
| API | 서버가 받는 주소와 방식의 목록. 서버의 메뉴판 | [API 문서] 단추의 /docs 화면 |
| 데이터베이스 | 데이터를 표로 정리해 디스크에 남기는 곳 | /data/app.db(SQLite) |
| 인증 | 요청을 보낸 사람이 누구인지 확인하는 일 | 관리자 키 맞춰 보기 |
| 권한 | 그 사람에게 무엇을 허락할지 정한 것 | 주최자만 지우기·마감 |
| 환경변수 | 코드 밖, 서버에만 적어 두는 메모 | ADMIN_KEY |
| 배포 | 내 컴퓨터나 미리보기 안의 앱을 누구나 들어올 수 있는 주소에 올리는 일 | https://(이름).wenivops.co.kr |
마지막 수정