use server]폼 제출이나 API 호출처럼 특정 이벤트 처리use server를 붙여서 서버에서 실행됨 /app/api/에 정의된 엔드 포인트 (App Router 기준)HTML만 전송 (번들 사이즈 줄고 초기 로딩 속도 ↑)Server Action
1. 버튼 클릭 이벤트 같은 UI 액션을 서버에서 처리
2. FormData 파싱 및 CSRF 방어를 자동으로 처리
3. GET 요청에 직접 대응 불가능 (폼 action 방식이라 기본적으로 POST)
API Route
1. GET, POST, PUT, DELETE 등 다양한 HTTP 메서드 지원
2. fetch, axios 같은 클라이언트 코드에서 호출 필요
3. FormData 파싱 및 CSRF 방어 직접 구현
여기까지 읽었을 때 평소에 API 연동 시 GET 요청만 아니면 Server Action으로 처리해도 되지 않나? 싶었는데...
위에 해당되는 케이스일 때 API Route를 사용하면 된다!
Server Component = UI
Server Action = 컴포넌트 안에서 일어나는 액션 처리
API Route = HTTP 메서드와 API를 처리하는 곳