정의와 특징, 장단점 위주의 간략한 정리.
위키피디아는 싱글 페이지 애플리케이션을 아래와 같이 정의한다.
Single이라는 이름을 보는순간 직감적으로 '싱글의 반대인 멀티? 같은건 없나?; 라는 생각이 들었는데 정말 Multiple Page Application이라는게 있었다.
SPA의 특징들과 비교해보면서 읽어보자. 결국 이 둘의 가장 큰 차이는 '로딩 방식'에 있음
<사진출처> ASCENT
전통적인 페이지 라이프사이클을 보면 요청 때마다 HTML 전체가 가져와진다.
반면에 SPA는 처음에만 렌더링이 되고 그 이후로는 AJAX 등을 이용해 필요한 부분만을 리렌더링 한다.
여기에서 신기했던 점은 페이지를 다시 갱신할 때 서버에서 받아오는 자료의 타입이었다. 바로 JSON이다. 페이지 갱신에 필요한 데이터만을 JSON으로 전달받아 페이지를 다시 렌더링 하니 소위 '가벼울' 수 밖에 없겠다.
SPA의 장점
SPA의 단점
초기 구동 속도
- SPA는 보통 SSR 방식(서버 사이드 렌더링)이 아닌 클라이언트 사이드 렌더링(CSR) 방식으로 동작. 따라서 웹 애플리케이션에 필요한 모든 정적리소스를 한번에 다운받아야 함.
SEO(검색엔진 최적화 이슈) 관점에서 불리함 => 왜 그런지는 찾아볼 것.
MPA의 장점
MPA의 단점
서치하다보니 오전에 트레이너님이 말씀해주신 SSR, CSR 개념도 나오는데 그건 다음글에서 정리.
참고
위키백과
Ascent korea
Single Page Application & Routing
MPA와 SPA, SSR과 CSR, 그리고 SEO