SPACE RUMI

Hi, I am rumi. Let's Splattack!

[STUDY] 스터디/NEXT.js Docs 22

[Configuring] Next 공식문서 번역 / Configuring - ESLint / Next.js ESLint / Next.js 린트

ESLint Next.js는 바로 사용할 수 있는 통합 ESLint 환경을 제공합니다. package.json에 next lint를 스크립트로 추가하세요: "scripts": { "lint": "next lint" } 그런 다음 npm 실행 린트 또는 실 린트를 실행합니다: yarn lint 애플리케이션에 ESLint가 아직 구성되지 않은 경우 설치 및 구성 프로세스를 안내합니다. 다음과 같은 메시지가 표시됩니다: ? ESLint를 어떻게 구성하시겠습니까? 기본 구성 + Core Web Vitals 규칙 세트(권장) 기본 구성 없음 다음 세 가지 옵션 중 하나를 선택할 수 있습니다: 엄격: 보다 엄격한 코어 웹 바이탈 규칙 세트와 함께 Next.js의 기본 ESLint 구성을 포함합니다. ESLint를 ..

[Configuring] Next 공식문서 번역 / Configuring - TypeScript / Next.js Typescript / Next.js 타입스크립트

타입스크립트 Next.js는 React 애플리케이션을 구축하기 위한 TypeScript 우선 개발 환경을 제공합니다. 필요한 패키지를 자동으로 설치하고 적절한 설정을 구성하기 위한 TypeScript 지원이 내장되어 있습니다. 또한 에디터용 TypeScript 플러그인도 제공됩니다. 시청하기: 기본 제공 TypeScript 플러그인에 대해 알아보기 → YouTube(3분) 새 프로젝트 create-next-app은 이제 기본적으로 TypeScript와 함께 제공됩니다. npx create-next-app@latest 기존 프로젝트 파일 이름을 .ts / .tsx로 변경하여 프로젝트에 TypeScript를 추가하세요. next dev 및 next build를 실행하여 필요한 종속성을 자동으로 설치하고 권장..

[Optimizing] Next 공식문서 번역 / Optimizing - Analytics / Next 애널리틱스

애널리틱스 Next.js 속도 인사이트를 사용하면 다양한 메트릭을 사용하여 페이지의 성능을 분석하고 측정할 수 있습니다. vercel 배포에서 아무런 구성 없이 실제 경험 점수 수집을 시작할 수 있습니다. 이 문서의 나머지 부분에서는 Next.js 속도 인사이트에서 사용하는 기본 제공 릴레이에 대해 설명합니다. 웹 바이탈 웹 바이탈은 웹 페이지의 사용자 경험을 파악하기 위한 유용한 지표 세트입니다. 다음과 같은 웹 바이탈이 모두 포함되어 있습니다: 첫 바이트에 도달하는 시간(TTFB) 첫 번째 콘텐츠 페인트(FCP) 최대 콘텐츠 페인트(LCP) 첫 번째 입력 지연(FID) 누적 레이아웃 시프트(CLS) 다음 페인트(INP)로의 인터랙션(실험 중) (실험적) 첫 바이트에 도달하는 시간 첫 바이트까지의 시간..

[Optimizing] Next 공식문서 번역 / Optimizing - Lazy Loading / 지연 로딩 / Next lazy load

지연 로딩 Next.js의 지연 로딩은 route를 렌더링하는 데 필요한 JavaScript의 양을 줄여 애플리케이션의 초기 로딩 성능을 개선하는 데 도움이 됩니다. 이를 통해 클라이언트 컴포넌트와 가져온 라이브러리의 로딩을 지연시키고 필요할 때만 클라이언트 번들에 포함할 수 있습니다. 예를 들어 사용자가 클릭하여 모달을 열 때까지 로딩을 지연시키고 싶을 수 있습니다. Next.js에서 지연 로딩을 구현하는 방법에는 두 가지가 있습니다: next/dynamic과 함께 동적 임포트 사용 Suspense와 함께 React.lazy() 사용 기본적으로 서버 컴포넌트는 자동으로 코드 분할되며, 스트리밍을 사용하여 서버에서 클라이언트로 UI 조각을 점진적으로 전송할 수 있습니다. 지연 로딩은 클라이언트 컴포넌트에..

[Optimizing] Next 공식문서 번역 / Optimizing - Static Assets / 정적 자산 / Next 이미지 관리

