Next.js 13 강의 달린다 (1강~6강)
[주요 목차]
🛠️ 목차1: 넥스트.js란?
📦 목차2: 개발 환경 세팅하기
💻 목차3: 코드 작성 시작하기
🖼️ 목차4: 이미지 최적화하기
🌐 목차5: 클라이언트와 서버 컴포넌트 이해하기
웹 개발의 세계에 발을 들여놓는 일은 매우 흥미롭습니다. 하지만 처음에는 많은 도전과제가 있습니다. 개발 환경을 세팅하는 과정은 특히 중요하며, 이 단계가 잘 이루어져야 이후의 작업이 매끄럽게 진행될 수 있습니다. 이번 블로그에서는 넥스트.js를 사용하여 개발 환경을 어떻게 구축하는지에 대해 단계별로 알아보겠습니다. 또한, 개발 환경을 세팅한 후에는 간단한 웹 페이지를 만들어 보고, 이미지 최적화 및 클라이언트와 서버 컴포넌트의 개념에 대해서도 설명하겠습니다. 이제 시작해 볼까요?
🛠️ 넥스트.js란?
넥스트.js는 React 기반의 웹 개발 프레임워크로, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 지원합니다. 이를 통해 SEO를 최적화하고, 빠른 페이지 로딩 속도를 제공할 수 있습니다. 넥스트.js는 페이지 기반 라우팅을 지원하며, API 라우팅 기능도 제공하여 서버리스 애플리케이션 구축에 유리합니다. 개발자 친화적인 API와 다양한 기능을 통해 사용자 경험을 향상시키는 데 큰 도움이 됩니다.
📦 개발 환경 세팅하기
개발 환경을 세팅하기 위해서는 먼저 Node.js와 npm이 설치되어 있어야 합니다. Node.js는 자바스크립트 런타임으로, npm은 Node 패키지 관리자로 넥스트.js와 같은 패키지를 설치하는 데 사용됩니다.
- Node.js 설치하기: Node.js 공식 웹사이트에서 LTS 버전을 다운로드하여 설치합니다.
- 넥스트.js 설치하기: 터미널을 열고 아래의 명령어를 입력하여 넥스트.js 앱을 생성합니다.
bash npx create-next-app@latest
- 프로젝트 폴더 열기: 생성한 프로젝트 폴더로 이동하여, VS Code와 같은 에디터에서 열어줍니다.
- 프로젝트 실행하기: 아래의 명령어로 개발 서버를 실행합니다.
bash npm run dev
이제 브라우저에서http://localhost:3000
으로 접속하면 넥스트.js의 초기 페이지를 확인할 수 있습니다.
💻 코드 작성 시작하기
넥스트.js 프로젝트가 설정되면, 다음 단계는 페이지를 작성하는 것입니다. pages
폴더 안에 index.js
파일을 수정하여 기본 콘텐츠를 작성해보겠습니다.
javascript
export default function Home() {
return (
<div>
<h1>안녕하세요, 넥스트.js에 오신 것을 환영합니다!</h1>
</div>
)
}
위 코드를 작성한 후, 저장하면 브라우저에서 실시간으로 변경 사항을 확인할 수 있습니다. 이처럼 넥스트.js는 Hot Reloading을 지원하여, 코드 변경 시 자동으로 브라우저를 업데이트해줍니다.
🖼️ 이미지 최적화하기
이제 페이지에 이미지를 추가해보겠습니다. 이미지 최적화는 웹 성능을 높이는 데 매우 중요합니다. 넥스트.js의 next/image
컴포넌트를 사용하여 이미지를 최적화할 수 있습니다.
```javascript import Image from 'next/image'; import myImage from '../public/my-image.png';
export default function Home() { return (
안녕하세요, 넥스트.js에 오신 것을 환영합니다!
🌐 클라이언트와 서버 컴포넌트 이해하기
넥스트.js에서는 클라이언트 컴포넌트와 서버 컴포넌트를 구분합니다. 클라이언트 컴포넌트는 사용자의 브라우저에서 실행되며, 서버 컴포넌트는 서버에서 실행됩니다. 이 두 가지 컴포넌트는 각기 다른 장점을 가지고 있습니다.
- 서버 컴포넌트: 빠른 페이지 로딩과 SEO 최적화에 유리합니다.
- 클라이언트 컴포넌트: 사용자 상호작용(예: 버튼 클릭)에 대한 반응성이 뛰어납니다.
서버 컴포넌트에서는 자바스크립트 기능을 사용할 수 없지만, 클라이언트 컴포넌트에서는 자유롭게 사용할 수 있습니다.
(📌) 공식사이트
넥스트.js에 대한 더 자세한 정보는 넥스트.js 공식 문서에서 확인하실 수 있습니다.