본문 바로가기
React

SPA(Single Page Application) vs MPA(Multi Page Application)

by 사장님나빠여 2022. 10. 18.

SPA(Single Page Application) 

인터렉션이 발생할때마다 서버로부터 새로운 파일을 받아 해당 링크로 이동하여 페이지 전체를 새로 렌더링하는 웹페이지 구성방식

- 한개의 페이지로 구성된 웹 Application

- SPA는 CSR(Client Side Rendering) 방식으로 렌더링

- 단 한번만 리소스(HTML, CSS, Javascript)를 로딩하고 데이터를 받아올때만 서버와 통신

- 첫 요청시 딱 한페이지만 불러오고 페이지 이동시 기존 페이지의 내부를 수정해서 보여주는방식

- 최초 페이지를 로딩한 시점부터 페이지 리로딩 없이 필요한 부분만 서버로 부터 받아서 렌더링해줌

- 필요한 부분만 렌더링 해주기 때문에 네이티브 앱에 가까운 자연스러운 페이지 이동과 UX 제공Angular, React, Vue 등 프론트엔드 기술들이 나오면서 유행

 

# SPA의 장점

-앱처럼 자연스러운 사용자 경험

-필요한 리소스만 부분적으로 로딩하기 때문에 트래픽 감소, 렌더링에서 좋은 효율

-모듈화 또는 컴포넌트별 개발 용이

 

# SPA의 단점

-웹 애플리케이션에 필요한 정적 리소스를 한번에 당누로드 하기 때문에 초기 구동속도 느림

-spa구조 상 데이터 처리를 클라이언트에서 하는데, 해당 로직들이 Javascript를 통해 구현되므로 외부에 노출되는 보안문제

-CSR 방식으로 만든 SPA 앱은 검색엔진최적화(SEO)가 어렵다

└<div id="root"></div> 밖에 없기 때문에 검색엔진이 색인을 할만한 컨텐츠가 존재하지 않기 때문이다

검색 엔진이 크롤링할 때 JavaScript를 실행하지 않고 어플리케이션이 로드 되기 전의 빈 상태의 코드를 크롤링 하기 때문에 인덱 싱이 제대로 이루어지지 않음

 


 MPA(Multi Page Application)

인터렉션이 발생할때마다 서버로부터 새로운 파일을 받아 해당 링크로 이동하여 페이지 전체를 새로 렌더링하는 웹페이지 구성방식

- 여러개의 Page로 구성된 Application

- MPA는 SSR(Server Side Rendering) 방식으로 렌더링한다

- 새로운 페이지를 요청할 때마다 서버에서 렌더링된 정적 리소스(HTML, CSS, JavaScript)가 다운로드된다

- 페이지를 이동하거나 새로고침하면 전체 페이지를 다시 렌더링한다

 

# MPA의 장점

-SEO(검색엔진최적화) 관점에서 유리하다

└MPA는 완성된 형태의 HTML을 서버로 부터 받기 때문에 검색엔진이 페이지를 크롤링하기 적합

-첫 로딩이 매우 짧다

└서버에서 이미 렌더링해서 가져오기 때문

└클라이언트가 JavaScript 파일을 모두 당누로드 하고 적용하기 전까지는 각각의 기능은 동작하지 않음

 

# MPA의 단점

- 새로운 페이지 이동할 때 깜빡거림(SPA에 비해 UX안좋음)

└매 페이지마다 리로딩발생 매번 렌더링함

-페이지 이동시 불필요한 템플릿도 중복해서 로딩해서 성능저하

-모바일 앱 개발시 추가적인 백엔드 작업 필요 생산성안좋음

 

출처

https://hanamon.kr/spa-mpa-ssr-csr-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%9C%BB%EC%A0%95%EB%A6%AC/

'React' 카테고리의 다른 글

[React] Context API  (0) 2022.10.23
[React] Immer란?  (0) 2022.10.20
CSR(Client Side Rendering)과 SSR(Server Side Rendering)  (0) 2022.10.20
[Hook] useCallback, useMemo  (0) 2022.10.13
[Hook] useState, useEffect 상태값과 생명주기  (0) 2022.10.13

댓글