diff --git a/debug-vercel-html.cjs b/debug-vercel-html.cjs new file mode 100644 index 0000000..d449ec9 --- /dev/null +++ b/debug-vercel-html.cjs @@ -0,0 +1,88 @@ +const { chromium } = require("playwright"); + +async function debugVercelHTML() { + console.log("πŸ” Vercel HTML 상세 뢄석 μ‹œμž‘"); + + const browser = await chromium.launch({ headless: true }); + const page = await browser.newPage(); + + try { + await page.goto("https://zellyy-finance.vercel.app/", { + waitUntil: "networkidle", + timeout: 30000, + }); + + // HTML 전체 λ‚΄μš© 좜λ ₯ + const htmlContent = await page.content(); + console.log("πŸ“„ HTML 전체 λ‚΄μš©:"); + console.log("=".repeat(80)); + console.log(htmlContent); + console.log("=".repeat(80)); + + // head νƒœκ·Έ λ‚΄μš© 확인 + const headContent = await page.locator("head").innerHTML(); + console.log("\nπŸ“ HEAD νƒœκ·Έ λ‚΄μš©:"); + console.log(headContent); + + // body νƒœκ·Έ λ‚΄μš© 확인 + const bodyContent = await page.locator("body").innerHTML(); + console.log("\nπŸ“ BODY νƒœκ·Έ λ‚΄μš©:"); + console.log(bodyContent); + + // JavaScript μ—λŸ¬ 확인 + const jsErrors = []; + page.on("pageerror", (error) => { + jsErrors.push(error.message); + }); + + // νŽ˜μ΄μ§€ μƒˆλ‘œκ³ μΉ¨ν•˜μ—¬ μ—λŸ¬ 캑처 + await page.reload({ waitUntil: "networkidle" }); + + console.log("\n🚨 JavaScript μ—λŸ¬λ“€:"); + if (jsErrors.length === 0) { + console.log("μ—λŸ¬ μ—†μŒ"); + } else { + jsErrors.forEach((error, index) => { + console.log(`${index + 1}. ${error}`); + }); + } + + // λ„€νŠΈμ›Œν¬ μš”μ²­ 확인 + const failedRequests = []; + page.on("requestfailed", (request) => { + failedRequests.push( + `${request.method()} ${request.url()} - ${request.failure()?.errorText}` + ); + }); + + await page.reload({ waitUntil: "networkidle" }); + + console.log("\n🌐 μ‹€νŒ¨ν•œ λ„€νŠΈμ›Œν¬ μš”μ²­λ“€:"); + if (failedRequests.length === 0) { + console.log("μ‹€νŒ¨ν•œ μš”μ²­ μ—†μŒ"); + } else { + failedRequests.forEach((request, index) => { + console.log(`${index + 1}. ${request}`); + }); + } + + // DOM μƒνƒœ 확인 + const rootElement = await page.locator("#root").count(); + console.log( + `\n🎯 #root μš”μ†Œ 쑴재: ${rootElement > 0 ? "βœ… 있음" : "❌ μ—†μŒ"}` + ); + + if (rootElement > 0) { + const rootHTML = await page.locator("#root").innerHTML(); + console.log("πŸ“ #root λ‚΄μš©:"); + console.log(rootHTML); + } + } catch (error) { + console.error("❌ 디버깅 쀑 였λ₯˜:", error.message); + } finally { + await browser.close(); + console.log("🏁 디버깅 μ™„λ£Œ"); + } +} + +debugVercelHTML().catch(console.error); diff --git a/src/BasicApp.tsx b/src/BasicApp.tsx index 354e643..57213eb 100644 --- a/src/BasicApp.tsx +++ b/src/BasicApp.tsx @@ -13,7 +13,7 @@ const BasicApp: React.FC = () => { minHeight: "100vh", }} > -

βœ… Zellyy Finance - κΈ°λ³Έ ν…ŒμŠ€νŠΈ

+

βœ… Zellyy Finance - κΈ°λ³Έ ν…ŒμŠ€νŠΈ (v2)

이 νŽ˜μ΄μ§€κ°€ 보인닀면 React 앱이 μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.