기본 Server Component 예제

← Server Components 예제로 돌아가기

🎯 핵심 포인트

김철수

kim@example.com

ADMIN
15
게시물
120
팔로워

🌤️ 현재 날씨

22°C
서울
맑음
습도 65% · 바람 5m/s

🖥️ 서버 정보

서버 시간:2025. 12. 12. 오전 2:01:03
빌드 시간:2024. 1. 16. 오전 9:30:00
Next.js 버전:15.0.0
Node.js 버전:v20.19.2
서버 가동 시간:13시간 20분

✅ 이 정보는 서버에서 생성되어 클라이언트로 전송된 HTML에 포함되어 있습니다. 페이지 소스 보기를 통해 확인할 수 있습니다!

📝 최근 포스트

React 19 Server Components 완벽 가이드

Server Components는 서버에서 렌더링되어 성능을 크게 향상시킵니다...

👤 김철수👀 1,250❤️ 89
2024. 1. 15.

Next.js 15 새로운 기능들

Next.js 15에서 추가된 혁신적인 기능들을 살펴보겠습니다...

👤 이영희👀 890❤️ 67
2024. 1. 12.

TypeScript와 함께하는 모던 개발

TypeScript를 활용한 안전하고 효율적인 개발 방법론...

👤 박민수👀 2,100❤️ 156
2024. 1. 10.

⚡ 성능 장점

  • 번들 크기 감소: 서버 컴포넌트는 클라이언트 번들에 포함되지 않음
  • 빠른 초기 로드: HTML이 서버에서 완성되어 전송
  • 캐싱 효율성: 서버에서 렌더링된 결과를 캐시 가능
  • 네트워크 최적화: 클라이언트에서 추가 API 요청 불필요

🔒 보안 장점

  • API 키 보호: 서버에서만 사용, 클라이언트에 노출되지 않음
  • 데이터베이스 직접 접근: 중간 API 레이어 불필요
  • 민감한 로직: 비즈니스 로직이 서버에서만 실행
  • 환경 변수: 서버 환경 변수 안전하게 사용

💡 Server Component 특징

// ✅ Server Component에서 가능한 것들
export default async function ServerComponent() {
    // 1. async/await 직접 사용
    const data = await fetchFromDatabase();
    
    // 2. 서버 전용 라이브러리 사용
    const fs = require('fs');
    const file = fs.readFileSync('server-file.txt');
    
    // 3. 환경 변수 직접 접근
    const apiKey = process.env.SECRET_API_KEY;
    
    // 4. 병렬 데이터 페칭
    const [users, posts] = await Promise.all([
        fetchUsers(),
        fetchPosts()
    ]);
    
    return <div>{data.title}</div>;
}

// ❌ Server Component에서 불가능한 것들
// - useState, useEffect 등 React Hook 사용
// - onClick 등 이벤트 핸들러
// - 브라우저 전용 API (localStorage, window 등)
// - 클라이언트 상태 관리