~/VibeHandbook
$39

챕터 03 · 02

입력, 출력, 엣지 케이스를 명시하라

작업은 그 경계가 정의되기 전까지 정의된 것이 아니다. 시니어 엔지니어는 "무엇이 들어가고, 무엇이 나오고, 일이 잘못되면 무슨 일이 일어나는가"의 관점에서 생각한다. 그것을 프롬프트에 녹여라.

Write a function to parse a date string.
Write a function parseDate(input: string): Date | null.

Inputs: ISO 8601 strings ("2026-06-14", "2026-06-14T10:30:00Z").
Output: a Date object, or null if the string is invalid.

Edge cases to handle:
- empty string or whitespace -> null
- valid format but impossible date (2026-02-30) -> null
- trailing garbage ("2026-06-14xyz") -> null

Do not throw. Return null for all invalid input.

엣지 케이스를 명명하면, AI는 그것들을 처리한다. 명명하지 않으면, AI는 정상 경로를 작성하고 당신은 프로덕션에서 그 구멍을 발견한다. 같은 규율이 순수 함수 너머에도 적용된다: 엔드포인트라면, 성공 응답 과 함께 에러 응답도 명시하라(중복 이메일에는 어떤 상태 코드? 잘못된 본문에는?). UI 컴포넌트라면, 채워진 상태뿐 아니라 빈 상태와 로딩 상태도 명시하라. 대부분의 소프트웨어에서 흥미로운 동작은 그 가장자리에 산다. 그러니 거기에 당신의 프롬프트가 단어를 써야 한다.

엣지 케이스가 무엇인지 확신이 없다면, AI에게 먼저 물어라: "날짜 파서가 처리해야 할 엣지 케이스는 무엇인가?" — 그런 다음 그 답을 제약으로 되먹여라. 이것은 모델을 코드 생성기에서 체크리스트 생성기로 바꾼다. 그리고 체크리스트를 검토하는 것이 당신이 잊은 케이스를 디버깅하는 것보다 빠르다.

오프라인으로 보고 싶으세요?

PDF + EPUB + 다운로드형 프롬프트 라이브러리 + 버전 업데이트를 받으세요.

$ PDF 받기 — $39