정적 자산 Next.js는 이미지와 같은 정적 파일을 루트 디렉터리의 public이라는 폴더 아래에 제공할 수 있습니다. 그러면 기본 URL(/)에서 시작하는 코드에서 public 내부의 파일을 참조할 수 있습니다. 예를 들어 public에 me.png를 추가하면 다음 코드가 이미지에 액세스합니다: import Image from 'next/image'; function Avatar() { return ; } export default Avatar; 이 폴더는 robots.txt, favicon.ico, Google 사이트 인증 및 기타 정적 파일(.html 포함)에도 유용합니다! 디렉터리 이름이 public인지 확인하세요. 이 이름은 변경할 수 없으며 정적 자산을 제공하는 데 사용되는 유일한 디렉토리입..

[Optimizing] Next 공식문서 번역 / Optimizing - Metadata / Next Metadata

메타데이터 Next.js에는 SEO 및 웹 공유성을 개선하기 위해 애플리케이션 메타데이터(예: HTML 헤드 요소 내부의 meta 및 link 태그)를 정의하는 데 사용할 수 있는 메타데이터 API가 있습니다. 애플리케이션에 메타데이터를 추가하는 방법에는 두 가지가 있습니다: 구성 기반 메타데이터: 정적 메타데이터 객체 또는 generateMetadata function을 layout.js 또는 page.js 파일로 내보냅니다. 파일 기반 메타데이터: 정적 또는 동적으로 생성된 특수 파일을 route 세그먼트에 추가합니다. 이 두 가지 옵션을 모두 사용하면 Next.js가 페이지에 대한 관련 요소를 자동으로 생성합니다. ImageResponse 생성자를 사용하여 동적 OG(OpenGrpah) 이미지를 생..

[Optimizing] Next 공식문서 번역 / Optimizing - Scripts / 최적화 - 스크립트 최적화

스크립트 최적화 : 레이아웃 스크립트 여러 routes에 대한 third-party(타사) 스크립트를 로드하려면 next/script 가져와서 레이아웃 구성 요소에 직접 스크립트를 포함하세요: // app/dashboard/layout.tsx import Script from 'next/script'; export default function DashboardLayout({ children, }: { children: React.ReactNode; }) { return ( {children} 또는 dangerouslySetInnerHTML 를 사용합니다: 경고: Next.js가 스크립트를 추적하고 최적화하려면 인라인 스크립트에 id 속성을 할당해야 합니다. 추가 코드 실행 이벤트 핸들러는 스크립트 컴..

[Data Fetching] Next 공식문서 번역 / Data Fetching - Caching / 데이터 가져오기 - 캐싱

데이터 캐싱 Next.js는 요청별(권장) 또는 전체 route 세그먼트에 대한 데이터 캐싱을 기본적으로 지원합니다. 요청별 캐싱 fetch() 기본적으로 모든 fetch() 요청은 캐시되고 자동으로 중복 제거됩니다. 즉, 동일한 요청을 두 번 수행하면 두 번째 요청은 첫 번째 요청의 결과를 재사용합니다. // app/page.tsx async function getComments() { const res = await fetch('https://...'); // The result is cached return res.json(); } // 이 함수는 두 번 호출되지만 결과는 한 번만 가져옵니다. const comments = await getComments(); // cache MISS // 두 번째..

[Data Fetching] Next 공식문서 번역 / Data Fetching - Fetching / Next에서 데이터 가져오기

데이터 가져오기 알아두면 좋습니다: 이 새로운 데이터 Fetching 모델은 현재 React 팀에서 개발 중입니다. 서버 컴포넌트에 비동기/대기(async/await)를 도입하고 클라이언트 컴포넌트에 새로운 use() 훅을 도입하는 약속에 대한 지원 React RFC를 읽어보시길 권장합니다. 사용해 볼 수는 있지만 아직 안정적이지 않습니다. 최신 개발 사항을 반영하기 위해 이 문서를 계속 업데이트할 예정입니다. React와 Next.js 13에는 애플리케이션에서 데이터를 가져오고 관리하는 새로운 방법이 도입되었습니다. 새로운 데이터 불러오기 시스템은 app 디렉토리에서 작동하며 fetch() 웹 API 위에 구축됩니다. fetch()는 프로미스를 반환하는 원격 리소스를 가져오는 데 사용되는 웹 API입니..

[Rendering] Next 공식문서 한글번역 / Rendering - Edge and Node.js Runtimes / 엣지, 노드 런타임

