이 글은 TaskFlow 학습 과정 안내입니다. 필요한 주제를 골라 읽거나, 각 회차의 선택 실습에서 프로젝트를 이어 만들 수 있습니다.
React 작업 관리 앱을 Next.js 서비스로 확장할 때 무엇부터 배우나요?
이 과정은 React에서 만든 작업 관리 화면을 Next.js 서비스 구조로 확장합니다. 폴더와 URL 연결부터 서버·브라우저 역할, API, 로그인, 캐시, SEO 순서로 살펴봅니다.
적용 조건·범위: 이 글의 답: 새 프로젝트를 시작하는 경우와 이미 발생한 오류를 해결하는 경우에 첫 글이 다릅니다. 아래 상황 하나를 골라 해당 글의 최소 예제나 확인 절차부터 보세요. TaskFlow 누적 실습은 나중에 이어 갈 수 있습니다.
공식 문서 참고: Next.js: App Router의 페이지·레이아웃·동적 경로 · Next.js: Server·Client Component의 실행 역할 · TanStack Query: 서버 상태의 조회·캐시·동기화
이 과정에서 무엇을 만드나요?
최종 결과물은 Next.js App Router 기반 TaskFlow 학습 프로젝트입니다. 저장소는 단일 Node 프로세스 메모리이며 서버 재시작 시 초기화됩니다. Auth.js 로컬 학습 계정을 사용하고 실제 서비스 운영에는 DB와 운영 인증 정책을 추가해야 합니다.
React 과정에서 익힌 작업 모델을 새 App Router 프로젝트에 옮겨 다음 기능을 연결합니다. React ZIP의 UI와 라이브러리를 모두 그대로 복사하지는 않습니다.
URL 라우팅
/tasks
/tasks/[id]
/settings
/login
↓
App Router 심화
Route Group
Private Folder
Parallel Routes
Intercepting Routes
modal routing
↓
서버 기능
Server Component
Route Handler
Server Action
Streaming
↓
실제 개발 흐름
MSW Mock API
Axios
Auth.js
Proxy 접근 제어
↓
서버 상태
fetch cache
TanStack Query SSR
HydrationBoundary
↓
서비스 운영
환경변수
Metadata
Image
redirects
SEO
Cache
Performance
Security
React TaskFlow에서 무엇이 달라지나요?
React 과정 완료 상태
TaskFlow React SPA
/tasks
/tasks/:id
/settings
클라이언트 컴포넌트 중심
브라우저 state
React Router
React Hook Form
shadcn/ui
이 상태에서도 충분히 SPA를 만들 수 있습니다.
하지만 실제 서비스로 확장하려면 새로운 문제가 생깁니다.
첫 HTML을 서버에서 만들고 싶다
↓
서버에서 DB/API를 읽고 싶다
↓
브라우저에 보내면 안 되는 값을 숨기고 싶다
↓
로그인 사용자를 구분하고 싶다
↓
URL에 따라 서버 데이터를 다르게 가져오고 싶다
↓
공개 페이지의 검색엔진과 SNS 공유 정보를 만들고 싶다
↓
데이터와 route를 캐시하고 싶다
이 문제를 Next.js 과정에서 하나씩 해결합니다.
완성된 TaskFlow 미리보기
작업 목록
/tasks
Server Component가 작업 데이터를 준비하고 필요한 부분만 Client Component로 분리합니다.
작업 상세
/tasks/task-1
동적 route와 async params를 사용합니다.
목록에서 상세 클릭
현재 화면
/tasks
작업 클릭
↓
주소
/tasks/task-1
화면
목록 + 상세 modal
Parallel Routes와 Intercepting Routes를 이용합니다.
직접 /tasks/task-1로 접근하면 전체 상세 페이지가 열립니다.
로그인
/login
↓
Auth.js
↓
session
↓
/tasks 접근
로그인 여부와 작업 수정 권한을 분리해서 처리합니다.
API
GET /api/tasks
POST /api/tasks
Route Handler로 서버 endpoint를 만듭니다.
백엔드가 아직 준비되지 않은 상황에서는 MSW로 Mock API를 만들어 프론트 개발을 계속합니다.
작업 추가
TaskForm
↓
Server Action
↓
서버 검증
↓
저장
↓
revalidate
브라우저 검증과 서버 검증의 역할을 나눕니다.
서버 상태
Server prefetch
↓
dehydrate
↓
HydrationBoundary
↓
Client useQuery
TanStack Query를 Next.js와 연결합니다.
TanStack Query 자체 문법은 별도 전문 과정에서 더 깊게 학습합니다.
TaskFlow는 이렇게 발전합니다
1단계 · App Router 기본
create-next-app
↓
page.tsx
↓
layout.tsx
↓
Server / Client Component
↓
.next
Next.js 프로젝트의 가장 기본적인 실행 구조를 배웁니다.
2단계 · App Router를 제대로 활용
Route Group
↓
Private Folder
↓
template.tsx
↓
Parallel Routes
↓
default.tsx
↓
Intercepting Routes
폴더 구조 자체로 복잡한 UI 라우팅을 구성합니다.
3단계 · 동적 페이지와 상태 UI
[id]
↓
async params
↓
loading.tsx
↓
error.tsx
↓
not-found.tsx
↓
hydration 오류 해결
실제 서비스에서 자주 만나는 route 상태를 처리합니다.
4단계 · 서버 데이터
Server Component data fetch
↓
Suspense / Streaming
↓
MSW
↓
Axios
↓
Route Handler
↓
Server Actions
서버와 브라우저가 데이터를 주고받는 전체 흐름을 만듭니다.
5단계 · 로그인과 권한
Auth.js
↓
session
↓
login / logout
↓
Proxy
↓
서버 최종 권한 검증
로그인 여부와 데이터 소유권을 구분합니다.
6단계 · 서버 상태와 캐시
searchParams
↓
fetch cache
↓
TanStack Query
↓
SSR / Hydration
↓
cookies / headers
↓
환경변수
서버 데이터와 브라우저 캐시가 만나는 지점을 학습합니다.
7단계 · 서비스 공개 준비
Metadata
↓
Image
↓
redirects
↓
Cache 4계층
↓
SEO
↓
Performance
↓
Proxy migration
↓
Security
기능 구현 이후 운영 단계에서 필요한 기준까지 다룹니다.
Next.js 과정에서 특히 재미있는 부분
URL은 바뀌는데 화면은 modal
/tasks
↓
작업 클릭
↓
/tasks/task-1
화면:
목록 위에 modal
X.com 같은 서비스에서 볼 수 있는 라우팅 패턴을 App Router로 직접 구성합니다.
백엔드가 없어도 먼저 개발
API 명세
↓
MSW
↓
Mock GET / POST
↓
프론트 개발
↓
실제 API 전환
실무에서 자주 생기는 “백엔드 API가 아직 없음” 상황을 학습 과정에 포함합니다.
서버와 브라우저의 역할을 직접 나눔
Server Component
데이터 준비
Client Component
사용자 상호작용
Route Handler
HTTP API
Server Action
서버 mutation
모든 코드를 use client로 만드는 대신 각 코드가 실행될 위치를 의식하게 됩니다.
두 가지 방식으로 공부할 수 있습니다
방법 1 · 필요한 Next.js 주제만 공부
예를 들어 다음 문제가 궁금하다면 해당 글만 바로 볼 수 있습니다.
window is not defined
hydration failed
params should be awaited
Route Handler 405
metadata 오류
Image remotePatterns
fetch cache
해당 오류 글에서 먼저 증상과 해결 절차를 확인하세요. 누적 프로젝트 절은 해당 과정을 이어 갈 때 활용하세요.
TaskFlow 전체 과정을 몰라도 됩니다.
방법 2 · 1편부터 실제 서비스를 완성
처음부터 공부한다면 각 글 하단의 TaskFlow를 이어서 수정합니다.
next-step-01-first-run
↓
next-step-02-app-router-base
↓
...
↓
next-step-17-route-handler
↓
...
↓
next-step-30-cache-layers
↓
...
↓
next-step-38-cache-update
마지막에는 하나의 Next.js 서비스 구조가 완성됩니다.
지금 어디서 시작하면 되나요? 3분 경로 선택
이 글의 답: 새 프로젝트를 시작하는 경우와 이미 발생한 오류를 해결하는 경우에 첫 글이 다릅니다. 아래 상황 하나를 골라 해당 글의 최소 예제나 확인 절차부터 보세요. TaskFlow 누적 실습은 나중에 이어 갈 수 있습니다.
- App Router 프로젝트를 처음 만든다 → 1편 Next.js 학습 순서. 목표: 첫 실행 후 app 디렉터리의 페이지 흐름을 설명한다.
- 서버에서 읽을 코드와 클릭에 반응할 코드를 나누기 어렵다 → Server/Client Component 경계. 목표: 브라우저 이벤트가 필요한 컴포넌트를 구별한다.
- hydration failed 오류가 뜬다 → hydration 오류 해결. 목표: 서버가 보낸 초기 HTML과 브라우저 첫 렌더의 차이를 찾는다.
- 데이터를 바꿨는데 예전 화면이 보인다 → fetch 캐시와 재검증. 목표: 요청 경로와 캐시 정책을 확인해 오래된 데이터의 위치를 좁힌다.
스스로 확인: “버튼의 onClick이 필요한 화면”과 “새로고침 직후 HTML이 달라 hydration 경고가 나는 화면”은 어디서 시작할까요? 각각 Server/Client Component 경계 글, hydration 오류 글입니다. 증상을 구분한 뒤 첫 예제를 따라 해 보세요.
이 과정을 추천하는 사람
- React를 공부했고 다음 단계로 Next.js를 배우려는 사람
- App Router를 폴더 라우팅 정도로만 알고 있는 사람
- Server Component와 Client Component 구분이 어려운 사람
- Next.js에서 인증·캐시·SEO까지 연결해 보고 싶은 사람
- Parallel/Intercepting Routes를 실제 프로젝트에서 써 보고 싶은 사람
- 프론트엔드 프로젝트를 배포 가능한 서비스 구조까지 확장하고 싶은 사람
필요한 선수 지식
React TaskFlow 과정을 먼저 학습하는 것을 권장합니다.
최소한 다음 내용은 알고 있어야 합니다.
- React 컴포넌트
- props / state
- 이벤트
- Client-side form
- async / await
- TypeScript 기본
- React Router를 통한 URL 개념
Next.js를 미리 알고 있을 필요는 없습니다.
React와 Next.js 과정은 하나의 프로젝트로 이어집니다
React 0~32편
TaskFlow SPA 완성
↓
Next.js 0~38편
TaskFlow 서비스 확장
↓
상태관리 전문 과정
Zustand
TanStack Query
↓
DB / 인증
Firebase
Supabase
↓
운영
배포·서버
BlogFlow의 각 과정이 별개 예제를 반복하는 것이 아니라 하나의 프로젝트를 다른 기술로 확장하도록 설계합니다.
이 과정의 목표
Next.js API 이름을 많이 외우는 것이 목표가 아닙니다.
마지막에는 다음 질문에 답할 수 있어야 합니다.
- 이 코드는 서버와 브라우저 중 어디에서 실행해야 할까?
- 이 페이지는 Server Component여야 할까?
- use client는 어디까지 내려야 할까?
- API endpoint와 Server Action은 언제 나눌까?
- 서버 데이터는 어떻게 갱신해야 할까?
- Next.js cache와 TanStack Query cache는 무엇이 다를까?
- 로그인 확인과 권한 검증은 어디에서 해야 할까?
- 검색엔진이 받는 초기 HTML은 어떤 상태일까?
- 버전 업데이트 후 무엇을 다시 검증해야 할까?
이제 시작합니다
정규 학습은 1편부터 시작합니다.
다음 글:
Next.js App Router 학습 순서와 TaskFlow Next.js 시작
0편
완성 결과 미리보기
↓
1편
Next.js 서비스 개발 시작
실행 범위
정규 38개 ZIP은 독립 실행할 수 있습니다. 19편부터 로컬 인증 설정이 필요하며 20편부터 개인 작업은 로그인해야 접근할 수 있습니다. 22편의 캐시 실험은 별도 공개 통계 API를 실행합니다. 개인 작업은 noindex로 유지하고 공개 홈에서 SEO를 확인합니다.
전체 학습 순서
- Next.js App Router 학습 순서와 TaskFlow Next.js 시작
- Next.js App Router 첫 프로젝트 만들기
- Next.js package.json scripts dependencies 이해
- Next.js Server Component와 Client Component 구분
- Next.js next 폴더와 빌드 산출물 이해
- Next.js Route Group Private Folder template tsx
- Next.js Parallel Routes default tsx
- Next.js Intercepting Routes 모달 라우팅
- Next.js 동적 라우트 slug params catch-all
- Next.js params should be awaited 오류 해결
- Next.js loading error not-found 라우트 상태 처리
- Next.js window is not defined 오류 해결
- Next.js hydration failed 오류 해결
- Next.js Server Component 데이터 조회와 Streaming
- Next.js MSW 2 Mock API 만들기
- Axios 설치와 Next.js API 요청 구조
- Next.js Route Handler 405 오류 해결
- Next.js Server Actions React Hook Form 검증
- Next.js Auth.js 로그인 세션 로그아웃
- Next.js 인증 페이지와 Proxy 접근 제어
- Next.js useSearchParams Suspense 오류 해결
- Next.js fetch 캐시와 재검증
- Next.js TanStack Query SSR HydrationBoundary
- Next.js cookies headers Dynamic server usage 오류 해결
- Next.js 환경변수 env local 적용 오류 해결
- Next.js Metadata API와 generateMetadata
- Next.js metadata 적용 오류 해결
- Next.js Image remotePatterns 오류 해결
- Next.js redirects 설정과 URL 이동 처리
- Next.js 캐시 구조 Request Data Full Route Router Cache
- Next.js SEO 체크리스트 metadata 초기 HTML OG
- Next.js SEO 종합 가이드 App Router부터 배포 확인
- Next.js 성능 최적화 체크리스트 번들 이미지 캐시
- Next.js 렌더링 성능 최적화 기준
- Next.js Proxy 마이그레이션 matcher Node.js Runtime
- Next.js 보안 패치 영향 범위 점검
- Next.js SEO SSR 초기 HTML 검색 노출 구조
- Next.js 캐시 API 변화 useCache deprecation 대응
글 소개·학습 준비·전체 목차

Next.js · 0/38 · TaskFlow 누적 실습
Next.js로 TaskFlow 만들기: 38편 학습 과정 미리보기
Next.js 0편 · 과정 오리엔테이션 · TaskFlow 서비스 미리보기
React 과정에서 만든 TaskFlow는 브라우저 안에서 동작하는 SPA입니다.
이제 이 프로젝트를 실제 서비스 구조로 확장합니다.
단순히 Next.js 문법을 하나씩 외우는 과정이 아닙니다.
React TaskFlow SPA
↓
Next.js TaskFlow 서비스
라우팅
Server Component
Client Component
고급 App Router
API
인증
서버 데이터
캐시
SEO
성능
보안
38편을 지나면 React에서 만든 TaskFlow가 서버와 브라우저 역할이 분리된 Next.js 서비스 구조로 바뀝니다.
이 글은 정규 회차에 포함하지 않는 0편입니다.
0편
과정 소개 · 완성 결과 미리보기
1~38편
실제 Next.js 학습 + TaskFlow 서비스 확장
이 글이 도움이 되었나요?
읽음 기록
읽음 — / 전체 39개 · 필수 38개
새 글 받아보기
RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.