diff --git a/package-lock.json b/package-lock.json
index c8f5c70..a01150e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,6 +23,7 @@
"@tanstack/react-virtual": "^3.13.12",
"@tosspayments/payment-widget-sdk": "^0.12.0",
"@tosspayments/tosspayments-sdk": "^2.4.0",
+ "@vercel/speed-insights": "^1.2.0",
"axios": "^1.11.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
@@ -10030,6 +10031,41 @@
"win32"
]
},
+ "node_modules/@vercel/speed-insights": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.2.0.tgz",
+ "integrity": "sha512-y9GVzrUJ2xmgtQlzFP2KhVRoCglwfRQgjyfY607aU0hh0Un6d0OUyrJkjuAlsV18qR4zfoFPs/BiIj9YDS6Wzw==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "@sveltejs/kit": "^1 || ^2",
+ "next": ">= 13",
+ "react": "^18 || ^19 || ^19.0.0-rc",
+ "svelte": ">= 4",
+ "vue": "^3",
+ "vue-router": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@sveltejs/kit": {
+ "optional": true
+ },
+ "next": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "svelte": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@vitest/expect": {
"version": "0.34.7",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.7.tgz",
diff --git a/package.json b/package.json
index f0f6f17..6c6cf3e 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
"@tanstack/react-virtual": "^3.13.12",
"@tosspayments/payment-widget-sdk": "^0.12.0",
"@tosspayments/tosspayments-sdk": "^2.4.0",
+ "@vercel/speed-insights": "^1.2.0",
"axios": "^1.11.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index f04898d..76857cd 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,6 +1,7 @@
import type { Metadata } from 'next';
import { Suspense } from 'react';
import { pretendard } from '@/lib/fonts';
+import { SpeedInsights } from '@vercel/speed-insights/next';
import ClientLayout from '@/components/common/ClientLayout';
import './globals.css';
@@ -70,6 +71,7 @@ export default function RootLayout({
{children}
+