Edge 및 Node.js 런타임 Next.js의 맥락에서 '런타임'은 코드가 실행되는 동안 사용할 수 있는 라이브러리, API 및 일반 기능의 집합을 의미합니다. Next.js에는 애플리케이션 코드의 일부를 렌더링할 수 있는 두 가지 서버 런타임이 있습니다: Node.js 런타임 엣지 런타임 각 런타임에는 고유한 API 세트가 있습니다. 사용 가능한 API의 전체 목록은 Node.js 문서 및 Edge 문서를 참조하세요. 두 런타임 모두 배포 인프라에 따라 스트리밍을 지원할 수도 있습니다. 기본적으로 app 디렉토리는 Node.js 런타임을 사용합니다. 하지만 경로별로 다른 런타임(예: Edge)을 선택할 수 있습니다. 런타임 차이점 런타임을 선택할 때 고려해야 할 사항이 많습니다. 이 표는 주요 차이..

[Rendering] Next 공식문서 한글번역 / Rendering - Static and Dynamic / 정적 및 동적 렌더링

정적 및 동적 렌더링 Next.js에서 경로는 정적 또는 동적으로 렌더링할 수 있습니다. 정적 경로에서는 컴포넌트가 빌드 시점에 서버에서 렌더링됩니다. 작업 결과는 캐시되어 후속 요청에서 재사용됩니다. 동적 경로에서는 요청 시점에 컴포넌트가 서버에서 렌더링됩니다. 정적 렌더링(기본값) 정적 렌더링(기본값)은 모든 렌더링 작업이 미리 수행되고 사용자와 지리적으로 가까운 CDN(콘텐츠 전송 네트워크)에서 제공될 수 있으므로 성능이 향상됩니다. layout이나 page에서 동적 함수 또는 동적 데이터 가져오기를 사용하여 동적 렌더링을 선택할 수 있습니다. 이렇게 하면 요청 시점에 Next.js가 전체 경로를 동적으로 렌더링합니다. 이 표에는 동적 함수와 정적 데이터 가져오기(캐싱)가 경로의 렌더링 동작에 어떤..

[Routing] Next 공식문서 한글번역 / Routing - Internationalization / 라우팅 국제화, 다국어 지원

국제화 (다국어 지원) Next.js를 사용하면 여러 언어를 지원하도록 콘텐츠 라우팅 및 렌더링을 구성할 수 있습니다. 사이트를 다양한 locale에 맞게 조정하려면 번역된 콘텐츠(로컬라이제이션)와 국제화된 경로가 포함됩니다. 용어 Locale: 언어 및 서식 기본 설정 집합에 대한 식별자입니다. 여기에는 일반적으로 사용자가 선호하는 언어와 해당 지역이 포함됩니다. en-US: 미국에서 사용되는 영어 nl-NL: 네덜란드에서 사용되는 네덜란드어 nl: 네덜란드어, 특정 지역 없음 라우팅 개요 브라우저에서 사용자의 언어 기본 설정을 사용하여 사용할 locale을 선택하는 것이 좋습니다. 기본 언어를 변경하면 애플리케이션으로 들어오는 Accept-Language 헤더가 수정됩니다. 예를 들어 다음 라이브러리..

[Routing] Next 공식문서 한글번역 / Routing - Middleware / 라우팅 미들웨어

Next.js beta문서가 공식문서랑 병합 되었다. 미들웨어 미들웨어를 사용하면 요청이 완료되기 전에 코드를 실행할 수 있습니다. 그런 다음 들어오는 요청에 따라 request 또는 response header를 재작성, 리디렉션, 수정하거나 직접 응답하여 response를 수정할 수 있습니다. 알아두면 좋은 사항 미들웨어는 캐시된 콘텐츠보다 먼저 실행되므로 정적 파일과 페이지를 개인화할 수 있습니다. 미들웨어의 일반적인 예로는 인증, A/B 테스트, 로컬라이즈된 페이지, 봇 보호 등이 있습니다. 미들웨어는 app 라우터 또는 page 라우터보다 먼저 실행되므로 미들웨어 동작은 동일합니다. 12.2 이전 버전의 미들웨어를 사용 중인 경우 업그레이드 가이드를 참조하세요. 미들웨어 사용하기 미들웨어 사용을..

[Routing] Next / Rendering Fundamentals / 렌더링 기초

