NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

프로그레시브 웹 앱(PWA)이란 무엇이며, 왜 필요한가?

본문은 위시켓과 번역가 전리오가 함께 만든 해외 콘텐츠 기반 번역문입니다. 네덜란드의 SEO(검색엔진 최적화) 플러그인 회사인 '요스트(yoast)'에서 발행한 글이며, 작가인 에드윈 투넨(Edwin Toonen)은 전략 콘텐츠 전문가로 요스트에 합류하기 전, 네덜란드의 주요 웹 디자인 잡지사에서 수년간 다양한 콘텐츠를 다룬 경력이 있습니다. 본문은 프로그레시브 웹 앱(PWA)이 어떤 것이며, 왜 필요한지에 대해 살피는 내용입니다. PWA에 대해 궁금하셨다면 충분히 도움이 될 만한 글입니다.

 

 

 

스마트폰의 시대가 시작된 지는 오래되었습니다. 그러면서 네이티브 앱(native app, 플랫폼의 OS에 맞는 언어로 제작된 앱)의 시대도 함께 찾아왔습니다. 앱은 계속해서 우리들의 일상에서 중요한 역할을 하고 있습니다. 그리고 수많은 비즈니스 오너들은 스스로에게 몇 번이고 이렇게 묻곤 합니다. ‘우리도 앱을 만들어야 하는 걸까?’ 당연히 그 대답은 한 가지일 수밖에 없습니다. 상황에 따라서 다르다고 말입니다. 네이티브 앱을 개발하고 유지보수하는 것은 상당히 길고 복잡한 과정이며, 상당한 비용이 소요되는 경우도 많습니다. 다행히 다른 방법이 있습니다. 이 방식은 우리가 웹(web)에서 사용하는 기술과 네이티브 앱의 장점을 결합한 것입니다. 그것은 바로 프로그레시브 웹 앱(progressive web app), 줄여서 PWA라고 부르는 것입니다.

 

PWA란 무엇인가?

PWA는 프로그레시브 웹 앱(progressive web app)의 줄임말입니다. PWA는 우리 모두가 알고 있고 좋아하는 HTML, CSS, 자바스크립트(JavaScript)와 같은 웹 기술로 만드는 앱입니다. 하지만 그 느낌과 기능은 실제 네이티브 앱과 견줄 수 있을 정도로 좋습니다. 몇 가지의 스마트한 기능들을 추가하면, 세상의 그 어떤 웹사이트라도 PWA로 바꿀 수 있습니다. 즉, 네이티브 앱을 개발하는 것은 상당히 어렵지만, PWA는 훨씬 더 빠르게 개발할 수 있다는 것입니다. 또한, 푸시 알림이나 오프라인 지원과 같은 네이티브 앱의 특징들도 전부 제공할 수 있습니다.

 

트위터(Twitter)도 PWA입니다.

 

우리가 온라인에서 볼 수 있는 많은 사이트들도 실제로는 PWA입니다. 트위터닷컴(twitter.com)이 대표적입니다. 스마트폰으로 이 사이트에 들어가면, 홈 화면에 트위터닷컴을 추가할 수 있습니다. 그러고 나서 스마트폰에 저장된 트위터 사이트를 열어 보면, 모양도 네이티브 앱처럼 보이고, 기능도 모두 똑같습니다. 브라우저 창 같은 건 아무것도 없습니다. 아이폰이든 안드로이드 스마트폰이든 관계없이, 실행하는 데 있어서는 아무런 차이도 없습니다. 그냥 로그인을 해서 이용하기만 하면 됩니다. 이것이 바로 PWA로 웹 애플리케이션을 만들 때의 가장 큰 장점이라고 할 수 있습니다.

PWA는 점점 더 인기를 얻고 있으며, 대기업의 웹사이트들도 PWA인 경우가 많습니다. 대표적으로는 스타벅스(Starbucks.com), 핀터레스트(Pinterest.com), 워싱턴포스트(Washingtonpost.com), 우버(Uber.com) 등의 PWA를 홈 화면에 설치할 수 있으며, 이들은 모두 각자의 네이티브 앱과 비슷한 사용자 경험(UX)을 제공하고 있습니다.

 

 

네이티브 앱과 PWA의 차이는 무엇인가?

