SPA란?
SPA는 Single Page Application의 약자로서 하나의 페이지로 구성된 애플리케이션을 말합니다. 페이지 요청 시 완전히 새로운 페이지를 불러오는 것이 아닌, 동적으로 페이지를 다시 작성해 '사용자와 소통' 하는 웹 애플리케이션 or 웹 사이트를 뜻하며, 처음 로드 하고 난 뒤 새로고침이 없는 것이 특징입니다. SPA는 사용자가 요청한 각각의 페이지를 서버가 생성해서 전달해주는 것이 아니라, 클라이언트가 동적으로 페이지를 다시 작성하는 방식이며, 첫 페이지 요청 시 단 한번만 리소스를 로딩하고 그 이후로는 페이지 로딩 없이 필요한 부분만 서버로부터 받아서 화면을 갱신합니다.
SPA의 장단점
SPA의 가장 큰 장점은, 자바스크립트를 사용해서 웹 어플리케이션 형태로 사용할 수 있다는 점입니다. 그러기 위해서 중요한 점은 JavaScript 파일과 HTML을 받아오지만 대부분의 동작은 JavaScript에 의존하여 작동시킬 수 있어야 합니다. 반대로 페이지 이동 마다 전체 HTML을 받아오는 것은 기존 Multiple Page Application의 특징입니다.
- 클라이언트가 모든 페이지를 가지고 있으므로 앱과 같은 자연스러운 사용자 경험을 제공합니다. 사실상 로딩 이후에는 모바일 앱과 동일한 방식으로 동작을 한다고 볼 수 있습니다.
- 페이지를 이동 하더라도 컴포넌트만 부분적으로 교체하면 되므로 효율성이 증가합니다.
- 서버가 해야 할 화면 구성을 클라이언트가 수행하므로 서버 부담이 경감됩니다.
- 모듈화 또는 컴포넌트별 개발이 용이합니다.
- 백엔드와 프론트엔드가 비교적 명확하게 구분됩니다.
- 앱과 웹이 동일한 서버를 이용할 수 있습니다.
- PWA(Progressive Web App)과 궁합이 잘 맞습니다.
단점은 초기에 웹에 필요한 대부분의 리소스를 다운로드하기 때문에 초기 구동 속도가 느리다는 점입니다.
Reference
https://typeof-bong.tistory.com/18
https://devopedia.org/single-page-application
반응형
'기술면접' 카테고리의 다른 글
Reflow가 발생하는 이유와 방지 방법은 무엇인가요? (0) | 2021.12.08 |
---|---|
웹페이지 redirect의 다양한 구현법에 대해서 설명하세요. (0) | 2021.12.08 |
웹페이지가 사용자에게 보여지는 과정에 대해서 설명하세요. (0) | 2021.12.08 |
브라우저 렌더링 (작동) 원리 (0) | 2021.12.08 |
lazy loading (0) | 2021.12.06 |