Next.js
React
웹개발

Next.js로 시작하는 모던 웹 개발

2024. 1. 15.
5분
블로그 포스트

Modern Blog

웹 개발 전문가

Next.js로 시작하는 모던 웹 개발

Next.js는 React 기반의 풀스택 웹 프레임워크로, 현대적인 웹 애플리케이션을 구축하는 데 필요한 모든 도구를 제공합니다.

왜 Next.js인가?

Next.js를 선택해야 하는 이유는 다음과 같습니다:

  • 서버 사이드 렌더링(SSR): 더 나은 SEO와 초기 로딩 성능
  • 정적 사이트 생성(SSG): 빠른 로딩 속도와 CDN 최적화
  • API 라우트: 백엔드 API를 같은 프로젝트에서 구축
  • 자동 코드 분할: 필요한 코드만 로드하여 성능 최적화

시작하기

Next.js 프로젝트를 시작하는 것은 매우 간단합니다:

npx create-next-app@latest my-app
cd my-app
npm run dev

핵심 개념

1. 파일 기반 라우팅

Next.js는 app 디렉토리의 파일 구조를 기반으로 자동으로 라우팅을 생성합니다.

app/
  page.tsx
  about/
    page.tsx
  blog/
    [slug]/
      page.tsx

2. 데이터 페칭

Next.js는 다양한 데이터 페칭 방법을 제공합니다:

  • Server Components: 서버에서 데이터를 가져와 렌더링
  • Client Components: 클라이언트에서 동적으로 데이터 페칭
  • Static Generation: 빌드 시점에 데이터를 가져와 정적 페이지 생성

3. 서버 컴포넌트

Next.js 13부터 도입된 서버 컴포넌트를 활용할 수 있습니다:

// app/page.tsx
async function getData() {
  const res = await fetch("https://api.example.com/data");
  return res.json();
}

export default async function Page() {
  const data = await getData();

  return (
    <main>
      <h1>데이터: {data.title}</h1>
    </main>
  );
}

4. 클라이언트 컴포넌트

상호작용이 필요한 컴포넌트는 클라이언트 컴포넌트로 만듭니다:

"use client";

import { useState } from "react";

export default function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>카운트: {count}</p>
      <button onClick={() => setCount(count + 1)}>증가</button>
    </div>
  );
}

마무리

Next.js는 현대적인 웹 개발의 복잡성을 해결하고, 개발자가 비즈니스 로직에 집중할 수 있도록 도와주는 훌륭한 프레임워크입니다.

Next.js 공식 문서와 예제들을 통해 더 깊이 있는 학습을 진행해보세요!