변경과 무효화를 붙인다
DB update 뒤 관련 목록과 상세 캐시를 revalidatePath 또는 revalidateTag로 갱신한다.
결과 경험 설계
성공 후 redirect, toast, optimistic update 중 사용자가 기대하는 피드백을 정한다.
use server
서버 실행 선언
함수가 서버에서 실행되어 비밀 값과 DB 접근을 처리할 수
있다.
클라이언트 신뢰 금지.
FormData
폼 입력
HTML form과 잘 맞지만 타입 변환과 schema 검증이 필요하다.
빈 문자열과 누락값을 구분한다.
revalidate
화면 갱신
mutation 후 오래된 서버 캐시를 무효화한다.
관련 경로를 빠뜨리지 않는다.
pending
제출 중 상태
사용자가 중복 제출하지 않도록 버튼 상태와 피드백을
제공한다.
client helper가 필요할 수 있다.
권한 · 검증 · 무효화 점검
액션 골격
'use server';
export async function updatePost(formData: FormData) {
const input = parsePost(formData);
await savePost(input);
revalidateTag('posts');
}