흔히들 애플의 앱스토어나 구글의 플레이스토어에서 다운로드할 수 있는 네이티브 앱은 일반적으로 해당 플랫폼에 특화된 프로그래밍 언어로 만드는 경우가 많습니다. 즉, iOS의 앱들은 스위프트(Swift)로 만들고, 안드로이드의 앱들은 자바(Java)로 만드는 식입니다. 원하는 플랫폼에서 실행되는 앱을 만들기 위해서는, 관련된 기술도 알아야 합니다. 물론 지름길도 있기는 하지만, 이런 방법에도 나름의 한계가 있습니다. 그리고 여러 군데의 모바일 환경에 대해서 전부 앱을 만들고 싶다면, 그런 각각의 다양한 환경에 필요한 기술들을 알고 있어야만 합니다. 따라서 하나의 앱을 만들어서 모든 앱스토어에 출시한다는 것은 절대로 쉬운 일이 아닙니다.

 

당연히 두 개의 환경에서 모두 실행되는 앱을 개발하는 방법은 존재합니다. 대표적인 것이 바로 프로그레시브 웹 앱(PWA)입니다. PWA는 일단 홈 화면에 저장되면 브라우저에서 실행되며, 네이티브 앱처럼 동작합니다. 그리고 보안상의 이유로 브라우저가 접근하지 못하는 시스템 하드웨어와 소프트웨어에도 접근할 수 있습니다. 따라서 PWA의 성능이 뛰어나다면, 사용자들은 자신들이 웹 기반의 앱을 사용하고 있는 것인지, 아니면 네이티브 앱을 사용하고 있는 것인지를 구분하지 못할 것입니다.

 

물론 주의해야 할 점도 있습니다. 여러 브라우저들이 PWA를 위한 기술들을 빠르게 채택하고 있기는 하지만, 여전히 한계가 존재하는 것이 사실입니다. iOS의 경우, PWA에 필요한 기술들을 사파리(Safari) 브라우저가 지원하지 않는 경우가 많습니다. 애플은 아직까지 관련 기술들을 완전히 지원하지 않기 때문에, 다른 플랫폼에서와 동일한 환경을 구성하는 것이 조금은 번거롭습니다.

 

 

PWA의 장점은 무엇인가?

많은 사람들이 앱을 갖고 싶어 하는 주된 이유는, 그걸 통해서 참여율을 더욱 끌어올릴 수 있기 때문입니다. 앱을 설치하는 사용자들은 이미 관심이 있는 것이기 때문에, 사용자들이 앱을 통해서 회원가입을 하고 매출을 올릴 가능성이 더 높습니다. 그리고 푸시 알림을 이용하면, 그런 사용자들의 관심을 더욱 쉽게 이끌어낼 수 있습니다. 따라서 앱을 활용하면 브랜드에 도움이 되는 뛰어난 경험을 제공할 수 있습니다.

PWA의 장점에 대해서는 이번 글에서도 이미 몇 가지를 말하긴 했지만, 간단하게 정리하자면 다음과 같습니다.

  • 다양한 앱스토어에 출시하기 위해서 별도의 프로세스를 거치지 않아도 된다.
  • 일반적인 웹 기술을 활용해서 PWA를 만들 수 있다.
  • 일반적으로 개발 비용이 더 저렴하다.
  • 기존의 웹사이트를 앱으로 만들 수 있기 때문에, 추가로 유지관리해야 하는 코드베이스(codebase, 소스코드 일체)가 적다.
  • PWA는 기본적으로 반응형(responsive)이기 때문에, 다양한 화면 크기에도 잘 동작한다.
  • PWA는 부드럽고 빠르며 가볍다.
  • 구글이나 애플에게 거액의 돈을 줄 필요가 없다.
  • 일반적인 웹사이트와는 달리, 오프라인에서도 작동한다.
  • PWA는 검색엔진을 통해서 찾을 수 있다. (앱스토어보다는 검색엔진을 사용하는 사람들이 훨씬 더 많다. 그리고 원한다면 앱스토어를 통해서도 PWA를 배포할 수 있다.)
  • 푸시 알림을 통해서 사용자들의 관심을 끌 수 있다.
  • PWA를 설치하게 함으로써 보다 높은 참여를 이끌어낼 수 있다.

 

그럼에도 불구하고, 아직은 많은 부분에서 네이티브 앱이 우위를 보이고 있습니다. PWA가 스마트폰의 운영체제 속으로 점점 더 깊이 접근할 수 있게 되었지만, 네이티브 앱이 여전히 훨씬 더 깊숙이까지 들어갈 수 있습니다. 그리고 PWA가 할 수 있는 작업에도 한계가 있습니다. 예를 들어서, 고성능 게임을 개발하고 싶은 경우에는, PWA를 고르는 것이 결코 좋은 선택이 아닙니다.

 

