PageSourceSearch

https://launchpreflight.com/

html launchpreflight.com collected 2026-10-07 17:05:59 UTC 141,937 bytes, 1 lines download raw bytes

1<!DOCTYPE html><html lang="ko" class="geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2synuge4gm7wa.css" data-precedence="next"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/variable/pretendardvariable-dynamic-subset.css" data-precedence="default"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1rboktif37-t_.js"/>
1<script src="/_next/static/chunks/0gim4rjktrlyd.js" async=""></script>
1<script src="/_next/static/chunks/11x_lctn9s_06.js" async=""></script>
1<script src="/_next/static/chunks/169qs07w-f0jf.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-30s51s8i-4_aq.js" async=""></script>
1<script src="/_next/static/chunks/2vwv9iy-8-v8v.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0skn05emv--ag.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2ee7xksgdi0ml.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0bc980360or2d.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2o5_v-5zxs75f.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/00sv_44xe29_l.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/2_5pvf8vcqb4r.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0m6vwxvit8v8g.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/122bd12isqt9p.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0bo60q2ondq0p.js" async="" crossorigin=""></script>
1<script src="/_next/static/chunks/0j5speuqrt-rq.js" async="" crossorigin=""></script>
1<link rel="preload" href="https://static.cloudflareinsights.com/beacon.min.js" as="script"/><title>Preflight — 바이브코딩 보안 점검 | 출시 전 사전점검</title><meta name="description" content="바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 전문 감사가 아닙니다. 전문가 검토가 필요할 수 있습니다."/><meta name="robots" content="index, follow"/><meta name="naver-site-verification" content="03070a523b1936199ffb356cf2aa6b05b926f14d"/><meta name="preflight-site-verification" content="0d2162f6ce16b7ff20d363184e106224"/><meta property="og:title" content="Preflight — 바이브코딩 보안 점검"/><meta property="og:description" content="바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 뭘 봐야 하는지, 어디까지 믿을지, 언제 사람한테 넘길지를 판단할 수 있게 해줍니다."/><meta property="og:url" content="https://launchpreflight.com"/><meta property="og:site_name" content="Preflight"/><meta property="og:locale" content="ko_KR"/><meta property="og:image" content="https://launchpreflight.com/opengraph-image.png?opengraph-image.0s2yavpx854mi.png"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Preflight — 바이브코딩 보안 점검"/><meta name="twitter:description" content="바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검."/><meta name="twitter:image" content="https://launchpreflight.com/twitter-image.png?twitter-image.0s2yavpx854mi.png"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon.ico?favicon.0vdahu1ulk_d0.ico" sizes="32x32" type="image/x-icon"/><link rel="icon" href="/icon.png?icon.1d09b59sxfx7g.png" sizes="192x192" type="image/png"/><link rel="apple-touch-icon" href="/apple-icon.png?apple-icon.3g5l--r57ekwr.png" sizes="180x180" type="image/png"/><meta name="next-size-adjust" content=""/>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://launchpreflight.com/#organization","name":"Fount Lab","alternateName":"파운트랩","email":"[email protected]","url":"https://launchpreflight.com"},{"@type":"WebSite","@id":"https://launchpreflight.com/#website","name":"Preflight","alternateName":"LaunchPreflight","url":"https://launchpreflight.com","inLanguage":"ko","publisher":{"@id":"https://launchpreflight.com/#organization"}},{"@type":"WebApplication","@id":"https://launchpreflight.com/#app","name":"Preflight","alternateName":"LaunchPreflight","url":"https://launchpreflight.com","description":"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 사용자가 자기 AI 에이전트로 자기 프로젝트를 점검하고, 결과를 우선순위 리포트로 정리받습니다. 코드베이스를 제출하지 않습니다. 전문 감사가 아닙니다.","applicationCategory":"SecurityApplication","operatingSystem":"Web","browserRequirements":"Requires JavaScript","inLanguage":"ko","author":{"@id":"https://launchpreflight.com/#organization"}}]}</script>
1<meta name="sentry-trace" content="57463668d3c14d998e4014a05c0c562f-a2e5f3e018de4832-0"/><meta name="baggage" content="sentry-environment=production,sentry-release=4492fa6fb0ce20f0fe9e4857828c07a8dc287e90,sentry-public_key=73ee4ed336631e38736ab72de864eb6a,sentry-trace_id=57463668d3c14d998e4014a05c0c562f,sentry-org_id=4511385796411392,sentry-sampled=false,sentry-sample_rand=0.8307799157950624,sentry-sample_rate=0"/>
1<script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script>
1</head><body class="flex min-h-full flex-col bg-background text-foreground"><div hidden=""><!--$--><!--/$--></div>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<header class="border-b"><div class="mx-auto flex h-14 max-w-[68rem] items-center justify-between px-6"><div class="flex items-end gap-1.5"><a class="flex items-center gap-2" href="/"><img alt="Preflight logo" loading="lazy" width="28" height="28" decoding="async" data-nimg="1" class="shrink-0" style="color:transparent" src="/title.svg"/><span class="text-lg font-semibold tracking-tight">Preflight</span></a><span class="text-xs text-muted-foreground mb-[5px]"><span class="hidden sm:inline">출시 전 </span><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_R_769lb_" data-slot="popover-trigger" aria-label="점검 종류 변경" class="group relative inline-flex cursor-pointer items-center gap-0.5 rounded-sm underline decoration-muted-foreground/60 underline-offset-4 transition-colors before:absolute before:inset-[-8px] before:content-[&#x27;&#x27;] hover:text-foreground hover:decoration-foreground focus-visible:text-foreground focus-visible:decoration-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[popup-open]:text-foreground data-[popup-open]:decoration-foreground">보안<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-3 transition-transform group-data-[popup-open]:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><span class="hidden sm:inline"> 점검</span></span></div><div class="flex items-center gap-2"><a class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 border border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-9 gap-1 rounded-[min(var(--radius-md),12px)] px-3 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 sm:min-h-9" href="/signin?callbackUrl=%2F">로그인</a><a class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-9 gap-1 rounded-[min(var(--radius-md),12px)] px-3 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-3.5 min-h-11 sm:min-h-9" href="/start">시작하기</a></div></div></header><main class="flex flex-1 flex-col"><div class="flex flex-1 flex-col"><section class="flex flex-col items-center px-6 pt-20 pb-16 sm:pt-24 sm:pb-20"><div class="mx-auto max-w-2xl text-center"><h1 class="text-4xl font-bold leading-[1.15] tracking-tight text-balance [word-break:keep-all] sm:text-5xl">출시 전, 한 번 더 점검하세요.</h1>
1<p class="mt-4 text-xl text-foreground/80">바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검.</p><p class="mx-auto mt-3 max-w-lg text-sm leading-relaxed text-muted-foreground [word-break:keep-all]">에이전트에게 직접 점검을 시킬 수 있습니다. 하지만 뭘 봐야 하는지, 어디까지 믿어도 되는지, 언제 사람한테 넘겨야 하는지는 따로 판단해야 합니다. Preflight은 그 판단 구조를 세팅합니다.</p><div class="mt-10 flex flex-col items-center gap-3 sm:flex-row sm:justify-center"><a class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3" href="/start">점검 시작하기</a><a class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 border border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3" href="/sample-report">샘플 리포트 보기</a></div><div class="mt-6 flex flex-wrap items-center justify-center gap-2"><span class="inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-x size-3.5" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="m14.5 12.5-5 5"></path><path d="m9.5 12.5 5 5"></path></svg><span>코드 업로드 없음</span></span><span class="inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch size-3.5" aria-hidden="true"><path d="M15 6a9 9 0 0 0-9 9V3"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle></svg><span>GitHub 접근 불필요</span></span><span class="inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert size-3.5" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg><span>전문 감사 대체 아님</span></span></div><div class="mt-5 flex flex-wrap items-center justify-center gap-x-2 text-xs text-muted-foreground"><span>월 <span class="text-foreground tabular-nums">
12건</span> 무료 · 가입 시<!-- --> <span class="text-foreground tabular-nums">+1건</span></span><span class="opacity-40" aria-hidden="true">·</span><span>추가 크레딧<!-- --> <span class="text-foreground tabular-nums">₩3,300</span>부터</span><span class="opacity-40" aria-hidden="true">·</span><a class="underline underline-offset-2 hover:text-foreground" href="/pricing">가격 자세히</a></div></div></section><section class="border-t bg-muted/30 px-6 py-16"><div class="mx-auto max-w-3xl"><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">이용 방법</h2><div class="mt-6 grid gap-6 sm:grid-cols-4"><div class="space-y-2"><span class="flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground">1</span><p class="text-sm font-medium">위험 표면 파악</p><p class="text-xs text-muted-foreground [word-break:keep-all]">스택 조합이나 인증, 결제, 업로드 등의 고위험 영역을 인터뷰로 특정합니다.</p></div><div class="space-y-2"><span class="flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground">2</span><p class="text-sm font-medium">점검 범위 고정</p><p class="text-xs text-muted-foreground [word-break:keep-all]">상황에 맞는 점검 프롬프트를 제공합니다. 근거 요청과 확실/불확실 구분 지시가 포함됩니다.</p></div><div class="space-y-2"><span class="flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground">3</span><p class="text-sm font-medium">에이전트 실행</p><p class="text-xs text-muted-foreground [word-break:keep-all]">프롬프트를 AI 에이전트에서 실행하고, 응답을 붙여넣습니다.</p></div><div class="space-y-2"><span class="flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground">4</span><p class="text-sm font-medium">우선순위 판단</p><p class="text-xs text-muted-foreground [word-break:keep-all]">결과를 우선순위로 재정리하고, 혼자 고칠 수 있는 것과 전문가 검토가 필요한 것을 구분합니다.</p></div></div></div></section><section class="px-6 py-16"><div class="mx-auto max-w-3xl"><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">1단계에서 묻는 것</h2><p class="mt-3 max-w-2xl text-sm leading-relaxed [word-break:keep-all]">추상적인 보안 지식을 묻지 않습니다. 당신의 앱이<!-- --> <b>무엇으로 만들어졌고</b>, <b>무엇을 하는지</b>만 골라주면 됩니다. 보통 1~2분.</p><div class="mt-6 overflow-hidden rounded-lg border border-border/60 bg-background"><div class="flex items-center justify-between border-b border-border/60 bg-muted/40 px-5 py-2.5 text-[11px] font-mono uppercase tracking-wider text-muted-foreground"><span><span class="text-foreground">EXAMPLE</span> · 예시 시나리오 — SaaS 출시 직전</span><span>A · B · C</span></div><div class="grid grid-cols-[80px_1fr] gap-4 px-5 py-3.5 sm:grid-cols-[120px_1fr] "><div class="pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground">A. 스택</div><div class="flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>Next.js</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>Supabase</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>Vercel</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>OpenAI API</span></div></div><div class="grid grid-cols-[80px_1fr] gap-4 px-5 py-3.5 sm:grid-cols-[120px_1fr] border-t border-dashed border-border/60"><div class="pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground">B. 기능</div><div class="flex flex-wrap items-center gap-1.5"><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs">
1<span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>인증</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>사용자별 데이터 격리</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>파일 업로드</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>결제·구독</span><span class="inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs"><span class="mr-1.5 size-1.5 rounded-full bg-muted-foreground/70"></span>외부 API 사용</span></div></div><div class="grid grid-cols-[80px_1fr] gap-4 border-t border-dashed border-border/60 px-5 py-3.5 sm:grid-cols-[120px_1fr]"><div class="pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground">C. 단계</div><div><span class="inline-flex items-center rounded-4xl border border-primary/40 bg-primary/5 px-3 py-0.5 text-xs font-medium">출시 직전</span></div></div></div>
1<div class="mt-4 rounded-r-lg border-l-2 border-foreground/30 bg-muted/40 px-4 py-3.5"><div class="flex items-center gap-2 text-sm font-medium"><span class="font-mono text-muted-foreground">[?]</span><span>뭘 선택해야 할지 모르겠을 때</span></div><p class="mt-1.5 text-xs leading-relaxed text-muted-foreground [word-break:keep-all]">버튼 하나로 <b>프롬프트</b>가 만들어집니다. Cursor·Claude Code·Codex에 붙여넣으면 에이전트가 프로젝트를 실제로 읽고 답해 주고, 그 답을 그대로 다시 붙여넣으면 — 바뀔 항목을 먼저 보여준 뒤 한 번에 반영합니다. 손으로 옮겨 적지 않아도 됩니다.</p></div><p class="mt-5 text-center font-mono text-[11px] tracking-wider text-muted-foreground/70">※ 실제 입력 화면은 스택 칩 픽커 + 체크박스 + 라디오 — 위는 요약 표시용 예시.</p></div></section><section class="border-t bg-muted/30 px-6 py-16"><div class="mx-auto max-w-3xl"><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">찾는 건 쉽다. 결정은 어렵다.</h2><p class="mt-3 max-w-2xl text-sm leading-relaxed [word-break:keep-all]">“보안 점검해줘”라고 하면 에이전트도 이슈를 꽤 찾아냅니다. 문제는 그 다음 — 발견된 12건 중 당신은 뭘 먼저 해야 할까요?</p><div class="relative mt-6 grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-9 lg:-mx-16"><div class="flex flex-col rounded-lg border border-border bg-background"><div class="border-b border-border/60 px-5 py-3.5"><div class="font-mono text-[10px] uppercase tracking-widest text-muted-foreground">A. RAW OUTPUT</div><div class="mt-1 text-sm font-medium text-muted-foreground">에이전트가 돌려준 것</div></div><div class="relative max-h-[420px] overflow-hidden px-5 pt-3.5 font-mono text-xs leading-[1.75] text-foreground/80"><ol class="list-decimal space-y-1.5 pb-10 pl-5"><li class="marker:text-muted-foreground">의존성 패키지 중 일부 버전이 낡았습니다 (eslint, postcss 등)</li><li class="marker:text-muted-foreground">결제 처리 시 클라이언트에서 받은 금액을 그대로 사용하는 코드가 보입니다</li><li class="marker:text-muted-foreground">CORS 설정이 와일드카드(*)로 되어 있습니다</li><li class="marker:text-muted-foreground">HTTPS 적용 권장드립니다</li><li class="marker:text-muted-foreground">파일 업로드 핸들러에서 MIME 타입 검증이 없습니다</li><li class="marker:text-muted-foreground">console.log로 민감 정보가 출력될 수 있습니다</li><li class="marker:text-muted-foreground">Supabase RLS 정책이 일부 테이블에서 비활성화되어 있습니다</li><li class="marker:text-muted-foreground">.env 파일이 .gitignore에 포함되지 않아 레포에 커밋될 위험이 있습니다</li><li class="marker:text-muted-foreground">OpenAI API 키가 클라이언트 번들에 포함될 가능성이 있습니다</li><li class="marker:text-muted-foreground">favicon이 설정되어 있지 않습니다</li><li class="marker:text-muted-foreground">Rate limiting 도입을 검토하세요</li><li class="marker:text-muted-foreground">에러 메시지에 스택트레이스가 노출될 수 있습니다</li></ol><div class="pointer-events-none absolute inset-x-0 bottom-0 h-20 bg-gradient-to-b from-transparent to-background"></div></div><div class="border-t border-border/60 px-5 py-3 text-xs text-muted-foreground [word-break:keep-all]">다 맞는 말입니다. 그런데 여기서 뭘 먼저 해야 할까요?</div></div><div class="pointer-events-none absolute inset-y-0 left-1/2 hidden -translate-x-1/2 flex-col items-center md:flex" aria-hidden="true"><div class="w-px flex-1 bg-border/60"></div><div class="rounded-full border border-border bg-background px-2.5 py-1 font-mono text-[10px] tracking-widest whitespace-nowrap text-muted-foreground"><span class="mr-1 text-foreground">→</span>재정렬</div><div class="w-px flex-1 bg-border/60"></div></div><div class="font-mono text-[10px] tracking-widest text-muted-foreground text-center md:hidden" aria-hidden="true">↓ 재정렬</div><div class="flex flex-col rounded-lg border border-border bg-background"><div class="border-b border-border/60 px-5 py-3.5"><div class="font-mono text-[10px] uppercase tracking-widest text-muted-foreground">B. PREFLIGHT REPORT</div><div class="mt-1 text-sm font-medium">Preflight이 돌려주는 것</div></div><div class="px-5 pb-3 pt-2"><div class="border-b border-dashed border-border/60 py-3"><div class="mb-2 flex items-center gap-2.5"><span class="inline-block rounded-[4px] bg-destructive/10 px-2 py-0.5 text-[10px] font-mono font-medium tracking-wider text-destructive">BLOCK</span><span class="text-xs font-medium">지금 당장 수정</span><span class="text-xs text-muted-foreground">
1· 3건</span></div><ul class="space-y-1 pl-0.5 text-[13px] leading-relaxed"><li class="flex gap-2"><span class="mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground" aria-hidden="true"></span><span>결제 금액이 클라이언트 요청 본문에서 바로 사용됨</span></li><li class="flex gap-2"><span class="mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground" aria-hidden="true"></span><span>업로드 파일 MIME 검증 없음</span></li><li class="flex gap-2"><span class="mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground" aria-hidden="true"></span><span>.env 파일이 .gitignore에 빠져 있음</span></li></ul></div><div class="border-b border-dashed border-border/60 py-3"><div class="mb-2 flex items-center gap-2.5"><span class="inline-block rounded-[4px] bg-amber-100 px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-amber-700 dark:bg-amber-950/40 dark:text-amber-400">SOON</span><span class="text-xs font-medium">출시 전 수정</span><span class="text-xs text-muted-foreground">· 1건</span></div><ul class="space-y-1 pl-0.5 text-[13px] leading-relaxed"><li class="flex gap-2"><span class="mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground" aria-hidden="true"></span><span>Supabase RLS 일부 테이블 비활성</span></li></ul></div><div class="border-b border-dashed border-border/60 py-3"><div class="mb-2 flex items-center gap-2.5"><span class="inline-block rounded-[4px] bg-muted px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-muted-foreground">UNCERTAIN</span><span class="text-xs font-medium">불확실</span><span class="text-xs text-muted-foreground">· 1건</span></div><ul class="space-y-1 pl-0.5 text-[13px] leading-relaxed"><li class="flex gap-2"><span class="mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground" aria-hidden="true"></span><span>OpenAI API 키가 클라이언트 번들에 실제 포함되는지 추가 확인 필요</span></li></ul></div><div class="py-3 text-muted-foreground"><div class="mb-2 flex items-center gap-2.5"><span class="inline-block rounded-[4px] border border-dashed border-border/70 dark:border-border px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-muted-foreground">LATER</span><span class="text-xs">나중에 개선</span><span class="text-xs">· 7건</span></div><p class="text-xs leading-relaxed [word-break:keep-all]">의존성 업데이트<span class="mx-1.5 opacity-50">·</span>CORS 설정<span class="mx-1.5 opacity-50">·</span>HTTPS 적용<span class="mx-1.5 opacity-50">·</span>console.log 정리<span class="mx-1.5 opacity-50">·</span>favicon<span class="mx-1.5 opacity-50">·</span>Rate limiting<span class="mx-1.5 opacity-50">·</span>에러 스택트레이스</p></div></div><div class="border-t border-border/60 px-5 py-3 text-xs leading-relaxed text-muted-foreground [word-break:keep-all]"><strong class="font-medium text-foreground">같은 응답, 다른 순서.</strong> <!-- -->“안전해 보입니다”가 아니라 “지금 이걸 먼저 하세요”.</div></div></div></div></section><section class="px-6 py-16"><div class="mx-auto grid max-w-3xl gap-10 sm:grid-cols-2"><div><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">Preflight이 하는 일</h2><ul class="mt-4 space-y-3"><li class="flex items-start gap-2.5 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-target mt-0.5 size-4 shrink-0 text-muted-foreground" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="6"></circle><circle cx="12" cy="12" r="2"></circle></svg><span class="[word-break:keep-all]">범위 정의 — 뭘 봐야 하는지 고정</span></li><li class="flex items-start gap-2.5 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-scale mt-0.5 size-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="M12 3v18"></path><path d="m19 8 3 8a5 5 0 0 1-6 0zV7"></path><path d="M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1"></path><path d="m5 8 3 8a5 5 0 0 1-6 0zV7"></path><path d="M7 21h10"></path></svg>
1<span class="[word-break:keep-all]">근거 기준 — 확인된 문제와 추정을 구분</span></li><li class="flex items-start gap-2.5 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-down mt-0.5 size-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="m21 16-4 4-4-4"></path><path d="M17 20V4"></path><path d="m3 8 4-4 4 4"></path><path d="M7 4v16"></path></svg><span class="[word-break:keep-all]">우선순위 — 지금 막아야 할 것부터 정리</span></li><li class="flex items-start gap-2.5 text-sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user-check mt-0.5 size-4 shrink-0 text-muted-foreground" aria-hidden="true"><path d="m16 11 2 2 4-4"></path><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="[word-break:keep-all]">에스컬레이션 — 혼자 고칠 수 있는지, 전문가가 필요한지 분리</span></li></ul></div><div><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">Preflight이 하지 않는 일</h2><ul class="mt-4 space-y-3 text-sm text-muted-foreground"><li class="flex items-start gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x mt-0.5 size-4 shrink-0" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg><span>전문 보안 감사를 대체</span></li><li class="flex items-start gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x mt-0.5 size-4 shrink-0" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg><span>코드를 자동으로 수정</span></li><li class="flex items-start gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x mt-0.5 size-4 shrink-0" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg><span>실제 인프라를 스캔</span></li><li class="flex items-start gap-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x mt-0.5 size-4 shrink-0" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg><span>GitHub이나 저장소 접근을 요구</span></li></ul></div></div></section><section class="border-t bg-muted/30 px-6 py-16"><div class="mx-auto max-w-3xl"><h2 class="text-sm font-semibold uppercase tracking-wider text-muted-foreground">자주 받는 질문</h2><div data-orientation="vertical" dir="ltr" role="region" data-slot="accordion" class="flex w-full flex-col mt-5 border-t border-border"><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_5clubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">얼마나 걸리나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_9clubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">코드를 업로드하나요? GitHub 접근이 필요한가요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_dclubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">제 점검 데이터는 어떻게 보관되나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_hclubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">AI 에이전트가 없어도 쓸 수 있나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_lclubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">내가 만들지 않은 사이트도 점검할 수 있나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_pclubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">결과가 틀릴 수도 있나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_tclubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">점검한 내용이 고쳐졌는지 어떻게 확인하나요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_11clubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordio
1n-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">이름이 같은 다른 Preflight을 본 것 같은데요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div><div data-orientation="vertical" data-index="-1" data-closed="" data-slot="accordion-item" class="not-last:border-b"><h3 data-orientation="vertical" data-index="-1" data-closed="" class="flex"><button type="button" data-value="" data-orientation="vertical" data-index="-1" aria-disabled="false" aria-expanded="false" id="base-ui-_R_15clubrlbH2_" tabindex="0" data-slot="accordion-trigger" class="group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline">만든 곳은 어디인가요?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m6 9 6 6 6-6"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" aria-hidden="true" data-slot="accordion-trigger-icon"><path d="m18 15-6-6-6 6"></path></svg></button></h3></div></div><section aria-labelledby="verification-assets-heading" class="mt-16 border-t border-border pt-10"><h2 id="verification-assets-heading" class="mb-6 text-center text-sm font-semibold uppercase tracking-wider text-muted-foreground">직접 확인해 보세요</h2><div class="grid gap-3 sm:gap-4 sm:grid-cols-3"><a class="group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60" href="/sample-report"><span class="text-[10px] font-semibold uppercase tracking-wider text-muted-foreground">샘플 리포트</span><span class="text-sm font-medium text-foreground">실제 리포트가 어떻게 생겼는지</span><span class="text-xs leading-relaxed text-muted-foreground [word-break:keep-all]">가상의 SaaS 시나리오 1건 — 4-bucket 분류와 근거 수준 표기 방식을 그대로.</span><span class="mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground">보기 →</span></a><a class="group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60" href="/standards/security"><span class="text-[10px] font-semibold uppercase tracking-wider text-muted-foreground">점검 기준</span><span class="text-sm font-medium text-foreground">기준을 어떻게 정하고 고쳐가는지</span><span class="text-xs leading-relaxed text-muted-foreground [word-break:keep-all]">스택·기능별 점검 항목과 분류 정책, 그리고 변경 이력까지 공개로.</span><span class="mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground">보기 →</span></a><a class="group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60" href="/stamps"><span class="text-[10px] font-semibold uppercase tracking-wider text-muted-foreground">제작자 진술</span><span class="text-sm font-medium text-foreground">실제로 점검을 마친 제작자 진술들</span><span class="text-xs leading-relaxed text-muted-foreground [word-break:keep-all]">익명 콜사인으로 공개된 실물 진술을 그대로 볼 수 있습니다.</span><span class="mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground">보기 →</span></a></div></section><div class="mt-12 flex flex-col items-center gap-3 border-t border-border pt-10 text-center"><p class="text-sm text-muted-foreground">점검은 10~15분. 월 2건 무료.</p><a class="group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 border border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3" href="/start">점검 시작하기</a></div></div></section></div><!--$--><!--/$--></main><footer class="border-t px-6 py-6 text-center text-xs text-muted-foreground"><p>전문 감사가 아닙니다. 전문가 검토가 필요할 수 있습니다.</p><p class="mt-1 leading-relaxed [word-break:keep-all]">모든 거래는 Fount Lab(파운트랩)의 책임 하에 이루어집니다.<!-- --> <span class="whitespace-nowrap">환불 등 민원 담당자<!-- --> <span>이태균</span></span> · <span class="whitespace-nowrap">연락처<!-- --> <span>070-7806-5005</span></span></p><nav class="mt-2 flex flex-wrap items-center justify-center gap-x-3 gap-y-1"><a class="hover:text-foreground hover:underline" href="/about">소개</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/pricing">가격</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/blog">블로그</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/standards">점검 기준</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/terms">이용약관</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/privacy">개인정보처리방침</a><span aria-hidden="true">·</span><a class="hover:text-foreground hover:underline" href="/refund-policy">환불 정책</a><span aria-hidden="true">·</span><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_R_3uslb_" data-slot="popover-trigger" aria-label="색 모드 변경" class="inline-flex cursor-pointer items-center justify-center rounded-sm p-0.5 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-monitor h-3.5 w-3.5" aria-hidden="true"><rect width="20" height="14" x="2" y="3" rx="2"></rect><line x1="8" x2="16" y1="21" y2="21"></line><line x1="12" x2="12" y1="17" y2="21"></line></svg></button></nav><p class="mt-3">© 2026<!-- --> <a title="사업자 정보" class="hover:text-foreground hover:underline" href="/about">Fount Lab</a> <!-- -->· Engine v<!-- -->1.26.0</p><p class="mt-1 leading-relaxed [word-break:keep-all]"><span class="whitespace-nowrap">상호 Fount Lab</span> · <span class="whitespace-nowrap">대표 <span>이태균</span></span> · <span class="whitespace-nowrap">사업자등록번호<!-- --> <span>865-31-02020</span></span> · <span>주소<!-- --> <span>서울 동작구 상도로47라길 12 예준빌 301호</span></span></p></footer>
1<script src="/_next/static/chunks/1rboktif37-t_.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[276239,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"ThemeProvider\"]\n3:I[915689,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"DirtyFormProvider\"]\n4:I[728231,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"TooltipProvider\"]\n7:I[115952,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"default\"]\n8:I[681596,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"default\"]\n11:I[1096,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2synuge4gm7wa.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/variable/pretendardvariable-dynamic-subset.css\",\"style\"]\nf:X\n0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(marketing)\",{\"children\":[\"__PAGE__\",{},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4096]},\"$undefined\",\"$undefined\",4112],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2synuge4gm7wa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0skn05emv--ag.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0bc980360or2d.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/00sv_44xe29_l.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/122bd12isqt9p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/0bo60q2ondq0p.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"className\":\"geist_mono_8d43a2aa-module__8Li5zG__variable h-full antialiased\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"stylesheet\",\"href\":\"https://cdn.jsdelivr.net/gh/orioncactus/[email protected]/dist/web/variable/pretendardvariable-dynamic-subset.css\",\"precedence\":\"default\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@graph\\\":[{\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://launchpreflight.com/#organization\\\",\\\"name\\\":\\\"Fount Lab\\\",\\\"alternateName\\\":\\\"파운트랩\\\",\\\"email\\\":\\\"[email protected]\\\",\\\"url\\\":\\\"https://launchpreflight.com\\\"},{\\\"@type\\\":\\\"WebSite\\\",\\\"@id\\\":\\\"https://launchpreflight.com/#website\\\",\\\"name\\\":\\\"Preflight\\\",\\\"alternateName\\\":\\\"LaunchPreflight\\\",\\\"url\\\":\\\"https://launchpreflight.com\\\",\\\"inLanguage\\\":\\\"ko\\\",\\\"publisher\\\":{\\\"@id\\\":\\\"https://launchpreflight.com/#organization\\\"}},{\\\"@type\\\":\\\"WebApplication\\\",\\\"@id\\\":\\\"https://launchpreflight.com/#app\\\",\\\"name\\\":\\\"Preflight\\\",\\\"alternateName\\\":\\\"LaunchPreflight\\\",\\\"url\\\":\\\"https://launchpreflight.com\\\",\\\"description\\\":\\\"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 사용자가 자기 AI 에이전트로 자기 프로젝트를 점검하고, 결과를 우선순위 리포트로 정리받습니다. 코드베이스를 제출하지 않습니다. 전문 감사가 아닙니다.\\\",\\\"applicationCategory\\\":\\\"SecurityApplication\\\",\\\"o
1peratingSystem\\\":\\\"Web\\\",\\\"browserRequirements\\\":\\\"Requires JavaScript\\\",\\\"inLanguage\\\":\\\"ko\\\",\\\"author\\\":{\\\"@id\\\":\\\"https://launchpreflight.com/#organization\\\"}}]}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"flex min-h-full flex-col bg-background text-foreground\",\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$L5\",\"$L6\",[\"$\",\"main\",null,{\"className\":\"flex flex-1 flex-col\",\"children\":[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":\"$L9\"}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$La\",\"$Lb\",\"$Lc\"]}]}]}]}]]}]]}],{\"children\":[\"$Ld\",{\"children\":[\"$Le\",{},null,false,null]},null,false,\"$f\"]},null,false,null],\"$L10\",false]],\"m\":\"$undefined\",\"G\":[\"$11\",[\"$L12\"]],\"S\":false,\"h\":null,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"1qb9XjXhSWzXFmG_gY-3n\"}\n13:I[472120,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"ObfuscatedText\"]\n14:I[760494,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"\"]\n15:I[964538,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"ThemeToggle\"]\n17:I[227924,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"OutletBoundary\"]\n18:\"$Sreact.suspense\"\n1a:I[227924,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"ViewportBoundary\"]\n1c:I[227924,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"MetadataBoundary\"]\n9:[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\"
1:\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]\na:[\"$\",\"footer\",null,{\"className\":\"border-t px-6 py-6 text-center text-xs text-muted-foreground\",\"children\":[[\"$\",\"p\",null,{\"children\":\"전문 감사가 아닙니다. 전문가 검토가 필요할 수 있습니다.\"}],[\"$\",\"p\",null,{\"className\":\"mt-1 leading-relaxed [word-break:keep-all]\",\"children\":[\"모든 거래는 Fount Lab(파운트랩)의 책임 하에 이루어집니다.\",\" \",[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":[\"환불 등 민원 담당자\",\" \",[\"$\",\"$L13\",null,{\"value\":\"7J207YOc6reg\",\"fallback\":\"이태균\"}]]}],\" · \",[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":[\"연락처\",\" \",[\"$\",\"$L13\",null,{\"value\":\"MDcwLTc4MDYtNTAwNQ==\",\"fallback\":\"070-7806-5005\"}]]}]]}],[\"$\",\"nav\",null,{\"className\":\"mt-2 flex flex-wrap items-center justify-center gap-x-3 gap-y-1\",\"children\":[[\"$\",\"$L14\",null,{\"href\":\"/about\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"소개\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/pricing\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"가격\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/blog\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"블로그\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/standards\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"점검 기준\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/terms\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"이용약관\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/privacy\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"개인정보처리방침\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/refund-policy\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"환불 정책\"}],[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L15\",null,{}]]}],[\"$\",\"p\",null,{\"className\":\"mt-3\",\"children\":[\"© 2026\",\" \",[\"$\",\"$L14\",null,{\"href\":\"/about\",\"title\":\"사업자 정보\",\"className\":\"hover:text-foreground hover:underline\",\"children\":\"Fount Lab\"}],\" \",\"· Engine v\",\"1.26.0\"]}],[\"$\",\"p\",null,{\"className\":\"mt-1 leading-relaxed [word-break:keep-all]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":\"상호 Fount Lab\"}],\" · \",[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":[\"대표 \",[\"$\",\"$L13\",null,{\"value\":\"7J207YOc6reg\",\"fallback\":\"이태균\"}]]}],\" · \",[\"$\",\"span\",null,{\"className\":\"whitespace-nowrap\",\"children\":[\"사업자등록번호\",\" \",[\"$\",\"$L13\",null,{\"value\":\"ODY1LTMxLTAyMDIw\",\"fallback\":\"865-31-02020\"}]]}],\" · \",[\"$\",\"span\",null,{\"children\":[\"주소\",\" \",[\"$\",\"$L13\",null,{\"value\":\"7ISc7Jq4IOuPmeyekeq1rCDsg4Hrj4TroZw0N+udvOq4uCAxMiDsmIjspIDruYwgMzAx7Zi4\",\"fallback\":\"서울 동작구 상도로47라길 12 예준빌 301호\"}]]}]]}]]}]\nb:null\nd:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L7\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L8\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:2:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:2:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:2:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\ne:[\"$\",\"$1\",\"c\",{\"children\":[\"$L16\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0j5speuqrt-rq.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L17\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@19\"}]}]]}]\n10:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1a\",null,{\"children\":\"$L1b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1c\",null,{\"children\":[\"$\",\"$18\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n12:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2synuge4gm7wa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nf:C\n6:null\n1b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n1e:I[441555,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"IconMark\"]\n19:null\n1d:[[\"$\",\"title\",\"0\",{\"children\":\"Preflight — 바이브코딩 보안 점검 | 출시 전 사전점검\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 전문 감사가 아닙니다. 전문가 검토가 필요할 수 있습니다.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"3\",{\"name\":\"naver-site-verification\",\"content\":\"03070a523b1936199ffb356cf2aa6b05b926f14d\"}],[\"$\",\"meta\",\"4\",{\"name\":\"preflight-site-verification\",\"content\":\"0d2162f6ce16b7ff20d363184e106224\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Preflight — 바이브코딩 보안 점검\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검. 뭘 봐야 하는지, 어디까지 믿을지, 언제 사람한테 넘길지를 판단할 수 있게 해줍니다.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://launchpreflight.com\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Preflight\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:locale\",\"content\":\"ko_KR\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image\",\"content\":\"https://launchpreflight.com/opengraph-image.png?opengraph-image.0s2yavpx854mi.png\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:title\",\"content\":\"Preflight — 바이브코딩 보안 점검\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:description\",\"content\":\"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검.\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image\",\"content\":\"https://launchpreflight.com/twitter-image.png?twitter-image.0s2yavpx854mi.png\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0vdahu1ulk_d0.ico\",\"sizes\":\"32x32\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.1d09b59sxfx7g.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon.png?apple-icon.3g5l--r57ekwr.png\",\"sizes\":\"180x180\",\"type\":\"image/png\"}],[\"$\",\"$L1e\",\"25\",{}]]\n1f:I[317212,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"LogoLink\"]\n20:I[775221,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"ModuleSwitcher\"]\n21:I[142486,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"SignInLink\"]\n22:I[552070,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\"],\"\"]\n5:[\"$\",\"header\",null,{\"className\":\"border-b\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto flex h-14 max-w-[68rem] items-center justify-between px-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-end gap-1.5\",\"children\":[[\"$\",\"$L1f\",null,{\"initialModule\":\"security\"}],[\"$\",\"$L20\",null,{\"fallbackModule\":\"security\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"$L21\",null,{}],[\"$\",\"$L14\",null,{\"href\":\"/start\",\"className\":\"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-9 gap-1 rounded-[min(var(--radius-md),12px)] px-3 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [\u0026_svg:not([class*='size-'])]:size-3.5 min-h-11 sm:min-h-9\",\"children\":\"시작하기\"}]]}]]}]}]\nc:[\"$\",\"$L22\",null,{\"strategy\":\"afterInteractive\",\"src\":\"https://static.cloudflareinsights.com/beacon.min.js\",\"data-cf-beacon\":\"{\\\"token\\\":\\\"1eea1681b27e4d66a8cb2360c49be9da\\\"}\"}]\n23:I[441074,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"default\"]\n16:[\"$\",\"div\",null,{\"className\":\"flex flex-1 flex-col\",\"children\":[[\"$\",\"section\",null,{\"className\":\"flex flex-col items-center px-6 pt-20 pb-16 sm:pt-24 sm:pb-20\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-2xl text-center\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold leading-[1.15] tracking-tight text-balance [word-break:keep-all] sm:text-5xl\",\"children\":\"출시 전, 한 번 더 점검하세요.\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 text-xl text-foreground/80\",\"children\":\"바이브코딩으로 만든 앱을 위한 배포 전 보안 사전점검.\"}],[\"$\",\"p\",null,{\"className\":\"mx-auto mt-3 max-w-lg text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":\"에이전트에게 직접 점검을 시킬 수 있습니다. 하지만 뭘 봐야 하는지, 어디까지 믿어도 되는지, 언제 사람한테 넘겨야 하는지는 따로 판단해야 합니다. Preflight은 그 판단 구조를 세팅합니다.\"}],[\"$\",\"div\",null,{\"className\":\"mt-10 flex flex-col items-center gap-3 sm:flex-row sm:justify-center\",\"children\":[[\"$\",\"$L14\",null,{\"href\":\"/start\",\"className\":\"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/80 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\"children\":\"점검 시작하기\"}],[\"$\",\"$L14\",null,{\"href\":\"/sample-report\",\"className\":\"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 border border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\"children\":\"샘플 리포트 보기\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-6 flex flex-wrap items-center justify-center gap-2\",\"children\":[[\"$\",\"span\",\"코드 업로드 없음\",{\"className\":\"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\",\"key\":\"1oefj6\"}],[\"path\",{\"d\":\"M14 2v5a1 1 0 0 0 1 1h5\",\"key\":\"wfsgrz\"}],[\"path\",{\"d\":\"m14.5 12.5-5 5\",\"key\":\"b62r18\"}],[\"path\",{\"d\":\"m9.5 12.5 5 5\",\"key\":\"1rk7el\"}]],\"className\":\"lucide-file-x size-3.5\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"코드 업로드 없음\"}]]}],[\"$\",\"span\",\"GitHub 접근 불필요\",{\"className\":\"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M15 6a9 9 0 0 0-9 9V3\",\"key\":\"1cii5b\"}],[\"circle\",{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\",\"key\":\"1h7g24\"}],[\"circle\",{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\",\"key\":\"fqmcym\"}]],\"className\":\"lucide-git-branch size-3.5\",\"aria-hidden\":\"true\"}],\"$L24\"]}],\"$L25\"]}],\"$L26\"]}]}],\"$L27\",\"$L28\",\"$L29\",\"$L2a\",\"$L2b\"]}
1]\n33:I[678623,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"AccordionRoot\"]\n34:I[671273,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"AccordionItem\"]\n35:I[589307,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"AccordionHeader\"]\n36:I[699500,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"AccordionTrigger\"]\n37:I[260110,[\"/_next/static/chunks/2vwv9iy-8-v8v.js\",\"/_next/static/chunks/0skn05emv--ag.js\",\"/_next/static/chunks/2ee7xksgdi0ml.js\",\"/_next/static/chunks/0bc980360or2d.js\",\"/_next/static/chunks/2o5_v-5zxs75f.js\",\"/_next/static/chunks/00sv_44xe29_l.js\",\"/_next/static/chunks/2_5pvf8vcqb4r.js\",\"/_next/static/chunks/0m6vwxvit8v8g.js\",\"/_next/static/chunks/122bd12isqt9p.js\",\"/_next/static/chunks/0bo60q2ondq0p.js\",\"/_next/static/chunks/0j5speuqrt-rq.js\"],\"AccordionPanel\"]\n24:[\"$\",\"span\",null,{\"children\":\"GitHub 접근 불필요\"}]\n25:[\"$\",\"span\",\"전문 감사 대체 아님\",{\"className\":\"inline-flex items-center gap-1.5 rounded-md border border-border/60 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\",\"key\":\"oel41y\"}],[\"path\",{\"d\":\"M12 8v4\",\"key\":\"1got3b\"}],[\"path\",{\"d\":\"M12 16h.01\",\"key\":\"1drbdi\"}]],\"className\":\"lucide-shield-alert size-3.5\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"전문 감사 대체 아님\"}]]}]\n26:[\"$\",\"div\",null,{\"className\":\"mt-5 flex flex-wrap items-center justify-center gap-x-2 text-xs text-muted-foreground\",\"children\":[[\"$\",\"span\",null,{\"children\":[\"월 \",[\"$\",\"span\",null,{\"className\":\"text-foreground tabular-nums\",\"children\":\"2건\"}],\" 무료 · 가입 시\",\" \",[\"$\",\"span\",null,{\"className\":\"text-foreground tabular-nums\",\"children\":\"+1건\"}]]}],[\"$\",\"span\",null,{\"className\":\"opacity-40\",\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"span\",null,{\"children\":[\"추가 크레딧\",\" \",[\"$\",\"span\",null,{\"className\":\"text-foreground tabular-nums\",\"children\":\"₩3,300\"}],\"부터\"]}],[\"$\",\"span\",null,{\"className\":\"opacity-40\",\"aria-hidden\":\"true\",\"children\":\"·\"}],[\"$\",\"$L14\",null,{\"href\":\"/pricing\",\"className\":\"underline underline-offset-2 hover:text-foreground\",\"children\":\"가격 자세히\"}]]}]\n27:[\"$\",\"section\",null,{\"className\":\"border-t bg-muted/30 px-6 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"이용 방법\"}],[\"$\",\"div\",null,{\"className\":\"mt-6 grid gap-6 sm:grid-cols-4\",\"children\":[[\"$\",\"div\",\"1\",{\"className\":\"space-y-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\",\"children\":\"1\"}],[\"$\",\"p\",null,{\"className\":\"text-sm font-medium\",\"children\":\"위험 표면 파악\"}],[\"$\",\"p\",null,{\"className\":\"text-xs text-muted-foreground [word-break:keep-all]\",\"children\":\"스택 조합이나 인증, 결제, 업로드 등의 고위험 영역을 인터뷰로 특정합니다.\"}]]}],[\"$\",\"div\",\"2\",{\"className\":\"space-y-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\",\"children\":\"2\"}],[\"$\",\"p\",null,{\"className\":\"text-sm font-medium\",\"children\":\"점검 범위 고정\"}],[\"$\",\"p\",null,{\"className\":\"text-xs text-muted-foreground [word-break:keep-all]\",\"children\":\"상황에 맞는 점검 프롬프트를 제공합니다. 근거 요청과 확실/불확실 구분 지시가 포함됩니다.\"}]]}],[\"$\",\"div\",\"3\",{\"className\":\"space-y-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\",\"children\":\"3\"}],[\"$\",\"p\",null,{\"className\":\"text-sm font-medium\",\"children\":\"에이전트 실행\"}],[\"$\",\"p\",null,{\"className\":\"text-xs text-muted-foreground [word-break:keep-all]\",\"children\":\"프롬프트를 AI 에이전트에서 실행하고, 응답을 붙여넣습니다.\"}]]}],[\"$\",\"div\",\"4\",{\"className\":\"space-y-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex size-7 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\",\"children\":\"4\"}],[\"$\",\"p\",null,{\"className\":\"text-sm font-medium\",\"children\":\"우선순위 판단\"}],[\"$\",\"p\",null,{\"className\":\"text-xs text-muted-foreground [word-break:keep-all]\",\"children\":\"결과를 우선순위로 재정리하고, 혼자 고칠 수 있는 것과 전문가 검토가 필요한 것을 구분합니다.\"}]]}]]}]]}]}]\n28:[\"$\",\"section\",null,{\"className\":\"px-6 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"1단계에서 묻는 것\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 max-w-2xl text-sm leading-relaxed [word-break:keep-all]\",\"children\":[\"추상적인 보안 지식을 묻지 않습니다. 당신의 앱이\",\" \",[\"$\",\"b\",null,{\"children\":\"무엇으로 만들어졌고\"}],\", \",[\"$\",\"b\",null,{\"children\":\"무엇을 하는지\"}],\"만 골라주면 됩니다. 보통 1~2분.\"]}],[\"$\",\"div\",null,{\"className\":\"mt-6 overflow-hidden rounded-lg border border-border/60 bg-background\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between border-b border-border/60 bg-muted/40 px-5 py-2.5 text-[11px] font-mono uppercase tracking-wider text-muted-foreground\",\"children\":[[\"$\",\"span\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"text-foreground\",\"children\":\"EXAMPLE\"}
1],\" · 예시 시나리오 — SaaS 출시 직전\"]}],[\"$\",\"span\",null,{\"children\":\"A · B · C\"}]]}],[[\"$\",\"div\",\"A. 스택\",{\"className\":\"grid grid-cols-[80px_1fr] gap-4 px-5 py-3.5 sm:grid-cols-[120px_1fr] \",\"children\":[[\"$\",\"div\",null,{\"className\":\"pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground\",\"children\":\"A. 스택\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-1.5\",\"children\":[[\"$\",\"span\",\"Next.js\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"Next.js\"]}],[\"$\",\"span\",\"Supabase\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"Supabase\"]}],[\"$\",\"span\",\"Vercel\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"Vercel\"]}],[\"$\",\"span\",\"OpenAI API\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"OpenAI API\"]}]]}]]}],[\"$\",\"div\",\"B. 기능\",{\"className\":\"grid grid-cols-[80px_1fr] gap-4 px-5 py-3.5 sm:grid-cols-[120px_1fr] border-t border-dashed border-border/60\",\"children\":[[\"$\",\"div\",null,{\"className\":\"pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground\",\"children\":\"B. 기능\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-1.5\",\"children\":[[\"$\",\"span\",\"인증\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"인증\"]}],[\"$\",\"span\",\"사용자별 데이터 격리\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"사용자별 데이터 격리\"]}],[\"$\",\"span\",\"파일 업로드\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"파일 업로드\"]}],[\"$\",\"span\",\"결제·구독\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"결제·구독\"]}],[\"$\",\"span\",\"외부 API 사용\",{\"className\":\"inline-flex items-center rounded-4xl border border-border bg-muted/40 px-2.5 py-0.5 text-xs\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1.5 size-1.5 rounded-full bg-muted-foreground/70\"}],\"외부 API 사용\"]}]]}]]}]],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-[80px_1fr] gap-4 border-t border-dashed border-border/60 px-5 py-3.5 sm:grid-cols-[120px_1fr]\",\"children\":[\"$L2c\",\"$L2d\"]}]]}],\"$L2e\",\"$L2f\"]}]}]\n29:[\"$\",\"section\",null,{\"className\":\"border-t bg-muted/30 px-6 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"찾는 건 쉽다. 결정은 어렵다.\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 max-w-2xl text-sm leading-relaxed [word-break:keep-all]\",\"children\":\"“보안 점검해줘”라고 하면 에이전트도 이슈를 꽤 찾아냅니다. 문제는 그 다음 — 발견된 12건 중 당신은 뭘 먼저 해야 할까요?\"}],[\"$\",\"div\",null,{\"className\":\"relative mt-6 grid grid-cols-1 gap-4 md:grid-cols-2 md:gap-9 lg:-mx-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col rounded-lg border border-border bg-background\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b border-border/60 px-5 py-3.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-widest text-muted-foreground\",\"children\":\"A. RAW OUTPUT\"}],[\"$\",\"div\",null,{\"className\":\"mt-1 text-sm font-medium text-muted-foreground\",\"children\":\"에이전트가 돌려준 것\"}]]}],[\"$\",\"div\",null,{\"className\":\"relative max-h-[420px] overflow-hidden px-5 pt-3.5 font-mono text-xs leading-[1.75] text-foreground
1/80\",\"children\":[[\"$\",\"ol\",null,{\"className\":\"list-decimal space-y-1.5 pb-10 pl-5\",\"children\":[[\"$\",\"li\",\"의존성 패키지 중 일부 버전이 낡았습니다 (eslint, postcss 등)\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"의존성 패키지 중 일부 버전이 낡았습니다 (eslint, postcss 등)\"}],[\"$\",\"li\",\"결제 처리 시 클라이언트에서 받은 금액을 그대로 사용하는 코드가 보입니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"결제 처리 시 클라이언트에서 받은 금액을 그대로 사용하는 코드가 보입니다\"}],[\"$\",\"li\",\"CORS 설정이 와일드카드(*)로 되어 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"CORS 설정이 와일드카드(*)로 되어 있습니다\"}],[\"$\",\"li\",\"HTTPS 적용 권장드립니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"HTTPS 적용 권장드립니다\"}],[\"$\",\"li\",\"파일 업로드 핸들러에서 MIME 타입 검증이 없습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"파일 업로드 핸들러에서 MIME 타입 검증이 없습니다\"}],[\"$\",\"li\",\"console.log로 민감 정보가 출력될 수 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"console.log로 민감 정보가 출력될 수 있습니다\"}],[\"$\",\"li\",\"Supabase RLS 정책이 일부 테이블에서 비활성화되어 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"Supabase RLS 정책이 일부 테이블에서 비활성화되어 있습니다\"}],[\"$\",\"li\",\".env 파일이 .gitignore에 포함되지 않아 레포에 커밋될 위험이 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\".env 파일이 .gitignore에 포함되지 않아 레포에 커밋될 위험이 있습니다\"}],[\"$\",\"li\",\"OpenAI API 키가 클라이언트 번들에 포함될 가능성이 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"OpenAI API 키가 클라이언트 번들에 포함될 가능성이 있습니다\"}],[\"$\",\"li\",\"favicon이 설정되어 있지 않습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"favicon이 설정되어 있지 않습니다\"}],[\"$\",\"li\",\"Rate limiting 도입을 검토하세요\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"Rate limiting 도입을 검토하세요\"}],[\"$\",\"li\",\"에러 메시지에 스택트레이스가 노출될 수 있습니다\",{\"className\":\"marker:text-muted-foreground\",\"children\":\"에러 메시지에 스택트레이스가 노출될 수 있습니다\"}]]}],[\"$\",\"div\",null,{\"className\":\"pointer-events-none absolute inset-x-0 bottom-0 h-20 bg-gradient-to-b from-transparent to-background\"}]]}],[\"$\",\"div\",null,{\"className\":\"border-t border-border/60 px-5 py-3 text-xs text-muted-foreground [word-break:keep-all]\",\"children\":\"다 맞는 말입니다. 그런데 여기서 뭘 먼저 해야 할까요?\"}]]}],[\"$\",\"div\",null,{\"className\":\"pointer-events-none absolute inset-y-0 left-1/2 hidden -translate-x-1/2 flex-col items-center md:flex\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"div\",null,{\"className\":\"w-px flex-1 bg-border/60\"}],[\"$\",\"div\",null,{\"className\":\"rounded-full border border-border bg-background px-2.5 py-1 font-mono text-[10px] tracking-widest whitespace-nowrap text-muted-foreground\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mr-1 text-foreground\",\"children\":\"→\"}],\"재정렬\"]}],[\"$\",\"div\",null,{\"className\":\"w-px flex-1 bg-border/60\"}]]}],[\"$\",\"div\",null,{\"className\":\"font-mono text-[10px] tracking-widest text-muted-foreground text-center md:hidden\",\"aria-hidden\":\"true\",\"children\":\"↓ 재정렬\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col rounded-lg border border-border bg-background\",\"children\":[\"$L30\",\"$L31\",\"$L32\"]}]]}]]}]}]\n2a:[\"$\",\"section\",null,{\"className\":\"px-6 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto grid max-w-3xl gap-10 sm:grid-cols-2\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"Preflight이 하는 일\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3\",\"children\":[[\"$\",\"li\",\"범위 정의 — 뭘 봐야 하는지 고정\",{\"className\":\"flex items-start gap-2.5 text-sm\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"1mglay\"}],[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\",\"key\":\"1vlfrh\"}],[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\",\"key\":\"1c9p78\"}]],\"className\":\"lucide-target mt-0.5 size-4 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"className\":\"[word-break:keep-all]\",\"children\":\"범위 정의 — 뭘 봐야 하는지 고정\"}]]}],[\"$\",\"li\",\"근거 기준 — 확인된 문제와 추정을 구분\",{\"className\":\"flex items-start gap-2.5 text-sm\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M12 3v18\",\"key\":\"108xh3\"}],[\"path\",{\"d\":\"m19 8 3 8a5 5 0 0 1-6 0zV7\",\"key\":\"zcdpyk\"}],[\"path\",{\"d\":\"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1\",\"key\":\"1yorad\"}],[\"path\",{\"d\":\"m5 8 3 8a5 5 0 0 1-6 0zV7\",\"key\":\"eua70x\"}],[\"path\",{\"d\":\"M7 21h10\",\"key\":\"1b0cd5\"}]],\"className\":\"lucide-scale mt-0.5 size-4 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"className\":\"[word-break:keep-all]\",\"children\":\"근거 기준 — 확인된 문제와 추정을 구분\"}]]}],[\"$\",\"li\",\"우선순위 — 지금 막아야 할 것부터 정리\",{\"className\":\"flex items-start gap-2.5 text-sm\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m21 16-4 4-4-4\",\"key\":\"f6ql7i\"}],[\"path\",{\"d\":\"M17 20V4\",\"key\":\"1ejh1v\"}],[\"path\",{\"d\":\"m3 8 4-4 4 4\",\"key\":\"11wl7u\"}],[\"path\",{\"d\":\"M7 4v16\",\"key\":\"1glfcx\"}]],\"className\":\"lucide-arrow-up-down mt-0.5 size-4 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"className\":\"[word-break:keep-all]\",\"children\":\"우선순위 — 지금 막아야 할 것부터 정리\"}]]}],[\"$\",\"li\",\"에스컬레이션 — 혼자 고칠 수 있는지, 전문가가 필요한지 분리\",{\"className\":\"flex items-start gap-2.5 text-sm\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m16 11 2 2 4-4\",\"key\":\"9rsbq5\"}],[\"path\",{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\",\"key\":\"1yyitq\"}],[\"circle\",{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\",\"key\":\"nufk8\"}]],\"className\":\"lucide-user-check mt-0.5 size-4 shrink-0 text-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"className\":\"[word-break:keep-all]\",\"children\":\"에스컬레이션 — 혼자 고칠 수 있는지, 전문가가 필요한지 분리\"}]]}]]}]]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"Preflight이 하지 않는 일\"}],[\"$\",\"ul\",null,{\"className\":\"mt-4 space-y-3 text-sm text-muted-foreground\",\"children\":[[\"$\",\"li\",\"전문 보안 감사를 대체\",{\"className\":\"flex items-start gap-2.5\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M18 6 6 18\",\"key\":\"1bl5f8\"}],[\"path\",{\"d\":\"m6 6 12 12\",\"key\":\"d8bk6v\"}]],\"className\":\"lucide-x mt-0.5 size-4 shrink-0\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"전문 보안 감사를 대체\"}]]}],[\"$\",\"li\",\"코드를 자동으로 수정\",{\"className\":\"flex items-start gap-2.5\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2a:props:children:props:children:1:props:children:1:props:children:0:props:children:0:props:iconNode\",\"className\":\"lucide-x mt-0.5 size-4 shrink-0\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"코드를 자동으로 수정\"}]]}],[\"$\",\"li\",\"실제 인프라를 스캔\",{\"className\":\"flex items-start gap-2.5\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2a:props:children:props:children:1:props:children:1:props:children:0:props:children:0:props:iconNode\",\"className\":\"lucide-x mt-0.5 size-4 shrink-0\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"실제 인프라를 스캔\"}]]}
1],[\"$\",\"li\",\"GitHub이나 저장소 접근을 요구\",{\"className\":\"flex items-start gap-2.5\",\"children\":[[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2a:props:children:props:children:1:props:children:1:props:children:0:props:children:0:props:iconNode\",\"className\":\"lucide-x mt-0.5 size-4 shrink-0\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"GitHub이나 저장소 접근을 요구\"}]]}]]}]]}]]}]}]\n2b:[\"$\",\"section\",null,{\"className\":\"border-t bg-muted/30 px-6 py-16\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"자주 받는 질문\"}],[\"$\",\"$L33\",null,{\"data-slot\":\"accordion\",\"className\":\"flex w-full flex-col mt-5 border-t border-border\",\"children\":[[\"$\",\"$L34\",\"얼마나 걸리나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-0\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"얼마나 걸리나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m6 9 6 6 6-6\",\"key\":\"qrunsl\"}]],\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m18 15-6-6-6 6\",\"key\":\"153udz\"}]],\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"인터뷰 1~2분, 에이전트 실행 5~10분, 리포트 생성 1분.\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"전체 10~15분 내외\"}],\"입니다. 리포트는 언제든 다시 열어볼 수 있습니다.\"]}]}]]}],[\"$\",\"$L34\",\"코드를 업로드하나요? GitHub 접근이 필요한가요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-1\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"코드를 업로드하나요? GitHub 접근이 필요한가요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":\"$L38\"}]}]]}],\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\"]}],\"$L40\",\"$L41\"]}]}]\n2c:[\"$\",\"div\",null,{\"className\":\"pt-1 text-[11px] font-medium uppercase tracking-wider text-muted-foreground\",\"children\":\"C. 단계\"}]\n2d:[\"$\",\"div\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center rounded-4xl border border-primary/40 bg-primary/5 px-3 py-0.5 text-xs font-medium\",\"children\":\"출시 직전\"}]}]\n2e:[\"$\",\"div\",null,{\"className\":\"mt-4 rounded-r-lg border-l-2 border-foreground
1/30 bg-muted/40 px-4 py-3.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 text-sm font-medium\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-muted-foreground\",\"children\":\"[?]\"}],[\"$\",\"span\",null,{\"children\":\"뭘 선택해야 할지 모르겠을 때\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1.5 text-xs leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"버튼 하나로 \",[\"$\",\"b\",null,{\"children\":\"프롬프트\"}],\"가 만들어집니다. Cursor·Claude Code·Codex에 붙여넣으면 에이전트가 프로젝트를 실제로 읽고 답해 주고, 그 답을 그대로 다시 붙여넣으면 — 바뀔 항목을 먼저 보여준 뒤 한 번에 반영합니다. 손으로 옮겨 적지 않아도 됩니다.\"]}]]}]\n2f:[\"$\",\"p\",null,{\"className\":\"mt-5 text-center font-mono text-[11px] tracking-wider text-muted-foreground/70\",\"children\":\"※ 실제 입력 화면은 스택 칩 픽커 + 체크박스 + 라디오 — 위는 요약 표시용 예시.\"}]\n30:[\"$\",\"div\",null,{\"className\":\"border-b border-border/60 px-5 py-3.5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-widest text-muted-foreground\",\"children\":\"B. PREFLIGHT REPORT\"}],[\"$\",\"div\",null,{\"className\":\"mt-1 text-sm font-medium\",\"children\":\"Preflight이 돌려주는 것\"}]]}]\n31:[\"$\",\"div\",null,{\"className\":\"px-5 pb-3 pt-2\",\"children\":[[\"$\",\"div\",null,{\"className\":\"border-b border-dashed border-border/60 py-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-block rounded-[4px] bg-destructive/10 px-2 py-0.5 text-[10px] font-mono font-medium tracking-wider text-destructive\",\"children\":\"BLOCK\"}],[\"$\",\"span\",null,{\"className\":\"text-xs font-medium\",\"children\":\"지금 당장 수정\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-muted-foreground\",\"children\":\"· 3건\"}]]}],[\"$\",\"ul\",null,{\"className\":\"space-y-1 pl-0.5 text-[13px] leading-relaxed\",\"children\":[[\"$\",\"li\",\"결제 금액이 클라이언트 요청 본문에서 바로 사용됨\",{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"결제 금액이 클라이언트 요청 본문에서 바로 사용됨\"}]]}],[\"$\",\"li\",\"업로드 파일 MIME 검증 없음\",{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"업로드 파일 MIME 검증 없음\"}]]}],[\"$\",\"li\",\".env 파일이 .gitignore에 빠져 있음\",{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\".env 파일이 .gitignore에 빠져 있음\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"border-b border-dashed border-border/60 py-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-block rounded-[4px] bg-amber-100 px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-amber-700 dark:bg-amber-950/40 dark:text-amber-400\",\"children\":\"SOON\"}],[\"$\",\"span\",null,{\"className\":\"text-xs font-medium\",\"children\":\"출시 전 수정\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-muted-foreground\",\"children\":\"· 1건\"}]]}],[\"$\",\"ul\",null,{\"className\":\"space-y-1 pl-0.5 text-[13px] leading-relaxed\",\"children\":[[\"$\",\"li\",\"Supabase RLS 일부 테이블 비활성\",{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"Supabase RLS 일부 테이블 비활성\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"border-b border-dashed border-border/60 py-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-block rounded-[4px] bg-muted px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-muted-foreground\",\"children\":\"UNCERTAIN\"}],[\"$\",\"span\",null,{\"className\":\"text-xs font-medium\",\"children\":\"불확실\"}],[\"$\",\"span\",null,{\"className\":\"text-xs text-muted-foreground\",\"children\":\"· 1건\"}]]}],[\"$\",\"ul\",null,{\"className\":\"space-y-1 pl-0.5 text-[13px] leading-relaxed\",\"children\":[\"$\",\"li\",null,{\"className\":\"flex gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"mt-2 inline-block h-px w-2 shrink-0 bg-muted-foreground\",\"aria-hidden\":\"true\"}],[\"$\",\"span\",null,{\"children\":\"OpenAI API 키가 클라이언트 번들에 실제 포함되는지 추가 확인 필요\"}]]}]}]]}],[\"$\",\"div\",null,{\"className\":\"py-3 text-muted-foreground\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center gap-2.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-block rounded-[4px] border border-dashed border-border/70 dark:border-border px-2 py-0.5 font-mono text-[10px] font-medium tracking-wider text-muted-foreground\",\"children\":\"LATER\"}],[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"나중에 개선\"}],[\"$\",\"span\",null,{\"className\":\"text-xs\",\"children\":\"· 7건\"}]]}],[\"$\",\"p\",null,{\"className\":\"text-xs leading-relaxed [word-break:keep-all]\",\"children\":[\"의존성 업데이트\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"CORS 설정\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"HTTPS 적용\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"console.log 정리\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"favicon\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"Rate limiting\",[\"$\",\"span\",null,{\"className\":\"mx-1.5 opacity-50\",\"children\":\"·\"}],\"에러 스택트레이스\"]}]]}]]}]\n32:[\"$\",\"div\",null,{\"className\":\"border-t border-border/60 px-5 py-3 text-xs leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"같은 응답, 다른 순서.\"}],\" \",\"“안전해 보입니다”가 아니라 “지금 이걸 먼저 하세요”.\"]}]\n38:[[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"아니요.\"}],\" \",\"Preflight은 저장소 접근을 요구하지 않습니다. 점검 프롬프트를 사용자 AI 에이전트에서 직접 돌리고, 그 응답 텍스트를 붙여넣는 방식입니다.\",\" \",[\"$\",\"$L14\",null,{\"href\":\"/blog/why-no-code-upload\",\"className\":\"underline underline-offset-2 hover:text-foreground\",\"children\":\"이 글\"}],\"에서 보다 자세한 설명을 확인하실 수 있습니다.\"]\n39:[\"$\",\"$L34\",\"제 점검 데이터는 어떻게 보관되나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-2\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"제 점검 데이터는 어떻게 보관되나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"인터뷰 답변, 붙여넣은 응답, 리포트 본문은\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"기본 30일\"}],\"이 지나면 자동으로 삭제됩니다. 그 전이라도 계정에서 직접 삭제할 수 있고, 무료·유료 동일 정책입니다. 자세한 내용은\",\" \",[\"$\",\"$L14\",null,{\"href\":\"/privacy\",\"className\":\"underline underline-offset-2 hover:text-foreground\",\"children\":\"개인정보처리방침\"}],\"을 확인하세요.\"]}]}]]}]\n3a:[\"$\",\"$L34\",\"AI 에이전트가 없어도 쓸 수 있나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-3\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"AI 에이전트가 없어도 쓸 수 있나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"점검 프롬프트는 Claude Code, Codex, Cursor, Lovable, Bolt.new, Cline, Windsurf, Copilot 등 주요 코딩 에이전트 대부분에서 실행됩니다. 단 도구마다\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"‘분석 전용 모드’(Ask / Chat / Plan)\"}],\"로 한 번 바꿔주셔야 안전해요 — 자세한 도구별 사용법은\",\" \",[\"$\",\"$L14\",null,{\"href\":\"/guide/supported-platforms\",\"className\":\"underline underline-offset-2 hover:text-foreground\",\"children\":\"지원 플랫폼 가이드\"}],\"에 정리되어 있습니다. 에이전트를 전혀 쓰지 않는 경우에는\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"추천하지 않습니다\"}],\" \",\"— 응답 없이는 리포트가 생성되지 않습니다.\"]}]}]]}]\n3b:[\"$\",\"$L34\",\"내가 만들지 않은 사이트도 점검할 수 있나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-4\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"내가 만들지 않은 사이트도 점검할 수 있나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"Preflight은\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"내가 만든\"}],\" \",\"프로젝트의 배포 전 점검을 위한 도구입니다. 외부 사이트를 겨냥한 정찰이나 취약점 탐색 용도로는 만들어지지 않았습니다.\"]}]}]]}]\n3c:[\"$\",\"$L34\",\"결과가 틀릴 수도 있나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-5\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"결과가 틀릴 수도 있나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNod
1e\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"틀릴 수 있습니다.\"}],\" \",\"Preflight은 전문 보안 감사를 대체하지 않습니다. 각 이슈에는 근거 수준이 표시되고, 확실하지 않은 항목은\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono\",\"children\":\"UNCERTAIN\"}],\"(불확실)로 분리됩니다. 중요한 판단은 전문가 검토와 함께 하세요.\"]}]}]]}]\n3d:[\"$\",\"$L34\",\"점검한 내용이 고쳐졌는지 어떻게 확인하나요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-6\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"점검한 내용이 고쳐졌는지 어떻게 확인하나요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"리포트 페이지에서\",\" \",[\"$\",\"strong\",null,{\"className\":\"font-medium text-foreground\",\"children\":\"같은 설정으로 재점검\"}],\"을 시작할 수 있습니다. 수정한 내용을 요약하고 에이전트 응답을 다시 붙여넣으면, 이전 리포트와 비교해 해결됨 / 남음 / 확인 필요 / 새 항목으로 정리합니다.\"]}]}]]}]\n3e:[\"$\",\"$L34\",\"이름이 같은 다른 Preflight을 본 것 같은데요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-7\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"이름이 같은 다른 Preflight을 본 것 같은데요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"맞습니다. Preflight이라는 이름을 쓰는 개발 도구가 여럿 있고, 웹 표준에도\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono text-xs\",\"children\":\"CORS preflight request\"}],\" \",\"라는 같은 이름의 용어가 있습니다. 여기는\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono text-xs\",\"children\":\"launchpreflight.com\"}],\" \",\"— 한국어 바이브코딩 보안 사전점검 도구입니다. 어떤 도구들과 헷갈리기 쉬운지\",\" \",[\"$\",\"$L14\",null,{\"href\":\"/guide/which-preflight\",\"className\":\"underline underline-offset-2 hover:text-foreground\",\"children\":\"구분 페이지\"}],\"에 정리해 두었습니다.\"]}]}]]}]\n3f:[\"$\",\"$L34\",\"만든 곳은 어디인가요?\",{\"data-slot\":\"accordion-item\",\"className\":\"not-last:border-b\",\"value\":\"faq-8\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"flex\",\"children\":[\"$\",\"$L36\",null,{\"data-slot\":\"accordion-trigger\",\"className\":\"group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-lg border border-transparent text-left transition-all outline-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground py-4 text-sm font-medium hover:no-underline\",\"children\":[\"만든 곳은 어디인가요?\",[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:1:props:iconNode\",\"className\":\"lucide-chevron-down pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\",\"data-slot\":\"accordion-trigger-icon\"}],[\"$\",\"$L23\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$2b:props:children:props:children:1:props:children:0:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-chevron-up pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\",\"data-slot\":\"accordion-trigger-icon\"}]]}]}],[\"$\",\"$L37\",null,{\"data-slot\":\"accordion-content\",\"className\":\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\",\"children\":[\"$\",\"div\",null,{\"className\":\"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [\u0026_a]:underline [\u0026_a]:underline-offset-3 [\u0026_a]:hover:text-foreground [\u0026_p:not(:last-child)]:mb-4 text-sm leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":[\"Preflight은 Fount Lab에서 만듭니다. 문의는\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono\",\"children\":\"[email protected]\"}],\".\"]}]}]]}]\n40:[\"$\",\"section\",null,{\"aria-labelledby\":\"verification-assets-heading\",\"className\":\"mt-16 border-t border-border pt-10\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"verification-assets-heading\",\"className\":\"mb-6 text-center text-sm font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"직접 확인해 보세요\"}],[\"$\",\"div\",null,{\"className\":\"grid gap-3 sm:gap-4 sm:grid-cols-3\",\"children\":[[\"$\",\"$L14\",null,{\"href\":\"/sample-report\",\"className\":\"group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"샘플 리포트\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-foreground\",\"children\":\"실제 리포트가 어떻게 생겼는지\"}],[\"$\",\"span\",null,{\"className\":\"text-xs leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":\"가상의 SaaS 시나리오 1ê±´ — 4-bucket 분류와 근거 수준 표기 방식을 그대로.\"}],[\"$\",\"span\",null,{\"className\":\"mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground\",\"children\":\"보기 →\"}]]}],[\"$\",\"$L14\",null,{\"href\":\"/standards/security\",\"className\":\"group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"점검 기준\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-foreground\",\"children\":\"기준을 어떻게 정하고 고쳐가는지\"}],[\"$\",\"span\",null,{\"className\":\"text-xs leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":\"스택·기능별 점검 항목과 분류 정책, 그리고 변경 이력까지 공개로.\"}],[\"$\",\"span\",null,{\"className\":\"mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground\",\"children\":\"보기 →\"}]]}],[\"$\",\"$L14\",null,{\"href\":\"/stamps\",\"className\":\"group flex flex-col gap-2 rounded-lg border border-border/60 bg-muted/30 p-5 transition-colors hover:bg-muted/60\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\",\"children\":\"제작자 진술\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-medium text-foreground\",\"children\":\"실제로 점검을 마친 제작자 진술들\"}],[\"$\",\"span\",null,{\"className\":\"text-xs leading-relaxed text-muted-foreground [word-break:keep-all]\",\"children\":\"익명 콜사인으로 공개된 실물 진술을 그대로 ë³¼ 수 있습니다.\"}],null,[\"$\",\"span\",null,{\"className\":\"mt-auto pt-2 text-xs text-muted-foreground group-hover:text-foreground\",\"children\":\"보기 →\"}]]}]]}]]}]\n41:[\"$\",\"div\",null,{\"className\":\"mt-12 flex flex-col items-center gap-3 border-t border-border pt-10 text-center\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-sm text-muted-foreground\",\"children\":\"점검은 10~15분. 월 2ê±´ 무료.\"}],[\"$\",\"$L14\",null,{\"href\":\"/start\",\"className\":\"group/button inline-flex shrink-0 cursor-pointer items-center justify-center rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-
1px disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [\u0026_svg]:pointer-events-none [\u0026_svg]:shrink-0 [\u0026_svg:not([class*='size-'])]:size-4 border border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50 h-11 gap-2 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\"children\":\"점검 시작하기\"}]]}]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.