contents

싱글 페이지 애플리케이션(Single-Page Application, SPA) 은 브라우저 내부에서 작동하며 사용 중에 페이지를 새로고침할 필요가 없는 현대적인 웹 애플리케이션입니다. 단일 HTML 페이지를 로드한 후, 사용자가 앱과 상호작용함에 따라 서버로부터 완전히 새로운 페이지를 로드하는 대신 현재 페이지의 콘텐츠를 동적으로 재작성합니다. 이를 통해 네이티브 데스크톱이나 모바일 애플리케이션과 유사한 유연하고 빠르며 반응성이 뛰어난 사용자 경험을 만들어냅니다.


전통적인 멀티 페이지 앱(MPA) vs. SPA

SPA를 이해하는 가장 좋은 방법은 전통적인 웹 모델과 비교하는 것입니다.

멀티 페이지 애플리케이션 (MPA) 📄

전통적인 MPA에서는 모든 중요한 변경이나 탐색이 새로운 HTML 페이지를 서버로부터 가져오기 위한 전체 왕복(round-trip)을 발생시킵니다.

싱글 페이지 애플리케이션 (SPA) 📱

SPA에서는 초기 페이지 로드 시 애플리케이션 "셸(shell)"을 가져옵니다. 그 후에는 필요한 데이터만 서버에서 가져오고, 페이지는 브라우저에서 동적으로 업데이트됩니다.


SPA의 작동 원리: 핵심 기술 ⚙️

몇 가지 핵심 기술과 개념이 SPA를 가능하게 합니다.

1. 자바스크립트 프레임워크/라이브러리

현대의 SPA는 거의 항상 강력한 자바스크립트 프레임워크를 사용하여 구축됩니다. 이러한 프레임워크는 애플리케이션의 상태를 관리하고, 사용자 상호작용을 처리하며, UI를 효율적으로 업데이트하는 도구를 제공합니다.

2. 클라이언트 사이드 라우팅

SPA는 각기 다른 URL(예: /home, /profile, /settings)을 처리할 때마다 서버에 새 페이지를 요청하지 않고 처리할 방법이 필요합니다. 이는 클라이언트 사이드 라우터에 의해 관리됩니다.

3. API를 통한 데이터 가져오기

서버가 초기 로드 후에는 HTML 페이지를 보내지 않기 때문에, SPA는 데이터를 주고받을 방법이 필요합니다. 이는 백엔드 API(Application Programming Interface)와 통신하여 이루어집니다.


SPA의 렌더링 전략

HTML이 어떻게 그리고 어디서 렌더링되는지는 성능과 SEO에 큰 영향을 미칩니다.


SPA의 장점과 단점 ⚖️

장점

단점

references