react.js 14

[NEXT.JS] 없는 페이지 처리(Not Found Page)

개요Next.JS에서 없는 페이지로 이동할 때, 모든 경로에 대해 동시 처리하는 방법에 대한 내용입니다. [...not_found]동적 경로(Dynamic Route)로 설정된 페이지 파일로, URL의 일치하지 않는 모든 경로를 처리하는 데 사용됩니다.[...not_found]는 "Catch-All Route"라고 불리는 동적 경로 패턴을 의미합니다.  폴더 구조, 코드src app [...not_found] page.js not-found.tsx not-found.tsxexport default function NotFound() { return ( 페이지 없음 ..

[NEXT.JS] Dynamic Import

개요이전 개발자가 개발한 프로젝트를 보고 무지성으로 프로젝트 구조를 잡아서 개발을 수행했었는데, 프로젝트를 완성해서 정상적으로 서비스를 하고 있지만 정확히 어떤 이유로 사용하는 지 모를 코드들이 있기 때문에 NEXT.JS를 더욱 이해하기 위해 하나씩 파헤쳐보려고 합니다.  구조 설명현재 모든 app router 내부 디렉토리는 아래와 같은 구조입니다._module 디렉토리에는 각 컨테이너에서 사용하는 component들과 css를 모아놓았습니다.app - home - _module - page.tsx - page.body.tsx - contents - _module - page.tsx - page.body.tsx - notice ..

[NEXT.JS] Zustand

개요Zustand는 간단하면서도 강력한 상태 관리 라이브러리입니다. React 애플리케이션에서 전역 상태를 쉽게 관리할 수 있게 해주며, Redux와 비교했을 때 훨씬 더 간단하고 직관적인 API를 제공합니다.Zustand는 독일어로 "상태"를 의미하며, React의 Hooks를 기반으로 합니다.  특징간단한 APIZustand는 매우 간단한 API를 제공하여, 몇 줄의 코드만으로 상태를 정의하고 사용할 수 있습니다.이는 Redux와 같은 복잡한 설정 없이도 쉽게 상태 관리를 할 수 있게 해줍니다.import create from 'zustand';const useStore = create(set => ({ count: 0, increment: () => set(state => ({ count: st..

[NEXT.JS] Axios

개요Axios는 HTTP 클라이언트 라이브러리로, 브라우저와 Node.js 환경에서 모두 사용할 수 있는 도구입니다. 주로 비동기 HTTP 요청을 쉽게 관리하고 처리하는 데 사용됩니다.  특징Promise 기반Axios는 Promise API를 사용하여 비동기 요청을 처리합니다.이를 통해 콜백 헬(callback hell)을 피하고, 비동기 코드를 더 읽기 쉽게 작성할 수 있습니다.axios.get('/api/data') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); 인터셉터 (Interceptors)요청(request) 또는 응답(response)이 처리되기 전에..

[NEXT.JS] 환경변수 설정

소개Next.js는 환경 변수를 사용하여 애플리케이션의 설정값을 관리할 수 있습니다. 이 가이드는 Next.js에서 환경 변수를 설정하고 사용하는 방법을 설명합니다.  파일 생성프로젝트 루트 디렉토리에 .env.local 파일을 생성하고 환경 변수를 추가합니다.NEXT_PUBLIC_API_URL=https://api.example.comNEXT_PUBLIC_API_KEY=your_api_key NEXT_PUBLIC_로 시작하는 환경 변수는 클라이언트 사이드에서 사용할 수 있습니다.  환경변수 사용pages/index.js 파일을 수정하여 환경 변수를 사용합니다.import { useEffect, useState } from 'react';export default function Home() { con..

[NEXT.JS] TypeScript(타입스크립트)

소개Next.js와 TypeScript를 함께 사용하면 코드의 안정성과 유지보수성을 크게 향상시킬 수 있습니다.Next.js 프로젝트에 TypeScript를 설정하고 사용하는 방법을 설명합니다.  프로젝트 설정Typescript 관련 패키지를 설치합니다.npm install --save-dev typescript @types/react @types/node TypeScript 설정 파일을 생성합니다.touch tsconfig.json 프로젝트 내의 파일 확장자를 .js에서 .tsx로 변경합니다. 예를 들어, pages/index.js 파일을 pages/index.tsx로 변경합니다.   타입 정의컴포넌트의 타입을 정의하여 코드의 안정성을 높일 수 있습니다. 예를 들어, props의 타입을 정의할 수 있습..

[NEXT.JS] 정적 사이트 생성(SSG)

소개Next.js의 정적 사이트 생성(SSG)은 빌드 타임에 HTML 페이지를 미리 생성하여 빠른 로딩 속도와 SEO 최적화를 제공합니다. 이 가이드는 SSG 기능을 자세히 설명합니다.  SSG의 장점 빠른 로딩 속도: 미리 생성된 HTML 페이지는 서버 요청 없이 즉시 로드됩니다.SEO 최적화: 정적 페이지는 검색 엔진이 쉽게 인덱싱할 수 있습니다.안정성: 서버 부하를 줄이고, CDN을 통해 전 세계에 빠르게 배포할 수 있습니다.   GetStaticProps pages/index.jsexport async function getStaticProps() { const res = await fetch('https://api.example.com/data'); const data = await res...

[NEXT.JS] 서버사이드 렌더링(SSR)

소개서버사이드 렌더링(Server-Side Rendering, SSR)은 서버에서 HTML을 생성하여 클라이언트에 전달하는 방식입니다. Next.js는 이 기능을 통해 초기 로딩 속도와 SEO를 향상시킬 수 있습니다.  SSR의 장점 초기 로딩 속도 향상: 서버에서 미리 렌더링된 HTML을 제공하여 초기 로딩 시간을 단축합니다.SEO 최적화: 검색 엔진이 미리 렌더링된 HTML을 인덱싱할 수 있어 SEO 성능이 개선됩니다.유저 경험 개선: 초기 콘텐츠가 빠르게 표시되어 사용자 경험이 향상됩니다.   getServerSideProps 사용법Next.js에서 SSR을 구현하기 위해 getServerSideProps 함수를 사용합니다. 이 함수는 각 요청 시 서버에서 실행되며, 페이지 컴포넌트에 데이터를 전달..

[NEXT.JS] #6 _app.js

이전 글에 이어 _app.js를 커스텀하는 방법에 대해 작성해 보려고 한다. [NEXT.JS] #5 CSS STYLING (2) 이전 글에 이어 CSS 를 설정하는 다른 방법에 대해 작성해보겠다. [NEXT.JS] #4 CSS STYLING (1) 이전 글에 이어 CSS 를 설정하는 방법에 대해 작성해보겠다. [NEXT.JS] #3 pages와 페이지 이동 이전 글에서 next p many.tistory.com _app.js Next.js에서 각각의 페이지가 초기화될 때 로딩되는 파일이다. 모든 페이지가 초기화될 때 로딩되므로 전체 페이지의 로직을 작성할 수 있다. 즉, 모든 페이지에서 공통으로 사용하는 컴포넌트나 css 등을 적용하는데 용이하다. 이전 게시물들에서 NavBar.js를 index.js, ..

[NEXT.JS] #5 CSS STYLING (2)

이전 글에 이어 CSS 를 설정하는 다른 방법에 대해 작성해보겠다. [NEXT.JS] #4 CSS STYLING (1) 이전 글에 이어 CSS 를 설정하는 방법에 대해 작성해보겠다. [NEXT.JS] #3 pages와 페이지 이동 이전 글에서 next project를 생성했다. 이번 글은 nextjs의 페이지 이동에 대해 작성하였다. [NEXT.JS] #2 Project many.tistory.com styled JSX next js에서 사용하는 기본적인 css 설정 방법이다. 방장은 next.js 14버전을 사용했기 때문에 하위 버전과 사용법이 다를 수 있다. components/NavBar.js 사이의 코드를 통해 element의 css를 설정하는 방법이다. import Link from "next/..