🛠 문제 개요

image.png

에러 메시지

Error fetching user data: B [Error]: Dynamic server usage: Route /api/userInfo couldn't be rendered statically because it used `request.url`.

발생 환경

문제 원인

  1. Next.js는 기본적으로 API를 정적으로 최적화(SSG)하려고 함.
  2. request.url을 사용하면 요청이 들어와야만 값을 알 수 있음.
  3. 정적 생성(SSG)에서는 요청이 없기 때문에 request.url이 실행될 수 없음.
  4. 따라서 Next.js가 해당 API를 정적으로 생성할 수 없다는 에러를 발생시킴.

🛠 해결 방법

방법 1: API를 강제로 동적(Dynamic)으로 설정

Next.js에게 해당 API를 동적으로 실행하도록 강제 설정하면 문제를 해결할 수 있습니다.

🔹 코드 수정 (force-dynamic 추가)

export const dynamic = 'force-dynamic'; // ✅ API를 동적 처리로 설정

export async function GET(req: Request) {
  const { searchParams } = new URL(req.url); // ✅ 이제 사용 가능
  const userId = searchParams.get('userId');

  return NextResponse.json({ userId });
}