SPA(Single Page Application)는 단일 페이지로 구성된 모던 웹 애플리케이션을 의미합니다.
기존의 웹사이트는 여러 개의 HTML 페이지로 이루어져 있지만, SPA는 하나의 페이지에서 모든 콘텐츠를 동적으로 관리합니다.
SPA를 구현하는 대표적인 프레임워크 & 라이브러리
이러한 JavaScript 프레임워크들은 SPA 개발에 필요한 다양한 기능과 도구를 제공하여, 복잡한 웹 애플리케이션을 효율적으로 만들 수 있도록 도와줍니다.
MPA는 전통적인 웹 애플리케이션 방식으로, 사용자가 페이지를 이동할 때 서버에서 새로운 HTML 페이지를 요청하고 렌더링하는 방식입니다.
MPA의 특징
1. 페이지 이동 시마다 서버에서 새로운 HTML을 받아옴
2. 초기 로딩 속도는 빠르지만, 페이지 간 이동 속도가 느릴 수 있음
3. 서버 부하가 높아질 가능성이 있음
| 비교 항목 | SPA (Single Page Application) | MPA (Multi Page Application) |
|---|---|---|
| 페이지 로딩 방식 | 최초 로딩 후 필요한 데이터만 갱신 | 매번 새로운 HTML 페이지 로드 |
| 네트워크 요청 | 최소화 (비동기 데이터 요청) | 페이지 이동마다 새 요청 발생 |
| 사용자 경험(UX) | 빠르고 부드러운 인터랙션 | 페이지 이동 시 로딩 시간 발생 |
| 서버 부담 | 서버 부담이 적음 (클라이언트에서 데이터 처리) | 서버에서 매번 렌더링하여 부담 증가 |
| 적합한 경우 | 대규모 웹 애플리케이션, 빠른 반응이 중요한 서비스 | 간단한 정보 제공 서비스 |
SPA는 빠른 인터랙션이 필요한 웹 애플리케이션에 적합하며, MPA는 간단한 콘텐츠 기반 서비스에 적합합니다.
React Router, Vue Router, Angular Router 등 다양한 클라이언트 사이드 라우팅 라이브러리 활용 가능 Redux, Vuex, Recoil, Pinia 등의 상태 관리 라이브러리와 함께 사용하여 서버와의 데이터 동기화 가능 React, Vue, Angular 등의 프레임워크에서는 UI를 독립적인 컴포넌트로 개발 및 재사용 가능 예시:
빠른 반응성과 인터랙션이 중요한 경우 SPA, 간단한 정보 제공 사이트라면 MPA 방식을 고려하세요!