어쨌든 전반적으로 봤을 때, 여러분의 PWA로 모바일 서비스를 한다는 것은 좋은 생각입니다. 하지만 여러분이 스스로에게 물어봐야 하는 중요한 질문이 있습니다. 그것은 바로, 여러분의 고객들이 이걸 원하느냐 하는 것입니다.

 

 

PWA는 누구를 위한 것인가?

모든 사람들이 그냥 PWA를 만들기만 하면 되는 것일까요? 아닙니다. 자신의 비즈니스를 잘 생각해봐야 합니다. 더욱 중요한 것은, 이용 고객들에 대해서 생각해 봐야 합니다. 그들이 앱을 사용하기는 하나요? 여러분이 원하는 것을 달성하기 위해서 훨씬 더 쉬운 방법이 있지는 않나요? 다시 말하지만, 다른 모든 것들과 마찬가지로, 이용 고객들이 원하는 것이 무엇인지를 조사하는 것이 좋습니다. 스스로에게 물어보십시오. 이 기술로 무엇을 하고 싶나요? 사용자들은 어디에 있는 사람들인가요? 그들이 데이터 통신이 원활한 지역에 살면서, 하드웨어 기기도 좋은 걸 사용하나요? 그들은 여러분의 콘텐츠를 어디에서 어떤 식으로 이용하고 있나요? 그리고 여러분이 앱을 만들면 고객들에게 도움이 된다고 생각하시나요?

 

PWA는 아주 훌륭하며, 그걸 구현하는 것도 그리 어렵지는 않습니다. 하지만 단지 쉽다고 해서, 그걸 만들어야 하는 것은 아닙니다. 여러분의 고객이 그걸 원하지 않는다면, 과연 그걸 굳이 만들 필요가 있을까요?

 

 

PWA에서 검색엔진 최적화(SEO)와 관련해서 고려해야 하는 요소들

PWA는 기본적으로 웹(web)이 중심입니다. 웹에서 태어났고, 검색엔진으로 쉽게 찾을 수 있도록 개발되었습니다. 물론, 오래된 웹사이트로도 얼마든지 PWA를 만들 수 있고, 이렇게 하면 시간도 많이 걸리지 않습니다. 그러나 PWA는 자바스크립트를 활용해서 더욱 복잡한 기능을 구현하는 경우가 많습니다. 그리고 요즘에는 검색엔진들도 자바스크립트의 렌더링(rendering, 코드를 화면에 표시하기 위해 변환하는 것)을 더욱 잘할 수 있기는 하지만, 여전히 우려해야 하는 부분들은 남아 있습니다.

 

우선 PWA를 위한 환경을 설정할 때는, 검색엔진이 자바스크립트에 액세스 할 수 있도록 해야 합니다. 검색엔진의 봇(bot)이 파일에 접근하는 것을 막아 놓으면 안 되며, 링크도 유효한 것인지를 확인해야 합니다. 렌더링 프로세스를 개선하려면, 여러분의 자바스크립트 프레임워크가 서버 측 렌더링(웹페이지의 내용을 서버에서 렌더링 해서 전송해주는 방식)을 사용하도록 설정하는 것이 좋습니다.

 

기존의 웹사이트를 PWA로 바꾼다고 해서 그것이 곧바로 SEO의 개선을 의미하는 것은 아닙니다. 기존의 사이트를 PWA로 전환하는 게 타당하다면 그렇게 해야 합니다. 하지만 단지 SEO를 개선하기 위한 목적으로 바꾸는 것은 좋지 않습니다. 훌륭한 PWA를 갖게 되면 사람들에게 환상적인 사용자 경험을 제공할 수 있으며, 여러분의 경쟁력을 한층 더 높일 수 있습니다. 그런 측면에서, 여러분이 만든 PWA의 모바일 SEO 전략은 어떠한지를 살펴보는 것이 좋습니다.

 

 

세 가지의 주요 구성요소는 무엇인가?

