본문 바로가기

리액트61

[공식문서] NextJS - Dynamic Routes 우리는 인덱스 페이지에 블로그 데이터를 채웠지만 아직 개별 블로그 페이지를 만들지 않았습니다 (여기에 원하는 결과가 있습니다). 이러한 페이지의 URL을 블로그 데이터에 따라 다르게 만들려면 동적 라우트를 사용해야합니다. 이 레슨에서는 다음을 배우게 됩니다: getStaticPaths를 사용하여 동적 라우트를 가진 페이지를 정적으로 생성하는 방법. 각 블로그 게시물의 데이터를 가져오기 위해 getStaticProps를 작성하는 방법. remark를 사용하여 마크다운을 렌더링하는 방법. 날짜 문자열을 깔끔하게 서식화하는 방법. 동적 라우트를 가진 페이지로 연결하는 방법. 동적 라우트에 관한 유용한 정보. 시작 코드 다운로드 (선택 사항) 이전 레슨에서 진행 중이 아니라면 이 레슨을 위한 시작 코드를 다운로.. 2023. 9. 12.
[공식문서] NextJS - Pre-rendering and Data Fetching #9 요청 시간에 데이터 가져오기 빌드 시간이 아닌 요청 시간에 데이터를 가져와야 하는 경우 Server-side Rendering을 시도할 수 있습니다. 서버 사이드 렌더링을 사용하려면 페이지에서 getStaticProps 대신 getServerSideProps를 내보내야(export) 합니다. getServerSideProps 사용 다음은 getServerSideProps의 시작 코드입니다. 우리의 블로그 예제에는 필요하지 않으므로 구현하지 않겠습니다. export async function getServerSideProps(context) { return { props: { // props for your component }, }; } 왜냐하면 getServerSideProps는 요청 시간에 호출되므로.. 2023. 9. 8.
[공식문서] NextJS - Pre-rendering and Data Fetching #8 getStaticProps 세부 정보 getStaticProps에 대해 알아야 할 몇 가지 중요한 정보가 있습니다. 외부 API 가져오거나 데이터베이스 쿼리하기 lib/posts.js에서는 파일 시스템에서 데이터를 가져오는 getSortedPostsData를 구현했습니다. 그러나 외부 API 엔드포인트와 같은 다 른 소스에서 데이터를 가져올 수도 있습니다. 이렇게 하면 아무 문제없이 작동합니다. export async function getSortedPostsData() { // Instead of the file system, // fetch post data from an external API endpoint const res = await fetch('..'); return res.json(); .. 2023. 9. 8.
[공식문서] NextJS - Pre-rendering and Data Fetching #7 getStaticProps 구현하기 Next.js의 사전 렌더링 Next.js에는 Static Generation 및 Server-side Rendering이라는 두 가지 사전 렌더링 형식이 있습니다. 차이점은 페이지의 HTML을 생성하는 시점에 있습니다. Static Generation은 HTML을 빌드 시간에 생성하는 사전 렌더링 방법입니다. 사전 렌더링된 HTML은 각 요청마다 재사용됩니다. Server-side Rendering은 각 요청마다 HTML을 생성하는 사전 렌더링 방법입니다. 중요한 점은 Next.js에서 각 페이지에 사용할 사전 렌더링 형식을 선택할 수 있다는 것입니다. Static Generation을 대부분의 페이지에 사용하고 일부 페이지에 Server-side Rendering을.. 2023. 9. 7.
[공식문서] NextJS - Pre-rendering and Data Fetching #6 간단한 블로그 아키텍처 만들기 우리 예제의 블로그 게시물은 애플리케이션 디렉토리의 로컬 마크다운 파일로 저장됩니다(외부 데이터 소스에서 가져오는 것이 아닙니다). 따라서 파일 시스템에서 데이터를 읽어와야 합니다. 이 섹션에서는 파일 시스템에서 데이터를 읽는 블로그를 만드는 단계를 살펴보겠습니다. 마크다운 파일 생성 먼저 루프 폴더에 posts(이것은 pages/posts와 동일하지 않습니다)라는 새로운 최상위 디렉토리를 만듭니다. 그런 다음 posts 내에 pre-rendering.md 및 ssg-ssr.md 두 개의 파일을 만듭니다. 이제 다음 코드를 posts/pre-rendering.md에 복사하세요. --- title: 'Two Forms of Pre-rendering' date: '2020-01.. 2023. 9. 2.
[공식문서] NextJS - Pre-rendering and Data Fetching #5 데이터를 사용하거나 사용하지 않고 정적 생성 정적 생성은 데이터를 사용하거나 사용하지 않고 수행할 수 있습니다. 지금까지 만든 모든 페이지는 외부 데이터 검색이 필요하지 않습니다. 이러한 페이지는 프로덕션용으로 앱이 빌드될 때 자동으로 정적으로 생성됩니다. 그러나 일부 페이지의 경우 외부 데이터를 가져와 HTML을 렌더링하지 않으면 안될 수 있습니다. 파일 시스템에 엑세스하거나 외부 API를 가져오거나 빌드 시간에 데이터베이스를 쿼리해야 할 수 있습니다. Next.js는 이러한 경우를 지원하며, 이를 통해 데이터를 사용한 정적 생성을 쉽게 할 수 있습니다. getStaticProps를 사용한 데이터를 사용한 정적 생성 어떻게 작동할까요? Next.js에서 페이지 컴포넌트를 내보낼 때 getStaticPr.. 2023. 8. 26.
[공식문서] NextJS - Pre-rendering and Data Fetching #4 두 가지 형태의 사전 렌더링 Next.js에는 두 가지 형태의 사전 렌더링이 있습니다. 정적 생성(Static Generation)과 서버 사이드 렌더링(Server-side Rendering)입니다. 차이는 페이지의 HTML을 언제 생성하는지에 있습니다. 정적 생성(Static Generation)은 빌드 시점에 HTML을 생성하는 사전 렌더링 방식입니다. 이 사전 렌더링된 HTML은 각 요청마다 재사용됩니다. 서버 사이드 렌더링(Server-side Rendering)은 각 요청마다 HTML을 생성하는 사전 렌더링 방식입니다. 개발 모드에서(npm run dev 또는 yarn dev를 실행할 때)는 모든 요청마다 페이지가 사전 렌더링됩니다. 이것은 정적 생성에도 적용되어 개발을 더 쉽게 할 수 있게 .. 2023. 8. 26.
[공식문서] NextJS - Pre-rendering and Data Fetching #3 사전 렌더링 (Pre-rendering) 데이터 가져오기에 대해 이야기하기 전에, Next.js의 가장 중요한 개념 중 하나인 사전 렌더링에 대해 이야기해보겠습니다. 기본적으로 Next.js는 모든 페이지를 사전 렌더링합니다. 이는 Next.js가 모든 페이지의 HTML을 미리 생성한다는 것을 의미합니다. 클라이언트 사이드 JavaScript로 모두 처리하는 것이 아닙니다. 사전 렌더링은 성능과 검색 엔진 최적화에 도움이 될 수 있습니다. 각 생성된 HTML은 해당 페이지에 필요한 최소한의 JavaScript 코드와 연결됩니다. 브라우저에서 페이지가 로드되면 해당 JavaScript 코드가 실행되어 페이지가 완전히 상호작용 가능해집니다. (이 과정을 hydration 라고 합니다.) 사전 렌더링이 진행되.. 2023. 8. 25.
[공식문서] NextJS - Pre-rendering and Data Fetching #2 이전 레슨을 계속 진행하고 있다면, 이 페이지를 건너 뛸 수 있습니다. 다음 페이지로 이동 하려면 아래 Next 버튼을 클릭하세요. 스타터 코드 다운로드(선택사항) 만약 이전 레슨에서 진행하고 있지 않다면, 아래 명령을 사용하여 이번 레슨의 스타터 코드를 다운로드하고 설치하실 수 있습니다. 이 명령을 실행하면 이전 레슨의 결과와 동일한 nextjs-blog 디렉토리가 설정됩니다. 다시 말하자면, 이전 레슨을 완료한 경우 이 작업은 필요하지 않습니다. npx create-next-app@latest nextjs-blog --use-npm --example "https://github.com/vercel/next-learn/tree/master/basics/data-fetching-starter" 그리고 다.. 2023. 8. 19.