본문 바로가기
Programming

jQuery SPA(Single Page Application) 구축하기

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 10. 12.
반응형

🌐 SPA 구축하기

SPA(Single Page Application)는 단 한 개의 HTML 페이지에서 동적으로 콘텐츠를 바꿔가며 작동하는 웹 애플리케이션 구조입니다. jQuery를 사용하면 간단한 형태의 SPA를 구현할 수 있습니다.

📌 SPA란 무엇인가요?

  • 페이지 전체를 새로고침하지 않고 필요한 부분만 동적으로 갱신합니다.
  • 빠른 반응성과 부드러운 사용자 경험을 제공합니다.
  • URL 변경도 자바스크립트로 제어합니다 (예: #home, #about 등).

🧱 프로젝트 구조 예시

index.html
js/
 └ app.js
views/
 ├ home.html
 ├ about.html
 └ contact.html
  

🛠 기본 HTML 구성

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>jQuery SPA</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="js/app.js"></script>
</head>
<body>
  <nav>
    <a href="#home">Home</a>
    <a href="#about">About</a>
    <a href="#contact">Contact</a>
  </nav>

  <div id="view"></div>
</body>
</html>
  

🔁 app.js - 간단한 라우터 구현

$(function() {
  function loadView(viewName) {
    $("#view").load(`views/${viewName}.html`);
  }

  function router() {
    const hash = location.hash.replace("#", "") || "home";
    loadView(hash);
  }

  $(window).on("hashchange", router);

  // 초기 로드
  router();
});
  

위 코드는 #home, #about, #contact 해시 값에 따라 각 HTML 뷰를 #view 영역에 로드합니다.

📄 views/home.html

<h2>🏠 홈 페이지</h2>
<p>여기는 홈입니다. 환영합니다!</p>
  

📄 views/about.html

<h2>📖 About 페이지</h2>
<p>이 사이트는 jQuery SPA 예제입니다.</p>
  

📄 views/contact.html

<h2>📬 Contact 페이지</h2>
<p>문의는 이메일로 보내주세요: contact@example.com</p>
  

🧠 요약

  • hashchange 이벤트를 감지하여 라우팅을 구현
  • 각 뷰 파일을 $.load()로 동적으로 불러오기
  • 페이지 새로고침 없이 내용 변경

이처럼 jQuery만으로도 간단한 SPA 형태의 애플리케이션을 구현할 수 있습니다. 더 고급 기능을 원한다면 pushState 기반의 라우터템플릿 엔진도 연동할 수 있습니다.

반응형

'Programming' 카테고리의 다른 글

jQuery API 통합 실전  (64) 2025.10.15
jQuery 유지보수성과 재사용성  (66) 2025.10.14
jQuery 이벤트 위임과 동적 요소 처리  (54) 2025.10.11
jQuery 성능 최적화  (56) 2025.10.10
jQuery 플러그인 만들기  (42) 2025.10.09