Rendering : Fundamentals - 렌더링 : 기초 렌더링은 작성한 코드를 사용자 인터페이스로 변환합니다. React 18과 Next.js 13에는 애플리케이션을 렌더링하는 새로운 방법이 도입되었습니다. 이 페이지는 렌더링 환경, 전략, 런타임의 차이점과 이를 선택하는 방법을 이해하는 데 도움이 될 것입니다. 렌더링 환경 애플리케이션 코드를 렌더링할 수 있는 환경은 클라이언트와 서버 두 가지가 있습니다. 클라이언트는 애플리케이션 코드에 대한 요청을 서버에 보내는 사용자 디바이스의 브라우저를 말합니다. 그런 다음 서버의 응답을 사용자가 상호 작용할 수 있는 인터페이스로 변환합니다. 서버는 애플리케이션 코드를 저장하고, 클라이언트로부터 요청을 받고, 일부 연산을 수행한 후 적절한 응답을 다시 보..

[Routing] Next / Parallel Routes, 인터셉팅 라우트 - 병렬 라우트, 인터셉팅 라우트

병렬 Route 병렬 라우트를 사용하면 독립적으로 탐색할 수 있는 하나 이상의 페이지를 동일한 화면에서 동시에 렌더링할 수 있습니다. 소셜 사이트의 대시보드 및 피드와 같이 앱에서 매우 동적인 섹션의 경우 병렬 라우트를 사용하여 복잡한 라우팅 패턴을 구현할 수 있습니다. 규칙 병렬 라우트는 명명된 slots을 사용하여 생성됩니다. 슬롯은 @folder 규칙으로 정의됩니다. 예를 들어, 다음 파일 구조는 비디오 분석 대시보드에 대한 두 개의 명시적 슬롯, 즉 @audience와 @views를 정의합니다: 위의 폴더 구조는 이제 /dashboard/layout.js 컴포넌트에서 @audience 및 @views 슬롯을 prop으로 받아들이고 children prop과 함께 병렬로 렌더링할 수 있다는 의미입니..

[Routing] NEXT.js beta 한글 번역 : Routing - Route Handlers / 라우트 핸들러

Routing - Route Handlers / 라우트 핸들러 라우트 핸들러를 사용하면 웹 요청 및 응답 API를 사용하여 지정된 경로에 대한 사용자 지정 요청 핸들러를 만들 수 있습니다. 알아두면 좋습니다: 라우트 핸들러는 앱 디렉토리 내에서만 사용할 수 있습니다. 라우트 핸들러는 페이지 디렉터리 내의 API 경로와 동일하므로 API 경로와 라우트 핸들러를 함께 사용할 필요가 없습니다. 규칙: 라우트 핸들러는 app 디렉터리 내의 route.js|ts 파일에 정의됩니다: // app/api/route.ts export async function GET(request: Request) {} 라우트 핸들러는 page.js 및 layout.js와 유사하게 app 디렉터리 내에 중첩될 수 있습니다. 하지만 ..

[Routing] NEXT.js beta 한글 번역 : Routing - Loading UI, Error Handling / 로딩 UI, 에러 핸들링

Routing - Loading UI: 로딩 UI Next.js 13에는 새로운 파일 규칙인 loading.js가 도입되어 React Suspense로 의미 있는 로딩 UI를 만들 수 있습니다. 이 규칙을 사용하면 경로 세그먼트의 콘텐츠가 로드되는 동안 서버에서 즉시 로딩 상태를 표시할 수 있으며, 렌더링이 완료되면 새 콘텐츠가 자동으로 교체됩니다. 즉시 로딩 상태 즉시 로딩 상태는 탐색 시 즉시 표시되는 fallback(대체) UI입니다. 스켈레톤, 스피너와 같은 로딩 표시기를 미리 렌더링하거나 표지 사진, 제목 등과 같이 향후 화면에서 작지만 의미 있는 부분을 미리 렌더링할 수 있습니다. 이를 통해 사용자가 앱이 응답하고 있음을 이해하고 더 나은 사용자 경험을 제공할 수 있습니다. 폴더 내에 loa..

[Routing] NEXT.js beta 한글 번역 : Routing - Linking and Navigating / 연결 및 탐색

Routing - Linking and Navigating : 연결 및 탐색 Next.js 라우터는 클라이언트 측 네비게이팅과 함께 서버 중심 라우팅을 사용합니다. 즉각적인 로딩 상태와 동시 렌더링을 지원합니다. 즉, 탐색이 클라이언트 측 상태를 유지하고, 비용이 많이 드는 재렌더링을 피하며, 중단이 가능하고, 경쟁 조건을 일으키지 않습니다. route 사이를 탐색(navigate)하는 방법에는 두 가지가 있습니다: 컴포넌트 useRouter 훅 이 페이지에서는 , useRouter()를 사용하는 방법을 살펴보고 네비게이팅이 어떻게 작동하는지에 대해 자세히 알아볼 것입니다. 컴포넌트 는 HTML 엘리먼트를 확장하여 경로 간 프리페칭과 클라이언트 측 탐색을 제공하는 React 컴포넌트입니다. Next.js..

