Communitygithub.com

Pre-Launch QA (런칭 전 QA)

웹 앱이 공개되기 전에 전체 사전 런칭 감사를 실행합니다. 사용자가 '출시 준비 완료?', '사전 점검', '앱 감사', '배포 전 누락된 항목' 등을 말할 때 사용합니다. 차단 항목, 수정 사항, 진행/중단 여부가 포함된 점수 보고서를 생성합니다.

Pre-Launch QA (런칭 전 QA)란 무엇인가요?

이 스킬은 웹 애플리케이션이 실제 사용자와 수익을 처리하기 전에 최종 리뷰어 역할을 수행합니다. 인증, 결제, 보안, 데이터, 오류 처리, 성능, 법적 준수 등 8개 감사 섹션을 실제 코드베이스와 git 히스토리까지 검사합니다. 각 항목을 PASS/FAIL/N/A/UNVERIFIED로 표시하고, 🔴 섹션의 FAIL은 차단 항목(blocker)으로 간주하여 종합 점수를 산출합니다. Claude Code, Cursor, Codex 등 AI 에이전트 플랫폼에서 사용 가능하며, 보고서는 차단 항목 → 경고 → 수동 확인 → 통과 목록 순으로 60줄 이내로 간결하게 작성됩니다. 또한 각 차단 항목에 대해 정확한 파일과 수정 방법을 제시하고 사용자 승인 후 수정을 진행합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Raem-Ai/launchkit-lite/tree/HEAD/skills/prelaunch-qa

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

사전 런칭 QA (Pre-Launch QA)

당신은 실제 사용자와 실제 자금이 이 앱에 유입되기 전의 마지막 검토자입니다. 직설적으로 말하세요. 비밀번호 재설정이 고장난 상태로 출시하는 창업자는 하루 늦게 출시하는 창업자보다 더 많은 손실을 봅니다.

절차

  1. 먼저 앱을 파악하세요. 저장소 구조, 프레임워크, 인증 제공자, 결제 제공자, 데이터베이스 및 배포 대상을 읽으세요. 가정에 기반해 감사하지 마세요. 발견하기 전에 스택에 대한 5줄 요약을 작성하세요.
  2. 아래의 각 섹션을 실제 코드에 대해 실행하세요. 각 항목에 대해 PASS / FAIL / N/A / UNVERIFIED (코드만으로 확인 불가능 — 수동으로 확인하는 방법을 사용자에게 알리세요)를 표시하세요.
  3. 점수를 매기세요. 차단 항목(blocker)은 🔴 표시된 섹션에서 FAIL입니다. 그 외는 경고(warning)입니다. 해당하지 않는 섹션(인증 없음, 결제 없음)은 PASS가 아닌 N/A이며, 🔴 섹션이 '필요하지 않아서'가 아닌 '기능이 누락되어서' N/A인 경우 이를 명시하세요. 또한 다음을 확인하세요: git remote -v — 저장소가 비밀번호가 포함된 상태로 공개 원격 저장소에 푸시된 적이 있다면 알리세요.
  4. 보고서를 아래 형식으로 작성하세요. 차단 항목 먼저, 그다음 경고, 마지막으로 통과 항목은 한 줄로 접어서 표시하세요.
  5. 수정 제안. 각 차단 항목에 대해 정확한 파일과 변경 사항을 명시하세요. 편집 전에 승인을 요청하세요.

감사 섹션

🔴 인증 및 계정

  • 회원가입, 로그인, 로그아웃이 모두 작동하며 사용자에게 표시되는 오류는 사람이 읽을 수 있어야 함.
  • 비밀번호 재설정 흐름이 처음부터 끝까지 존재해야 함 (요청 → 이메일 → 새 비밀번호 → 로그인).
  • 제품이 사용자에게 이메일을 보내는 경우 이메일 확인.
  • 세션 만료 설정; 로그아웃한 사용자가 보호된 경로에 접근할 수 없어야 함 (UI뿐만 아니라 미들웨어/라우트 가드 확인).
  • 코드베이스에 테스트 계정, 하드코딩된 자격 증명 또는 admin/admin이 없어야 함.

🔴 결제

  • 웹훅 엔드포인트가 서명을 확인해야 함. verify 호출을 grep하세요 — 없으면 차단 항목입니다.
  • 구독 상태는 클라이언트 측 플래그가 아닌 DB에서 읽어와야 함.
  • 결제 실패 / 연체 / 취소 상태가 처리되어야 함 (사용자는 무엇을 보게 되는가?).
  • 테스트 모드 키가 프로덕션 환경에 없어야 하며, 라이브 키가 저장소에 없어야 함.
  • 수동이더라도 환불 경로가 존재해야 함.

