PWA 대 SPA: 비슷하지만 다른
게시 됨: 2019-09-18목차
표준 웹사이트의 매력은 매력을 잃기 시작하여 웹 애플리케이션에 자리를 내주고 있습니다. 날이 갈수록 웹 애플리케이션은 매력적이고 놀라울 정도로 빠른 경험으로 인해 점점 인기를 얻고 있습니다.
이러한 기술적 성공의 대부분은 특정 아키텍처를 웹사이트 구조에 구현하여 웹사이트의 안정성, 성능 및 참여를 보장함으로써만 얻을 수 있습니다.
현재 웹 애플리케이션을 구조화하기 위한 두 가지 인기 있는 접근 방식은 PWA와 SPA입니다. 이 두 가지 접근 방식에 대한 일반적인 개념은 거의 동일하지 않습니다. 간과된 차이점이 종종 값비싼 실수와 기회 상실로 이어지므로 이는 매우 중요 합니다. 100분의 1초가 중요한 사이트 소유자일 것입니다. 당신의 웹 애플리케이션이 다른 나라들보다 뒤처지는 것을 원하지 않을 것입니다.
어떻게 작동합니까?
단일 페이지 애플리케이션(SPA)
SPA(단일 페이지 응용 프로그램) 는 현재 페이지가 서버에서 완전히 다운로드되지 않고 동적으로 업데이트되는 웹 사이트입니다. 즉, 웹 애플리케이션(HTML, CSS, JavaScript)에 필요한 모든 애플리케이션 코드는 한 번만 로드하면 됩니다. 사용자가 웹 애플리케이션을 탐색할 때 사용자가 브라우저를 다시 로드할 필요 없이 업데이트가 필요한 모든 콘텐츠와 요소를 가져와 다시 렌더링합니다.
이렇게 하면 브라우저와 서버 간의 기존 왕복 여행이 줄어들어 더 빠른 상호 작용과 더 나은 사용자 만족도가 가능합니다.

자신도 모르게 SPA를 항상 사용하고 있을 것입니다. 대부분의 소셜 미디어 웹사이트가 같은 느낌을 받는지 알아차리셨나요? 모두 SPA를 사용하여 사용자 경험을 간소화하고 지속적인 뉴스 업데이트 피드를 만들기 때문입니다.
다음은 정기적으로 사용하고 있는 주목할만한 SPA입니다.
- 페이스북
- 지메일
- 링크드인
- 넷플릭스
- 구글지도
프로그레시브 웹 앱(PWA)
SPA와 달리 프로그레시브 웹 앱(PWA)은 특정 아키텍처라기보다 지침 및 체크리스트 집합에 가깝습니다. PWA는 알려져 있으며 다음과 같은 몇 가지 특성으로 인해 SPA와 다릅니다.
- 서비스 작업자: 서비스 작업자는 PWA의 많은 주요 기능, 즉 오프라인 가용성 및 푸시 알림에 대한 기술 기반을 제공합니다.
- 웹 앱 매니페스트: PWA에 필요한 메타데이터가 포함된 JSON 파일입니다. 웹 앱 매니페스트는 PWA 매니페스트 생성기를 사용하여 자동으로 생성할 수 있습니다.
- HTTPS: PWA는 항상 안전한 출처에서 제공됩니다.

서비스 워커는 브라우저와 네트워크 사이에서 프록시 역할을 하며 웹사이트 자산의 캐싱과 네트워크 요청 가로채기를 담당하여 웹사이트의 오프라인 가용성과 푸시 알림을 비롯한 다양한 기타 기능으로 이어집니다.
서비스 워커는 백그라운드에서 엄청난 도움을 줍니다. 오프라인 기능을 제공하는 것 외에도 대부분의 PWA 웹 사이트가 매우 효율적이고 빠르게 로드되는 주된 이유인 많은 계산을 담당합니다.
프로그레시브 웹 앱이 무엇인지에 대한 심층 가이드를 작성했습니다. 그래서 당신은 그것을 놓칠 수 없습니다!
그들은 어떻게 비슷합니까?
새롭고 혁신적인 기술인 이 두 아키텍처는 사용자에게 기존 웹 사이트와 크게 다른 앱과 같은 매력적인 경험을 제공합니다. 언뜻 보면 서로 쉽게 오인될 수 있습니다. 그러나 이러한 모든 경험을 가능하게 하는 기본 프로세스는 동일하지 않습니다.
차이점이 뭐야?
PWA가 거의 항상 SPA라는 일반적인 오해가 있습니다. 이는 완전히 잘못된 것입니다. 위의 PWA 요구 사항에서 웹 사이트 콘텐츠가 브라우저에서 렌더링되어야 한다거나 PWA가 서버 렌더링 페이지를 요청해서는 안된다는 내용이 어디에도 없음을 알 수 있습니다.
PWA는 간단히 말해서 웹이 제공 하는 최고의 품질을 모두 갖춘 웹사이트입니다. 안정적이고 빠르고 매력적입니다.
그리고 PWA는 UI와 별도의 스레드에서 실행되는 서비스 워커를 필요로 하기 때문에 PWA는 사이트를 미리 가져오기 위해 특정 초기 로딩 화면을 거의 항상 동반하는 SPA와 달리 콘텐츠가 항상 거의 즉각적 으로 표시된다는 점에서 다릅니다. 자산. 이는 SPA JavaScript 프레임워크가 웹 앱에 배치하는 풍부한 JavaScript 오버헤드가 전부는 아니더라도 대부분 서비스 작업자에게 재할당될 수 있음을 의미합니다.


