Home Study | SPA와 MPA
Post
Cancel

Study | SPA와 MPA

SPA와 MPA

목차

  1. SPA
  2. MPA
  3. SPA와 MPA의 비교


1. SPA(Single Page Application)

: 한 개의 페이지(HTML)로 이루어진 애플리케이션

  • CSR(Client Side Rendering) 방식으로 렌더링(SSR로 돠어야하는 상황도 존재함)
이미지 출처 : https://velog.io/@yejine2/SPASingle-Page-Application-VS-MPA

spa

1. 사용하는 이유

: 새로운 화면을 보여줄 때마다 서버 측에서 모든 뷰를 준비한다면 성능상의 문제가 발생(= 트래픽 과부화, 서버 과부화)

2. SPA 동작과정

  1. SPA는 웹 에플리케이션에 필요한 모든 정적 리소스를 최초 접근 시 단 한번만 다운로드
  2. 이후 새로운 페이지 요청 시, 페이지 갱신에 필요한 데이터만을 JSON으로 전달받아 페이지를 갱신(기존 페이지의 내부를 수정해서 보여주는 방식)
  3. 새로운 데이터가 필요하다면 서버 API를 호출하여 필요한 데이터만 새로 불러와 애플리케이션에서 사용

3. SPA 장점

  • 뛰어난 반응성
    • 반응형 다자인으로 인해 모바일 앱이나 데스크탑 앱을 사용하는 느낌
    • 페이지상에서 무언가를 클릭 했을시 기다림 없이 즉각적인 반응
  • 프론트와 백엔드의 분리
    • 백앤드부분에 관해서 걱정할 필요가 없으며 서버사이드 코드를 작성할 필요가 없음
  • 모바일 친화적
    • 모바일 앱도 SPA와 동일한 아키텍처에서 개발되므로 모바일 개발을 염두해두면 동일한 백엔드 코드를 재사용하도록 할 수 있음
  • 로컬 스토리지 캐시
    • 애플리케이션은 하나의 요청만 보내고 모든 데이터를 저장한 다음 이 데이터를 사용할 수 있으며 오프라인에서도 작동함

4. SPA 단점

  • SEO
    • MPA보단 SEO 에 대한 노출이 어려움
    • 비동기로 렌더링 되는 페이지로 인해 크롤러가 웹페이지의 내용을 크롤링 하기가 어려워짐
  • javascript 필수
    • JavaScript를 알지 못한다면 SPA를 구현할 수 없음
  • 초기 구동 속도
    • 웹 애플리케이션에 필요한 모든 정적 리소스를 최초 접근시 단 한번 다운로드하기 때문에 초기 구동 속도가 상대적으로 느림

2. MPA(Multiple Page Application)

: 여러개의 페이지(HTML)로 이루어진 애플리케이션

  • 전통적인 웹 앱 개발 방법
  • SSR(Server Side Application)방식으로 렌더링
이미지 출처 : https://velog.io/@yejine2/SPASingle-Page-Application-VS-MPA

mpa

1. MPA 동작과정

  1. 새로운 페이지를 요청할 때마다 서버에서 렌더링된 정적 리소스(HTML, CSS, JavaScript)가 다운로드
  2. 페이지 이동하거나 새로고침하면 전체 페이지를 다시 렌더링

2. MPA 장점

  • SEO 친화적
    • 여러 페이지를 생성할 수 있기 때문에 훨씬 더 많은 수의 키워드를 타겟팅
    • 많은 페이지로 인해 여러 HTML 파일이 존재하는데, HTML 다운로드하여 페이지를 크롤링하기 때문에 검색 엔진이 작동하는 방식에 더 적합
  • 확장성
    • 다중 페이지로 원하는 만큼 페이지를 추가 가능

3. MPA 단점

  • 페이지 이동 시 느린 속도
    • 사용자가 새로운 페이지를 이동하면 전체 페이지를 다시 렌더링하기 때문(리소스의 렌더링이 새로됨)
  • 복잡한 개발
    • 개발자는 클라이언트 측과 서버 측 모두에 프레임워크를 사용해야 함
    • 개발시간이 길어짐
  • 보안 및 유지보수
    • 개발자는 모든 페이지가 안전한지 확인 해야하는데 페이지가 많아서 지속적으로 유지보수 하는 것이 어려움

3. SPA와 MPA 비교

이미지 출처 : https://velog.io/@yejine2/SPASingle-Page-Application-VS-MPA

spa mpa 비교

특징SPAMPA
반응성즉각적인 반응페이지 전체 재로딩
초기 구동 속도상대적으로 느림-
개발성개발 간소화복잡한 개발
SEO노출이 어려움관리가 용이함






출처

SPA와 MPA 1
SPA와 MPA 2
SPA와 MPA 디테일

This post is licensed under CC BY 4.0 by the author.