SPA는 Single Page Application, 싱글 페이지 어플리케이션이다.
삼대장은 앵귤러, 리액트, 뷰가 있다.
SPA는 말 그대로 페이지가 하나인 어플리케이션이다. 서버로부터 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 다시 만드는 웹 어플리케이션 또는 웹 사이트를 말한다.
기존의 웹 방식은 새로운 페이지를 요청할 때마다 정적 리소스가 다운로드되고 전체 페이지를 다시 랜더링한다. 이때 새로고침이 발생되어 사용자 경험이 좋지 않다. 또한 변경이 필요없는 부분까지 포함하여 전체 페이지를 갱신하기 때문에 비효율적이다.
SPA는 이러한 점을 극복하기 위해 탄생했다. 페이지를 새로 받는 것이 아닌, 기존 페이지에서 필요한 부분만 바꾸는 것이다. 그리고 이 작업은 JS로 처리한다. SPA는 사용자 경험(UX)을 향상시킬 수 있으며 서비스의 속도도 높일 수 있다.
- 장점 :
1) 단일 페이지로 구성되며 기존의 서버 사이드 렌더링과 비교할때 배포가 간단하다.
2) 웹 어플리케이션에 필요한 모든 정적 리소스를 최초에 한번만 다운로드한다.
3) 이후 새로운 페이지 요청시, 필요한 데이터만 전달받아 페이지를 갱신하므로 트래픽이 감소된다.
(ajax로 요청하여 json형식의 데이터를 받음)
4) 전체 페이지를 다시 랜더링하지 않고 변경되는 부분만 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공한다.
- 단점 :
1) 웹 어플리케이션에 필요한 모든 정적 리소스를 최초에 한번만 다운로드하기 때문에 초기 구동 속도가 상대적으로 느리다.
2) 서버 렌더링 방식이 아닌 클라이언트 렌더링 방식이기 때문에 검색엔진 최적화(Search Engine Optimization, SEO) 이슈가 있다.