[javascript] 리액트 라우터와 Next.js의 결합 방법

리액트 라우터(React Router)는 리액트 애플리케이션에서 라우팅을 관리하기 위한 유용한 라이브러리입니다. 그리고 Next.js는 리액트 애플리케이션을 쉽게 서버 사이드 렌더링할 수 있도록 도와주는 프레임워크입니다. 이 두 가지를 결합하여 더 나은 사용자 경험을 제공할 수 있습니다. 이번 글에서는 리액트 라우터와 Next.js를 함께 사용하는 방법을 알아보겠습니다.

1. Next.js 설치하기

먼저, Next.js를 설치해야 합니다. 다음 명령어를 사용하여 Next.js를 프로젝트에 추가합니다:

npm install next react react-dom

2. Next.js 프로젝트 생성하기

Next.js를 설치한 후, 새로운 Next.js 프로젝트를 생성합니다. 터미널에서 다음을 실행합니다:

npx create-next-app

프로젝트 생성 시에는 여러 설정을 선택할 수 있습니다. 필요에 따라 설정 값을 선택하고 진행하세요.

3. 리액트 라우터 설치하기

Next.js 프로젝트가 생성되면, 리액트 라우터를 설치합니다. 다음 명령어를 실행합니다:

npm install react-router-dom

4. 라우트 설정하기

라우팅을 사용하기 위해 필요한 라우트를 설정해야 합니다. pages 디렉토리 내에 각 페이지에 대한 컴포넌트를 생성합니다. 이때, react-router-dom 패키지의 BrowserRouterRoute를 사용하여 라우트 구성을 설정합니다. 예를 들어, pages 디렉토리에 Home.jsAbout.js라는 두 개의 컴포넌트를 생성하고 다음과 같이 설정할 수 있습니다:

pages/Home.js:

import React from 'react';

const Home = () => {
  return (
    <div>
      <h1>Home</h1>
    </div>
  );
};

export default Home;

pages/About.js:

import React from 'react';

const About = () => {
  return (
    <div>
      <h1>About</h1>
    </div>
  );
};

export default About;

pages/index.js:

import React from 'react';
import { BrowserRouter, Route } from 'react-router-dom';
import Home from './Home';
import About from './About';

const App = () => {
  return (
    <BrowserRouter>
      <Route path="/" exact component={Home} />
      <Route path="/about" component={About} />
    </BrowserRouter>
  );
};

export default App;

위 설정에서 첫 번째 라우트는 / 경로에 대한 Home 컴포넌트를, 두 번째 라우트는 /about 경로에 대한 About 컴포넌트를 매핑합니다.

5. Next.js 애플리케이션 실행하기

설정이 끝나면 Next.js 애플리케이션을 실행할 수 있습니다. 터미널에서 다음 명령어를 실행합니다:

npm run dev

서버가 성공적으로 시작되면 localhost:3000에서 애플리케이션을 볼 수 있습니다. 브라우저에서 / 또는 /about 경로로 접속하여 해당 컴포넌트를 확인할 수 있습니다.

결론

리액트 라우터와 Next.js를 결합하여 애플리케이션의 라우팅을 관리할 수 있습니다. 이 두 가지 기술을 함께 사용하면 클라이언트 사이드 라우팅과 서버 사이드 렌더링을 조합하여 보다 유연한 애플리케이션을 개발할 수 있습니다. 위에서 설명한 단계를 따라하면 리액트 라우터와 Next.js의 결합을 간단히 적용할 수 있습니다.

참고 문서: 리액트 라우터 공식 문서