inflearn logo
강의

Course

Instructor

Next YTMusic Clone Coding from the Basics (with next.js 14, UI Master)

8.4 song card - 2

정적배포

Resolved

196

SJ

155 asked

0

안녕하세요 ! 강의를 따라하고있다가

문득 생각이 들었는데요.

channel / [id] 이렇게 동적 페이지가 나오게 되면

정적 배포를 하게 될땐

어떤 방식으로 하시게 되나요 ?

react 인터랙티브-웹 클론코딩 next.js tailwind-css zustand

Answer 1

0

dodocoding

강의에서 다루지 않는 부분인데, SSR을 사용하는 중요한 이유중 하나 입니다.!

  • 다이나믹 Routes 에서 channel / [id] 의 id 부분을 결정해야 합니다.

  • id 1번에는 어떤 데이터를 가져와서 정적 페이지를 만들지

  • id 2번에는 어떤 데이터를 가져와서 정적 페이지를 만들지를요.

export async function generateStaticParams() {
  const posts = await fetch('https://.../posts').then((res) => res.json())
 
  return posts.map((post) => ({
    id: post.slug,
  }))
}

위 코드를 보시면 id 부분을 결정할 수 있는 특별함수 'generateStaticParams' 가 있습니다.

예를들어 posts가 1번부터 100번까지 나오면 총 100개의 static page가 만들어지겠죠!

 

https://nextjs.org/docs/app/building-your-application/routing/dynamic-routes#generating-static-params

 

참고 GPT 요약

Next.js의 App Router에서 동적 라우트에 페이지들을 동적으로 배포하기 위해서는 `generateStaticParams` 함수를 사용하여 빌드 시점에 동적 경로를 생성할 수 있습니다. 아래는 그 방법을 설명하는 예제입니다:

1. **폴더 구조 설정**:
   ```
   /app
     /products
       /[id]
         page.js
   ```

2. **`page.js` 파일 작성**:
   ```jsx
   export default function ProductPage({ params }) {
     return (
       <div>
         <h1>Product ID: {params.id}</h1>
       </div>
     );
   }
   ```

3. **`generateStaticParams` 함수 사용**:
   ```jsx
   export async function generateStaticParams() {
     const products = await fetch('https://api.example.com/products').then(res => res.json());
     return products.map(product => ({ id: product.id }));
   }
   ```

이렇게 하면 빌드 시점에 동적 라우트가 생성되어, 각 제품 페이지가 정적으로 생성됩니다. 자세한 내용은 [Next.js 문서](https://nextjs.org/docs/app/building-your-application/routing/dynamic-routes#generating-static-params)를 참고하세요.

 

0

SJ

예를들어 posts가 1번부터 100번까지 나오면 총 100개의 static page가 만들어지겠죠!

말씀주셨는데요 ㅎ

그렇다면 처음에는 정적 페이지가 하나도 생성이 되지 않다가 사용자에 따라서 정적 페이지수가 증가하게 되나요 ?

4.6강 초기 로딩 속도 케이스 비교

0

85

2

Sidebar & Header 컴포넌트 등 레이아웃 설정 방식

0

89

3

문의드립니다.

0

145

3

Vercel signup이 안되요,, 계속 제 깃허브 계정은 추가 인증이 필요하다며 registration@vercel.com에 문의를 하라고 하네요,,, 이럴땐 진행을 어찌해야할까요,,,

1

101

2

에러, 로딩 내용 페이지를 모든 페이지에 다 만드는 이유가 따로 있나요?

2

158

3

3.2, 3.3 화면에 아무것도 나오지 않고 있습니다!

0

210

3

코드가 왜 그런지 모르겠는데, 이럴땐 어떻게 공부해야하나요?

1

221

3

강의외 복잡한 ui 입력폼 관련 질문 있습니다

1

218

2

npx랑 yarn이랑 같이 써도 되나요?

0

437

2

article / section 태그에 관해

0

179

1

카테고리 변경 시 이미지 로딩

1

191

2

next zustand 사용 시 문의

0

474

2

component 파일에서는 tsx파일이 아니라 jsx 파일을 쓰는 이유를 알 수 있을까요?

1

175

2

versel 을 통한 배포를 하는 것과 (홈서버 + 클라우드 플래어 프록시)를 하는 것을 비교해주실 수 있나요?

1

175

1

선생님 죄송한대

1

152

1

깃 push가 안되서 ssh를 한참해메고 있습니다. ㅠㅠ

1

143

1

Chapter 7 영상 화면이 안보입니다.

0

273

2

오류발생 문제입니다.

1

229

1

질문있습니다.

1

181

1

11.5 Channel 노래,앨범 section 강의중

0

153

1

소스 수정 후 자동 컴파일 문의드립니다.

1

281

2

zustand 상태관리

0

333

1

state에서 buffer랑 time이 안 나옵니다

0

199

2

components 들은 jsx 로 만드신 이유

0

311

3