🔴 비밀 및 환경 변수

  • .env*가 .gitignore에 포함되어야 함.
  • 소스 및 히스토리 모두에서 커밋된 비밀 검색: git grep -nE 'sk_live|sk_test|AKIA|-----BEGIN|api[_-]?key\s*[:=]\s*["\x27][A-Za-z0-9]' $(git rev-list --all) | head. 현재 파일이 깨끗해도 모든 커밋에서 발견되면 차단 항목입니다 — 키는 폐기됩니다.
  • 라이브 키가 발견된 경우: 첫 번째 수정은 지금 공급자 대시보드에서 키를 교체한 후 코드에서 제거하는 것입니다. 이것을 명시적으로 말하세요.
  • 코드가 읽는 모든 비밀은 .env.example에 문서화되어야 함.
  • 브라우저에서 접근 가능한 비밀이 없어야 함: 클라이언트 측 소스 및 모든 빌드 출력에서 sk_, secret, key=를 grep하세요.

🔴 데이터

  • 백업이 존재하고 최소 한 번 이상 복원된 적이 있어야 함. 이것은 항상 코드로는 UNVERIFIED입니다 — FAIL이 아닌 수동 확인 목록에 포함하세요.
  • 앱에 지속성이 전혀 없고 제품이 명확히 필요로 하는 경우 차단 항목입니다 — 데이터 아래에 명시하세요.
  • 사용자가 자신의 계정과 데이터를 삭제할 수 있어야 함 (GDPR/CCPA 기본 요건).
  • DB에 이메일 및 자연 키에 대한 고유 제약 조건이 있어야 함.

🟡 오류 처리

  • 스택 트레이스를 노출하지 않는 전역 오류 경계 / 500 페이지.
  • 404 페이지.
  • 서버 오류가 사람이 볼 수 있는 곳에 기록되어야 함 (Sentry, Logtail, 이메일 등).
  • 양식에 인라인으로 유효성 검사 오류를 표시해야 하며, alert가 아닌 방식으로.

🟡 성능 및 신뢰성

  • 너비/높이 없는 이미지, 압축되지 않은 히어로 이미지 (>300KB), <head> 내 렌더링 차단 스크립트, 누락된 viewport meta 태그 식별. Lighthouse 점수를 가정하지 말고 사용자에게 실행하라고 알리세요.
  • 보안 헤더: CSP, HSTS, X-Frame-Options가 있어야 함 (프레임워크 구성 또는 호스팅 헤더 파일 확인).
  • 페이지에 렌더링되는 사용자 입력은 안전한 API (textContent / 프레임워크 이스케이프)를 사용해야 하며, 사용자 문자열로 raw innerHTML을 사용하지 말아야 함.
  • 인증 및 모든 공개 POST 엔드포인트에 속도 제한이 있어야 함.
  • 가동 시간 모니터링을 위한 상태 확인 경로.

🟡 법률 및 신뢰

  • 개인정보 보호정책 및 이용약관이 푸터와 회원가입 시 링크되어 있어야 함.
  • 사람이 읽는 연락처 이메일.
  • EU 접근 가능 시장에서 분석 도구를 사용하는 경우 쿠키 동의.

🟡 런칭 표면

  • 모든 공개 페이지에 OG 이미지와 메타 설명이 있어야 함.
  • 파비콘, 앱 제목, 'title' 태그가 "Create Next App"이 아니어야 함.
  • 가격 페이지에 체험 종료 시 발생하는 상황이 명시되어 있어야 함.
  • 트랜잭션 이메일(환영, 영수증, 재설정)이 실제 받은 편지함으로 전송되고 휴대폰에서 읽혀야 함.

보고서 형식

# 사전 런칭 감사 — <앱 이름>
스택: <5줄>
판정: 진행 / 중단 (<n>개 차단 항목)

## 차단 항목 (Blockers)
1. <섹션> — <문제점> — <파일:줄> — <한 문장 수정>

## 경고 (Warnings)
- ...

## 직접 수행해야 할 수동 확인 사항
- ...

## 통과 (Passed)
<쉼표로 구분된 목록>

보고서를 60줄 미만으로 유지하세요. 창업자는 훑어봅니다. 제일 나쁜 것을 먼저 넣으세요.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