PWA를 설정하는 데는 많은 작업이 필요하지 않습니다. 기존의 웹사이트를 그럴듯한 PWA로 바꾸기 전에 해야 할 작업은 크게 3가지가 있습니다.

  • 보안 연결(HTTPS): PWA는 신뢰할 수 있는 연결 상태에서만 동작하기 때문에, 보안 연결을 통해서 서비스를 제공해야 합니다. 이건 단지 보안상의 이유 때문만은 아니고, 사용자들의 신뢰를 얻기 위해서도 아주 중요한 부분입니다.
  • 서비스 작업자(service worker): 서비스 작업자는 백그라운드에서 실행되는 스크립트입니다. 서비스 작업자는 네트워크와 관련된 요청의 처리를 도와주기 때문에, 여러분은 그 점에 대해서는 걱정하지 않고 더욱 복잡한 작업을 수행할 수 있습니다.
  • 매니페스트 파일(manifest file, 설정 파일): 이것은 제이슨(JSON, 용량이 적은 데이터를 교환하기 위한 형식) 파일이며, PWA가 표시되고 기능하는 방식에 대한 정보들이 포함되어 있는 것입니다. 여기에서는 PWA의 이름, 설명, 아이콘, 색상 등을 지정할 수 있습니다.

구글에서 찾아볼 수 있는 매니페스트 파일의 간단한 예는 다음과 같습니다.

별로 복잡하지 않죠? 여기에는 몇 가지의 흥미로운 항목들이 있습니다.

  • start-url: 앱이 시작되어야 하는 위치를 지정합니다. 사용자들이 PWA에서 여러분이 원하는 특정한 페이지에서 시작하도록 설정하는 것이 좋습니다.
  • display: 여러분이 보여주고 싶은 브라우저 UI의 타입을 지정할 수 있습니다. 설정할 수 있는 옵션으로는 fullscreen(전체 화면), standalone(스탠드얼론, 네트워크에 연결되지 않은 상태에서도 스스로 동작할 수 있는 것), minimal-ui(최소화된 UI), the standard browser interface(브라우저 표준 인터페이스)가 있습니다.

PWA를 실행하기 위해서는 최소한 위에서 살펴본 세 가지가 필요합니다. 자바스크립트(와 프레임워크)를 통해서 그 기능은 더욱 확장될 수 있습니다.

 

 

PWA는 어떻게 설정하는가?

여러분이 직접 간단한 PWA를 만들어 볼 수 있는 리소스들은 많이 있습니다. 직접 시도해보면, 개발 과정에 대한 감각을 얻을 수 있을 것입니다. 구글은 자신들의 웹 데브(web-dev) 사이트에 PWA에 대해서 쉽게 따라 해 볼 수 있는 훌륭한 교육자료들을 많이 올려놓고 있습니다.[1] 모질라(Mozilla)는 PWA 개발에 대한 방대한 문서들을 갖고 있습니다.[2] 마이크로소프트 역시 PWA 개발과 관련한 문서들을 풍부하게 보유하고 있습니다.[3]마이크로소프트는 또한 PWA빌더(PWABuilder)라는 도구도 만들었는데, 이걸 이용하면 여러분의 사이트를 PWA로 바꿀 수 있습니다.[4]물론 워드프레스(WordPress)의 플러그인을 이용해서 PWA를 만드는 방법도 있습니다. 또한, 구글은 워드프레스의 코어(Core)에서 PWA를 기본적으로 지원하기 위해서 작업을 하고 있습니다.[5]

 

 

PWA로 사용자들의 참여를 이끌어내기

PWA는 여러분의 모바일 서비스에서 아주 뛰어난 역할을 담당할 수 있습니다. 제대로 만들면 아주 빠르고, 오프라인에서도 동작하며, 네이티브 앱과 같은 기능을 발휘할 수 있습니다. 전반적으로, PWA는 사람들에게 아주 멋진 사용자 경험을 제공할 수 있습니다. PWA를 이용해서 사람들을 기쁘게 해 줄 준비가 되셨나요?

 

추가로 PWA와 네이티브 앱의 차이점에 대해 궁금하시다면 ‘PWA vs 네이티브 앱, 어떤 것을 선택해야 할까에서 확인하실 수 있습니다.

 

[1] https://web.dev/progressive-web-apps/

[2] https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps

[3] https://developer.microsoft.com/en-us/windows/pwa/

[4] https://www.pwabuilder.com/

[5] https://wordpress.org/plugins/pwa/

요즘IT의 번역글들

이 프로필을 만든 저만 해도 영어가 서툴러 영어로 된 기사는 읽는 게 더딥니다. 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.