✅ 서론 - Next.js란 무엇인가? 왜 배워야 할까?
✅ 본론 - Next.js 단계별 학습 로드맵
✅ 결론 - Next.js 실전 프로젝트와 다음 단계 학습 방향
1️⃣ 서론: Next.js란 무엇인가? 왜 배워야 할까?
🔹 Next.js란?
- Next.js는 React 기반의 프레임워크로 서버 사이드 렌더링(SSR), 정적 사이트 생성(SSG), **클라이언트 사이드 렌더링(CSR)**을 모두 지원해.
- 파일 기반 라우팅, SEO 최적화, 페이지 성능 최적화 등 다양한 기능을 제공하며, Vercel에서 개발하고 유지보수 중.
- React의 확장판으로, React를 알고 있다면 배우기 매우 쉬움!
🔹 Next.js를 배워야 하는 이유
✅ SEO 최적화 → SSR과 SSG로 검색 엔진 최적화 가능
✅ 빠른 페이지 로딩 속도 → 정적 사이트 생성(SSG)으로 최적화
✅ 파일 기반 라우팅 → 디렉토리 구조만으로 URL 경로 설정 가능
✅ API Routes → Next.js에서 백엔드 API도 쉽게 작성 가능
✅ 풀스택 개발 가능 → React 프론트엔드 + Next.js API Routes 백엔드
🔥 Next.js는 React의 단점을 보완하고, SEO와 성능을 극대화하는 최신 프레임워크!
이제 단계별 학습 로드맵으로 배우는 방법을 알아보자.
2️⃣ 본론: Next.js 단계별 학습 로드맵
📌 1단계: Next.js 설치 및 기본 설정
🎯 목표: Next.js 개발 환경 설정 및 기본 개념 이해
📌 설치 및 기본 설정
npx create-next-app@latest my-next-app
cd my-next-app
npm run dev
- npx create-next-app@latest: 최신 Next.js 버전으로 프로젝트 생성
- npm run dev: 개발 서버 실행 (http://localhost:3000)
📌 디렉토리 구조 이해하기
my-next-app/
├── pages/ # 파일 기반 라우팅 디렉토리
│ ├── index.js # 홈 페이지 (URL: /)
│ └── about.js # About 페이지 (URL: /about)
├── public/ # 정적 파일 (이미지, 폰트 등)
└── styles/ # CSS 및 스타일 파일
✅ Next.js는 pages 디렉토리의 파일 이름이 URL 경로가 됨
- pages/index.js → / URL
- pages/about.js → /about URL
📌 첫 번째 페이지 만들기 (pages/about.js)
export default function About() {
return (
<div>
<h1>About Page</h1>
<p>This is the about page of my Next.js app!</p>
</div>
);
}
✅ 파일 이름과 디렉토리 구조만으로 URL 경로 설정이 완료됨!
📌 2단계: 파일 기반 라우팅 & 동적 라우팅
🎯 목표: Next.js의 라우팅 시스템 이해 및 동적 라우팅 적용
📌 파일 기반 라우팅
- pages 디렉토리 내부 파일 이름이 URL 경로가 됨
- React Router와 같은 라우팅 설정 없이도 자동으로 페이지 이동 가능
📌 예시 디렉토리 구조
pages/
├── index.js # 홈 페이지 (URL: /)
└── blog/
├── index.js # 블로그 목록 (URL: /blog)
└── [id].js # 동적 라우팅 (URL: /blog/1, /blog/2)
📌 동적 라우팅 (pages/blog/[id].js)
import { useRouter } from "next/router";
export default function BlogPost() {
const router = useRouter();
const { id } = router.query;
return (
<div>
<h1>블로그 포스트 {id}</h1>
<p>이 포스트의 ID는 {id}입니다.</p>
</div>
);
}
✅ [id].js 파일을 사용하면 id가 동적으로 URL에 반영됨!
- /blog/1 → id: 1
- /blog/2 → id: 20
📌 3단계: 정적 사이트 생성 (SSG) 및 서버 사이드 렌더링 (SSR)
🎯 목표: SSG와 SSR 개념 이해 및 데이터 페칭 방법 익히기
🔹 정적 사이트 생성 (SSG)
- getStaticProps() 사용 → 빌드 시 데이터 가져와 정적 HTML 생성
- 페이지 로딩 속도가 빠르고, SEO에 유리
📌 예제 코드 (pages/products/index.js)
export async function getStaticProps() {
const res = await fetch("https://fakestoreapi.com/products");
const products = await res.json();
return { props: { products } };
}
export default function Products({ products }) {
return (
<div>
<h1>상품 목록</h1>
<ul>
{products.map((product) => (
<li key={product.id}>{product.title}</li>
))}
</ul>
</div>
);
}
✅ SSG는 정적 사이트 생성으로 SEO 최적화 및 로딩 속도 개선!
🔹 서버 사이드 렌더링 (SSR)
- getServerSideProps() 사용 → 요청 시마다 서버에서 데이터를 가져와 렌더링
- 실시간 데이터가 필요한 페이지에 적합
📌 예제 코드 (pages/products/[id].js)
export async function getServerSideProps(context) {
const { id } = context.params;
const res = await fetch(`https://fakestoreapi.com/products/${id}`);
const product = await res.json();
return { props: { product } };
}
export default function Product({ product }) {
return (
<div>
<h1>{product.title}</h1>
<p>{product.description}</p>
<p>가격: ${product.price}</p>
</div>
);
}
✅ SSR은 요청할 때마다 서버에서 데이터를 가져와 최신 상태 유지!
📌 4단계: API Routes 활용하기 (백엔드 API 개발)
🎯 목표: Next.js에서 백엔드 API 개발하기
📌 API Route 예제 (pages/api/hello.js)
export default function handler(req, res) {
res.status(200).json({ message: "Hello, Next.js API!" });
}
✅ pages/api 폴더에 파일을 만들면 자동으로 API Endpoint 생성!
- /api/hello → JSON 데이터 응답 ({ "message": "Hello, Next.js API!" })
- 백엔드 서버 없이도 풀스택 애플리케이션 개발 가능!
3️⃣ 결론: Next.js 실전 프로젝트와 다음 단계 학습 방향
📌 실전 프로젝트 추천
✅ 블로그 만들기 (SSG + 동적 라우팅 + API Routes)
✅ 상품 목록 페이지 (SSR + API 연동)
✅ 포트폴리오 사이트 (SSG + SEO 최적화)
✅ E-commerce 사이트 (Next.js + Stripe 결제 연동)
🔥 Next.js는 React를 확장하여 SEO, 성능, 백엔드까지 모두 해결해주는 프레임워크!
🚀 이제 Next.js를 활용한 실전 프로젝트에 도전해보자!
'Next.js' 카테고리의 다른 글
🚀 Next.js 상품 목록 페이지 만들기 (SSR + API 연동) (0) | 2025.02.26 |
---|---|
🚀 Next.js로 블로그 만들기 (SSG + 동적 라우팅 + API Routes) (0) | 2025.02.25 |