1. Next.js란 무엇인가요? 왜 배워야 하나요?
Next.js는 React 애플리케이션을 만들기 위한 풀스택 프레임워크입니다. 쉽게 말해, React로 웹사이트를 만들 때 필요한 모든 도구를 한 번에 제공하는 종합 선물세트라고 생각하시면 됩니다.
- 서버 사이드 렌더링(SSR): 웹페이지가 검색엔진에 잘 노출되도록 도와줍니다
- 정적 사이트 생성(SSG): 미리 페이지를 만들어두어 속도가 매우 빠릅니다
- API 라우트: 백엔드 기능도 함께 구현할 수 있습니다
- 자동 코드 분할: 필요한 부분만 로드하여 성능을 최적화합니다
- 이미지 최적화: 이미지를 자동으로 최적화하여 로딩 속도를 개선합니다
2. Next.js 시작하기: 설치부터 실행까지
Next.js를 시작하는 방법은 정말 간단합니다. 터미널을 열고 다음 명령어를 입력하기만 하면 됩니다.
- 새 프로젝트 생성하기
npx create-next-app@latest my-app
# 또는
yarn create next-app my-app
# 또는
pnpm create next-app my-app- 프로젝트 폴더로 이동
cd my-app- 개발 서버 실행
npm run dev
# 또는
yarn dev
# 또는
pnpm dev브라우저에서 http://localhost:3000을 열면 Next.js 앱이 실행되는 것을 확인할 수 있습니다!
3. Next.js 핵심 명령어 완벽 정리
Next.js를 사용할 때 꼭 알아야 할 명령어들을 모두 정리했습니다.
- 개발 관련 명령어
- 추가 유용한 명령어
- TypeScript 프로젝트 생성
- 특정 템플릿으로 프로젝트 생성
4. Next.js 폴더 구조와 파일 시스템 라우팅
Next.js의 가장 큰 특징 중 하나는 파일 시스템 기반 라우팅입니다. 폴더와 파일을 만들면 자동으로 URL 경로가 생성됩니다.
- 기본 폴더 구조
- 페이지 라우팅 예시
- 특수 파일들
5. Next.js 기초 문법: 페이지 만들기
실제로 페이지를 만들어보면서 기초 문법을 익혀봅시다.
- 기본 페이지 생성 (app/page.js)
- 동적 라우팅 (app/posts/[id]/page.js)
- 레이아웃 컴포넌트 (app/layout.js)
6. 데이터 페칭: 서버와 클라이언트에서 데이터 가져오기
Next.js에서는 다양한 방법으로 데이터를 가져올 수 있습니다.
- 서버 컴포넌트에서 데이터 가져오기 (기본값)
- 클라이언트 컴포넌트 사용하기
- 정적 생성과 재검증
7. API 라우트 만들기: 백엔드 기능 구현
Next.js에서는 API 엔드포인트도 쉽게 만들 수 있습니다.
- 기본 API 라우트 (app/api/hello/route.js)
- 동적 API 라우트 (app/api/users/[id]/route.js)
8. 스타일링: CSS 모듈부터 Tailwind까지
Next.js는 다양한 스타일링 방법을 지원합니다.
- CSS 모듈 사용하기
- 전역 CSS
- Tailwind CSS 설정
9. 이미지와 폰트 최적화
Next.js는 자동으로 이미지와 폰트를 최적화합니다.
- Image 컴포넌트 사용
- 폰트 최적화
10. 환경 변수와 설정 파일
프로젝트 설정을 관리하는 방법을 알아봅시다.
- 환경 변수 설정 (.env.local)
- next.config.js 설정
11. 배포하기: Vercel부터 다른 플랫폼까지
Next.js 앱을 배포하는 방법은 여러 가지가 있습니다.
- Vercel 배포 (가장 쉬운 방법)
- 빌드 후 Node.js 서버에서 실행
- 정적 사이트로 내보내기
12. 성능 최적화 팁
Next.js 앱의 성능을 더욱 향상시키는 방법들입니다.
- 동적 임포트 사용
- 이미지 최적화
- 번들 크기 줄이기