본문 바로가기

JavaScript/REACT

SPA

SPA(Single Page Application)와 그 특징

SPA란 Single Page Application의 약자로, 웹 애플리케이션의 한 종류다. 전통적인 멀티 페이지 웹사이트와 달리, SPA는 하나의 웹 페이지로 구성되어 사용자와의 상호작용을 통해 동적으로 컨텐츠를 갱신한다. 이 구조는 웹 애플리케이션의 반응 속도를 크게 향상시키지만 몇 가지 단점도 존재한다.

SPA의 단점

  • 초기 로딩 지연: SPA는 첫 로딩 때 애플리케이션에 필요한 대부분의 자원을 한 번에 불러와야 하기 때문에 초기 로딩 시간이 길어질 수 있다.
  • SEO 문제: SPA는 페이지의 내용이 자바스크립트에 의존적으로 렌더링되므로 검색 엔진이 페이지의 내용을 제대로 크롤링하고 인덱싱하는 데 어려움이 있을 수 있다. 이는 검색 엔진 최적화(SEO)에 부정적인 영향을 줄 수 있다.

컴포넌트의 재사용성

SPA는 같은 컴포넌트를 다양한 방식으로 재사용할 수 있다는 장점이 있다. 예를 들어, 다양한 페이지에서 비슷한 레이아웃이나 기능을 가진 컴포넌트를 활용함으로써 개발 시간과 노력을 절약할 수 있다. 비슷해 보이지만 다르게 작동하는 여러 화면을 효율적으로 구성할 수 있다.

리액트 라우터와 그 역할

리액트 애플리케이션에서 페이지 간의 라우팅을 관리하기 위해서는 **리액트 라우터(React Router)**를 사용한다. 리액트 라우터는 다음과 같은 구성 요소로 이루어져 있다:

  • BrowserRouter: 브라우저의 history API를 사용하여 UI를 URL에 동기화하는 라우터의 종류다.
  • Route: 특정 경로에 컴포넌트를 매핑하는 역할을 한다. 사용자가 특정 경로에 접근하면, 해당 경로에 연결된 컴포넌트가 렌더링된다.
  • Link: 사용자가 다른 경로로 네비게이션할 수 있도록 하는 컴포넌트다. <a> 태그와 유사하지만, 페이지를 새로고침하지 않고 라우트를 변경한다.
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';

function App() {
  return (
    <Router>
      <div>
        <Link to="/">Home</Link>
        <Link to="/about">About</Link>

        <Route path="/" exact component={Home} />
        <Route path="/about" component={About} />
      </div>
    </Router>
  );
}

function Home() {
  return <h1>Home Page</h1>;
}

function About() {
  return <h1>About Page</h1>;
}

위 예시에서는 Home과 About 페이지로의 라우팅을 간단하게 구현하고 있다. 사용자가 링크를 클릭하면, 해당 경로에 맞는 컴포넌트가 렌더링되어 페이지 전체를 리로드하지 않고도 내용이 변경된다.

이처럼 SPA와 리액트 라우터를 통해 사용자 경험을 개선하고 개발의 효율성을 높일 수 있다.

'JavaScript > REACT' 카테고리의 다른 글

CDD  (0) 2025.01.17
JSX  (0) 2025.01.17
Custom Component  (0) 2025.01.17
React State & Props  (0) 2025.01.17
Ajax - 이벤트 훅  (0) 2024.07.25