SPA란 Single Page Application의 약자로, 사용자가 웹 애플리케이션을 이용할 때 페이지 전체를 새로 로드하지 않고 필요한 데이터나 UI만 동적으로 변경하는 웹 애플리케이션입니다.
💡 특징
- 단일 HTML 페이지
- 최초 로드 시 하나의 HTML 페이지 (index.html)를 서버에서 받아오고 이후부터는 필요 데이터만 비동기로 요청
- 빠른 화면 전환
- 페이지 전환 속도가 빠름(전체 리로드가 없으므로).
- 클라이언트 사이드 라우팅
- URL이 바뀌어도 전체 페이지가 새로고침되지 않으며, 필요한 컴포넌트만 동적으로 렌더링
- API 중심 구조
- 서버는 주로 JSON 데이터를 RESTful API나 GraphQL로 제공
🖥 동작 방식
- 초기 로드
- 사용자가 웹 앱에 처음 접속하면 index.html, JavaScript 번들, CSS 파일을 다운로드
- 페이지 이동
- 사용자가 링크를 클릭하면 브라우저는 전체 페이지 리로드 대신 필요한 데이터나 컴포넌트를 업데이트
- 비동기 데이터 로드
- 서버로부터 필요한 데이터만 AJAX 요청으로 받아서 화면을 업데이트
📚 장점
- 빠른 사용자 경험
- 페이지 리로드가 없으므로 사용자 경험(UX)이 향상
- 네트워크 효율성
- 필요한 데이터만 요청하기 때문에 네트워크 트래픽이 감소
- 모바일 앱과 유사한 인터페이스
- 자연스러운 화면 전환과 빠른 응답 속도를 제공해 모바일 앱과 유사함
⚠️ 단점
- 초기 로딩 시간 증가
- 초기 로딩 시 모든 스크립트를 다운로드해야 하므로 로딩 시간이 길어짐
- SEO(검색 엔진 최적화) 문제
- 클라이언트 렌더링 방식으로 인해 검색 엔진 크롤러가 콘텐츠를 제대로 인식어려움
- 브라우저 메모리 사용
- 클라이언트가 모든 페이지 상태를 관리하기 때문에 메모리 부담이 증가
- 클라이언트가 모든 페이지 상태를 관리하기 때문에 메모리 부담이 증가
🛠 주요 SPA 프레임워크
- React
- Vue.js
- Angular
🌐 예시 사이트
- Gmail
- Trello
'Front-End' 카테고리의 다른 글
Nginx (0) | 2025.01.21 |
---|---|
포맷팅 라이브러리 사용법 (0) | 2024.11.21 |
JavaScript-Object (0) | 2024.11.10 |
JavaScript-Function(2) (0) | 2024.11.10 |
JavaScript-Function (0) | 2024.11.10 |