할 일 1 / 3
수량·금액에 0·음수·너무 큰 값 막기
마이너스 결제 같은 사고가 실제로 나요.
출시 전 점검에서 이 항목이 걸렸어. 고쳐 줘. [4.2] 수량·금액 경계 — 0 · 음수 · 소수 · 상한 · 합계 오버플로 지금 상태: ✕ 금액 검증 없음 (app/api/checkout/confirm/route.ts:4 amount 를 req.json()에서 받아 토스로 그대로 전달 · 0/음수/상한 검사 없음) · ✕ 서버 금액 재계산 없음 (app/pay/success/page.tsx:11 클라이언트가 보낸 amount 를 그대로 confirm API 로 전달 · classes 테이블 price 와 대조 안 함) · ✕ DB 제약 없음 (supabase/migrations/001_init.sql:4·15 price·amount 필드가 int not null 만, CHECK 제약 없음 — 음수 허용) · ○ 소수 가드 (001_init.sql:4·15 int 타입) 관련 위치: app/api/checkout/confirm/route.ts:4, app/pay/success/page.tsx:11, supabase/migrations/001_init.sql:4 할 일: API 에서 classes.price 조회해 금액 대조 + 0/음수 거부 + DB CHECK 제약 추가 지켜 줄 것: - 먼저 관련 파일을 읽고 무엇을 바꿀지 짧게 계획부터 보여 줘. - 이 항목과 관계없는 파일은 바꾸지 마. 비밀 값(키·토큰)은 코드에 넣지 말고 환경변수로. - 끝나면 바꾼 파일 목록과 이유, 그리고 고쳐졌는지 내가 확인하는 방법을 한 줄로 알려 줘.