[Routing] NEXT.js beta 한글 번역 : Routing - Pages and Layouts / 페이지와 레이아웃

Routing - Pages and Layouts : 페이지와 레이아웃 Next.js 13의 App Router에는 페이지, 공유 레이아웃 및 템플릿을 쉽게 만들 수 있는 새로운 파일 규칙이 도입되었습니다. 이 페이지에서는 Next.js 애플리케이션에서 이러한 특수 파일을 사용하는 방법을 안내합니다. 페이지 페이지는 route에 고유한 UI입니다. page.js 파일에서 컴포넌트를 내보내 페이지를 정의할 수 있습니다. 중첩 폴더를 사용하여 route를 정의하고 page.js 파일을 사용하여 route에 공개적으로 액세스할 수 있도록 합니다. app 디렉터리 내에 page.js 파일을 추가하여 첫 번째 페이지를 만듭니다: // `app/page.js`는 루트 `/` URL의 UI입니다. export def..

[Routing] NEXT.js beta 한글 번역 : Routing - Defining Routes / 라우팅 정의

Routing - Defining Routes : 라우팅 정의 이 페이지에서는 Next.js 애플리케이션에서 경로를 정의하고 구성하는 방법을 안내합니다. Routes 만들기 app 디렉토리 내에서 폴더는 경로를 정의하는 데 사용됩니다. 각 폴더는 URL 세그먼트에 매핑되는 route 세그먼트를 나타냅니다. 중첩된 route를 만들려면 폴더를 서로 중첩할 수 있습니다. route 세그먼트를 공개적으로 액세스할 수 있도록 하기 위해 특별한 page.js 파일이 사용됩니다. 이 예제에서는 /dashboard/analytics URL path에 해당하는 page.js 파일이 없기 때문에 공개적으로 액세스할 수 없습니다. 이 폴더는 구성 요소, 스타일시트, 이미지 또는 기타 함께 배치된 파일을 저장하는 데 사용할..

[Routing] NEXT.js beta 한글 번역 : Routing - Fundamentals / 라우팅 기본 사항

Next.js 라우팅 기본사항 Next.js 13에서는 레이아웃, 중첩 라우팅, 로딩 상태, 오류 처리 등을 지원하는 새로운 App Router가 React 서버 컴포넌트 위에 구축되었습니다. 이 페이지에서는 새로운 라우팅 모델의 기본 개념을 소개합니다. 용어 문서 전체에서 이러한 용어가 사용되는 것을 볼 수 있습니다. 다음은 간단한 참조입니다: Tree: 계층 구조를 시각화하기 위한 규칙입니다. 예를 들어 부모 및 자식 컴포넌트가 있는 컴포넌트 트리, 폴더 구조 등이 있습니다. Sub Tree: 트리의 일부로, 새 루트(첫 번째)에서 시작하여 잎(마지막)에서 끝나는 트리의 일부입니다. Root: 루트 레이아웃과 같은 트리 또는 하위 트리의 첫 번째 노드입니다. Leaf: 하위 트리의 노드 중 자식이 없..

[Installation] NEXT.js beta 한글 번역 : Next js 시작하기 / Next js 설치하기 / 업그레이드 가이드

Next 공식문서 한글번역 스터디 공부용으로 Next.js beta문서 번역을 시작합니다. DeepL 번역기를 적극 사용 할거고, 가독성을 위해 생략,수정 혹은 의역한 부분이 있을 수 있습니다. Next.js beta 원문 링크는 https://beta.nextjs.org/docs 입니다. 오역된 부분이 있거나, 문제 발생시 dnjfdnjf22@gmail.com 혹은 https://open.kakao.com/me/100rumi 으로 연락주세요. Getting Started : 시작하기 Next.js 문서는 두 개의 사이트로 나뉘어져 있습니다: Next 13 앱 라우터(베타) 문서(이 문서): React 서버 컴포넌트, 스트리밍, 새로운 데이터 불러오기 등을 사용해 보세요. Next 13 (안정) 문서: ..

반응형