제품 블로그
출시 전 점검 · 2026년 6월 26일 · 7분
바이브코딩, 배포 전 보안 체크리스트 12개 (순서대로)
AI로 만든 앱을 배포하기 전에 순서대로 확인할 12가지. 각 항목에 가장 빠른 확인법을 한 줄로 붙였습니다.
체크리스트배포 전바이브코딩보안 경계
요약
- 배포 직전에 봐야 할 확인 순서입니다. 터지면 크게 터지는 것부터 봅니다.
- 12개를 손으로 직접 점검할 수 있습니다. 각 항목에 가장 빠른 확인법을 한 줄로 붙였습니다.
- Preflight는 같은 점검을 스택에 맞춰 자동으로 돌리고 우선순위로 정리합니다.
AI로 앱을 빠르게 만들면 기능은 금방 붙지만, 배포 직전 “보안은 뭘 먼저 봐야 하지”에서 막힙니다. 이 글에서는 그 우선순위를 제안합니다.
위에서부터, 터지면 가장 크게 터지는 것부터 내려갑니다. 각 항목에는 가장 빠르게 확인하는 법을 한 줄로 붙였습니다.
지금 당장 — 새면 즉시 악용되는 것
- .env가 git 히스토리에 올라간 적 있는가.
git log --all --full-history -- .env*에 결과가 있으면, 지금 .gitignore에 넣었어도 과거 커밋에 평문 키가 남아 있습니다. 노출된 키를 회전하고 history를 정리하세요. - 시크릿 키가 클라이언트 번들에 새는가.
pnpm build후 빌드 결과물에서 키 앞자리를 grep해 봅니다.NEXT_PUBLIC_가 안 붙은 변수를 클라이언트 컴포넌트에서 import하면 번들에 섞여 나갑니다. - 내 데이터만 보이는가를 익명 세션으로 직접 확인. 로그아웃 상태나 anon key로 남의 데이터 목록을 조회해 봅니다. Supabase의 RLS, Firebase의 Rules는 켜는 것과 검증하는 것이 다릅니다.
- 인증 게이트가 서버에서 막는가, 화면에서만 막는가. 보호된 API를 로그인 없이 직접 호출(curl)해 봅니다. 클라이언트 라우팅만으로 가린 페이지는 막힌 것이 아닙니다.
출시 전 — 사용자가 생기기 전 닫는 것
- 남의 id로 남의 자원에 접근되는가. 요청의 리소스 id를 남의 것으로 바꿔 호출해 봅니다. 소유권 검사가 모든 변경 작업에 있어야 합니다.
- 결제·웹훅의 서명 검증과 금액 신뢰 경계. 웹훅이 서명을 검증하는지, 결제 금액을 클라이언트가 보낸 값이 아니라 서버 권위로 다시 확인하는지 봅니다.
- 파일 업로드의 종류·크기·SVG. 이미지가 아닌 파일, 거대한 파일, 스크립트가 든 SVG를 올려 봅니다. MIME 화이트리스트와 크기 상한, SVG 정제가 필요합니다.
- AI 호출에 비용·권한 경계가 있는가. 로그인하지 않은 사용자가 LLM 엔드포인트를 무한히 부를 수 있는지 봅니다. rate limit을 두고, 키는 서버에서만 씁니다.
- 세션·토큰의 만료·회전·저장 위치. 토큰을
localStorage에 두지 않았는지, refresh 회전이 켜져 있는지 확인합니다. - 공개 엔드포인트와 CORS 범위. 의도치 않게 열린 API나 와일드카드 CORS가 없는지 봅니다.
- 에러·로그에 민감정보가 찍히는가. 프로덕션 에러 화면이나 로그에 스택트레이스나 개인정보가 노출되는지 확인합니다.
나중에 — 지금 막지 않아도 적어둘 것
- 사고가 났을 때 추적할 감사 로그가 있는가. 로그인·삭제·결제 같은 민감 작업이 어디에 기록되는지 봅니다. 없으면 사후 분석이 사실상 불가능합니다.
왜 더 찾기보다 순서인가
보안 이슈는 더 많이 찾는 것보다 먼저 고칠 것을 정하는 게 어렵습니다. 위 12개를 손으로 훑었다면 이미 상위권입니다.
스택에 맞춰 같은 점검을 자동으로 돌리고 “지금 당장 / 출시 전 / 나중에”로 우선순위까지 정리된 형태로 보고 싶다면, 무료 리포트로 시작하거나 샘플 리포트를 먼저 볼 수 있습니다.