// src/app/page.tsx 'use client'; // 클라이언트 컴포넌트 선언 (React Query 사용 위해) import { useQuery } from '@tanstack/react-query'; import { getPosts } from '@/api/posts'; import PostCard from '@/components/post/PostCard'; import { Post } from '@/types'; export default function Home() { // 1. React Query로 데이터 가져오기 const { data, isLoading, isError } = useQuery({ queryKey: ['posts'], // 캐싱 키 queryFn: () => getPosts(0, 10), // 0페이지, 10개 조회 }); // 2. 로딩 중일 때 if (isLoading) { return (
게시글을 불러오는 중...
); } // 3. 에러 났을 때 if (isError) { return (
게시글을 불러오지 못했습니다. 서버가 켜져 있는지 확인해주세요.
); } // 4. 데이터 렌더링 return (

개발자 블로그 🧑‍💻

공부한 내용을 기록하는 공간입니다.

{/* 게시글 목록 그리드 */}
{data?.content.map((post: Post) => ( ))}
{/* 게시글이 하나도 없을 때 */} {data?.content.length === 0 && (
작성된 게시글이 없습니다.
)}
); }