분명히, 이 둘의 차이점은 그 뿐만 아니라 분석할 것이 훨씬 더 많습니다.
속도면에서
속도와 관련하여 이 두 아키텍처는 모두 최첨단 기술이기 때문에 매우 유사합니다. 그러나 우위는 여기에서 PWA로 갈 수 있습니다.
그 이유는 SPA와 PWA 모두 개발에 JavaScript를 사용하지만 PWA는 서비스 작업자를 활용하여 일부 작업을 렌더링할 수 있기 때문입니다. 즉, SPA가 웹 앱에 추가하는 과도한 JavaScript 오버헤드의 대부분을 대신 서비스 작업자에게 위임할 수 있으므로 JavaScript 풋프린트를 크게 줄일 수 있습니다.

이를 통해 PWA 사이트는 스크립트, CSS, 이미지 및 마크업과 같은 많은 사이트 자산이 필요하기 전에 미리 캐시할 수 있습니다. 이러한 사전 캐시 덕분에 사용자의 네트워크는 렌더링과 함께 발생하는 추가 스트레스에서 벗어나 오프라인에서 작업할 수 있습니다.
비용 측면에서
여기에서 PWA가 SPA에 패 합니다. 최첨단 기술을 보유한 PWA는 결과적으로 추가 비용이 발생합니다. PWA의 개발은 SPA에 비해 프로세스가 능률적이지 않기 때문에 한 번에 몇 주 또는 몇 달 동안 지속되는 경우가 많습니다.
PWA : $2000 – $20.000
스파 : $1500 – $12.000
개발자 비용, 작업의 복잡성, 선호도 및 사용자 정의와 같은 건물 비용에 영향을 미치는 많은 요소가 있습니다. 비용 추정을 할 때 이 모든 요소를 고려해야 합니다.
추천 자료: Magento PWA를 구축하는 데 비용이 얼마나 드나요?
사용자 경험/사용자 인터페이스 측면에서
SPA는 과거에 그 자리를 차지했지만 더 나은 사용자 경험(UX)을 제공하기 때문에 사람들은 PWA로 전환하기 시작했습니다.
둘 다 앱과 같은 인터페이스를 보유하고 있는 PWA는 오프라인 또는 느린 연결 조건에서도 더 많은 참여와 안정성을 제공합니다. 이러한 이유로 Twitter와 같은 영향력 있는 브랜드는 Twitter Lite라는 자체 PWA 버전의 사이트를 출시하여 PWA 운동을 시작했습니다.

트위터 뿐만이 아닙니다. PWA 운동은 계속될 것으로 예상됩니다. 게다가 최근 Spotify의 참여로 움직임이 곧 줄어들 기미가 보이지 않습니다.

단일 페이지 애플리케이션은 큰 사이트에서 만족스러운 UX를 제공할 수 없다는 한계가 있습니다. 따라서 Gmail 및 Facebook과 같이 시각적으로 훌륭하지 않아도 데이터 지향적인 사이트에 가장 적합합니다.

보안 측면에서
보안은 민감한 주제입니다. PWA와 SPA 모두 개발을 위한 주요 라이브러리로 JavaScript를 사용하지만 보안과 관련된 문제는 많이 다르며 대부분은 SPA 및 XSS(교차 사이트 스크립팅) 문제에서 발생합니다.
PWA에서는 모든 연결이 안전한 HTTPS 출처를 거쳐야 하는 프로그레시브 웹 앱의 특성상 보안에 대한 우려가 훨씬 적습니다. PWA와 마찬가지로 HTTPS도 웹의 미래이며 이를 통해 서비스 워커와 같은 첨단 기능에 액세스할 수 있습니다.
접근성 측면에서
SPA와 비교하여 PWA는 일반적으로 특히 데스크톱 PWA에 대한 최근 Chrome 지원으로 더 쉽게 액세스할 수 있습니다. PWA와 상호 작용하는 사용자는 사용 중인 앱의 바로 가기를 홈 화면이나 바탕 화면에 추가할 수 있습니다.

SPA는 페이지 전환이 실행될 때마다 사용자를 아무 곳에도 남겨두는 경향이 있기 때문에 접근성과 관련하여 실제로 끔찍 합니다. 페이지가 DOM(Document Object Model) 구조를 완전히 변경하는 경우 aria 또는 role 속성이 도움이 되지 않기 때문에 장애가 있는 사용자에게는 특히 실망스럽습니다.
마무리
SPA가 혁명적이었을 수도 있지만 시간이 천천히 따라잡은 것 같습니다. SPA와 PWA는 같은 종류이지만 점점 더 많은 사람들이 SPA보다 PWA를 선택하고 있으며 PWA가 가져오는 이점을 고려할 때 이해할 수 있습니다.
SimiCart를 통해 우리는 Magento 가맹점을 위한 최고의 PWA 솔루션을 제공합니다.