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

디자인

스퀘어: 모바일 우선을 넘어 웹에서 누리는 모바일앱 경험

해외 유명 IT 기업은 각자 자신들의 블로그를 운영해 개발 방법과 기업 문화 등을 소개하고 있습니다. 요즘IT는 이러한 IT 기업 블로그의 콘텐츠를 번역해 소개하는 시리즈를 준비했습니다. 이들은 어떻게 사고하고, 어떤 방식으로 일하는 걸까요?

 

이번 글은 잭 도시가 이끄는 온라인 결제 서비스 기업 스퀘어(현 블록)의 ‘Beyond Mobile First Bringing app-like experiences to the web’를 번역했습니다. 스퀘어는 왜 웹에서 누리는 모바일 앱 경험에 집중했을까요? 아래 글을 통해 그들이 말하는 네이티브 앱과 모바일 우선 웹사이트 경험에 대해 알아보겠습니다.


네이티브 모바일 애플리케이션

 

2010년 즈음에 시작된 모바일 우선이라는 웹 디자인 전략은 이제 새로운 웹사이트나 웹 애플리케이션을 만들 때, 사실상 표준으로 사용되고 있습니다. 특히 이커머스는 분야는 모바일 우선을 가장 적극적으로 채택하고 있으며, 오늘날 70% 이상의 구매가 모바일에서 이루어지고 있습니다. 모바일 쇼핑의 시장 점유율이 날로 증가하고 있지만 모바일 쇼핑 경험은 여전히 이에 미치지 못하고 있으며, 고객 열에 아홉은 더 나은 모바일 쇼핑 경험을 기대하고 있습니다.

 

스퀘어 온라인은(Square Online)은 즐겁고 편리한 구매 경험과 더불어 판매자 누구나 이커머스 웹사이트를 쉽게 만들 수 있다는 가치를 제공합니다.  우리는 이러한 미션을 달성하기 위해 모바일 우선 디자인을 완전히 받아들였고, 이를 한층 더 개선하기 위해 끊임없이 노력하고 있습니다.

 

우리가 자문하는 첫 번째 질문은 "오늘날 최고의 모바일 경험은 무엇일까?"입니다. 이에 답하려면 네이티브 모바일 애플리케이션을 살펴보는 것이 좋을 것입니다. 네이티브 앱[1]은 사람과 컴퓨터 사이의 인터페이스를 완전히 제어할 수 있습니다. 또한 스와이프 제스처, 햅틱 터치, 여러 손가락 인식을 포함하여, 다양한 모바일 전용 입력 방식을 중심으로 디자인할 수 있습니다. 모바일 애플리케이션은 모바일 장치 전용으로 디자인할 수 있으므로, 반응형 디자인에 대한 많은 고민이 필요하지 않습니다. 네이티브 앱이 가장 최고의 모바일 경험을 제공한다는 것을 고려하면, 최고의 모바일 우선 웹사이트 또한 네이티브 앱과 유사한 경험을 제공해야 할 것입니다.

 

 

모바일 앱과 같은 상호작용

스퀘어가 현재 공을 들이고 있는 부분은 모바일과 데스크톱 사용자, 모두에게 만족스러운 터치 인터페이스 친화적인 사용자 상호작용을 구현하는 것입니다. 이를 위해 웹사이트 전반에 걸쳐 손가락으로 탭할 수 있는 화면 요소의 크기를 늘리고, 모달 시스템을 사용하여 데스크톱과 모바일 경험을 통합함으로써 그 차이를 좁혔습니다. 개선된 UI 기능과 상호작용의 대부분은 오픈소스 디자인 시스템인 Maker를 통해 생성했습니다. Maker는 재사용 가능한 Vue.js[2]용 컴포넌트 라이브러리이며, 웹에서 앱과 같은 경험을 제공하도록 개발되었습니다.

 

아래에 소개하는 모든 컴포넌트 상호작용은 다음 Maker 플레이그라운드에서 직접 사용해 볼 수 있습니다:

 

 

액션 바

가장 눈에 띄는 변화는 스퀘어 온라인 사이트의 많은 상호 작용에 "액션 바(action bar)"를 추가한 것입니다. 이러한 플로팅 버튼은 사용자가 손가락을 조금만 움직여도 쉽게 탭할 수 있도록 항목을 큼직하게 표시해 줍니다. 아래 스크린샷을 보면, 사용자는 현재 주문을 보고 사이트에서 원하는 항목을 검색할 수 있습니다. 일반적으로 모바일 페이지에서 메인 버튼은 확인 작업을 수행하고 작은 버튼은 종료 또는 취소를 수행합니다. 우리는 액션 바에서 로딩 상태 또는 작업 성공에 대한 피드백을 제공하는 애니메이션을 추가했습니다.

 

스퀘어 온라인 사이트 액션 바
스퀘어 온라인 사이트 액션 바

 

액션 바가 처음 등장한 이후 기술과 디자인 측면에서 몇 가지 문제가 발생했습니다. 가장 크게 문제가 된 부분은 모바일 사파리에서 발생하는 "데드 클릭(dead-click)"으로 사용자가 사파리에서 웹 사이트를 아래로 스크롤할 때, 내비게이션 바가 화면 밑으로 사라지는 문제였습니다. 이로 인해 메뉴 이동을 할 수 없게 되었습니다. 좀 더 구체적으로 알아보면, 사파리에서 내비게이션 바가 사라졌을 때 화면 하단 44픽셀 부근을 터치하면 웹사이트가 클릭되지 않고 내비게이션 바가 다시 나타났습니다. 

 

사용자가 주문 항목을 추가하려 화면을 탭 하면 항목이 장바구니에 담기는 것이 아니라 내비게이션 바가 다시 나타나 이를 방해했고, 화면을 다시 스크롤하여 원하는 버튼을 다시 눌러야 했습니다. 불행히도, 이 문제에 대한 최선의 해결책은 44픽셀의 데드존 높이 위에 액션 바를 위치시켜 내비게이션 바 대신 항상 액션 바가 클릭되도록 만드는 것입니다.

 

반응형 액션 바를 만들기 위해, 액션 바 아래 공간을 CSS 환경 변수 'safe-area-inset-bottom'에 대해 동적으로 반응하도록 구현했습니다. 이러한 CSS 트릭을 통해 내비게이션 바가 화면에 표시될 때와 없을 때 모두 액션 바 구현에 필요한 최소 하단 여백을 동적으로 제공할 수 있게 되었습니다.

 

애플은 iOS 15에서 사파리 내비게이션 바의 사용자 경험을 개선했습니다. 이제 내비게이션 바를 화면 하단에 표시하는 옵션을 제공합니다. 이는 사파리에서 하단에 위치한 내비게이션 바가 더 커질 수 있음을 의미합니다. 다행히도 애플은 iOS 15 첫 개선 버전에서 플로팅 액션 바의 디자인을 변경했습니다. 현재 디자인된 사파리 액션 바는 웹사이트에서 직접 구현한 커스텀 액션 바와 충돌해서는 안 되며, 'safe-area-inset-bottom' 변수를 사용하여 액션 바를 상황에 맞춰 조정해야 합니다.

 

iOS 15 사파리 내비게이션 바
현재 iOS 15 사파리 내비게이션 바의 모습(왼쪽). iOS 15 최초 출시 당시 플로팅 내비게이션 바의 모습(오른쪽).

 

 

모달 시스템

웹에서 앱과 같은 경험을 구현할 때 가장 어려운 부분은 앱은 데스크톱 화면을 고려할 필요가 없지만, 웹사이트는 이를 세심히 고려해야 한다는 것입니다. 모바일과 데스크톱의 다양한 화면 크기에서 동일한 기능을 제공하기 위해 우리는 모달 시스템을 사용했습니다. 웹사이트에서 모달을 사용하면 모바일 우선 사용자 상호작용을 제공하면서도 데스크톱 환경에서도 문제없이 동작합니다. 위에서 본 것과 동일한 "장바구니에 담기" 기능이 데스크톱 환경에서도 동일하게 제공되고 있습니다.

 

모달 시스템

 

이러한 모달에 대한 기능 요구사항 중 하나는 여러 모달을 쌓아서 보여주는 것이었습니다. 때로는 하나의 모달 위에 또 다른 모달을 올려 상호작용을 제공해야 했으므로, 이를 쉽게 구현할 수 있는 유연함이 필요했습니다. 데스크톱 환경에서는 그에 어울리는 외관과 느낌을 주기 위해 어느 정도 조정해야 했습니다. 아래에서 보다시피, 모달이 열리거나 닫힐 때 음영과 애니메이션을 통해 가장 밑에 있는 모달의 컨텍스트가 사라지지 않는다는 것을 더욱 분명하게 보여줍니다. 모바일에서는 모달이 화면 전체를 차지하고 새로 열리는 모달이 기존 모달 "위에" 있다는 것이 시각적으로 명확하므로 문제가 되지 않습니다.

 

모달 시스템

 

 

네이티브 기능 미지원에 따른 어려움

모바일 사이트가 네이티브 앱에 비해 부족한 한 가지는 휴대전화 네이티브 API에 대한 제한된 접근입니다. 예를 들어, 많은 기본 애플리케이션은 포스 터치(Force Touch)[3]와 햅틱[4]을 사용하여 상호작용을 극대화하고 유용한 피드백을 제공합니다. 이는 모바일 웹사이트에서 현재 구현할 수 없는 기술입니다. 향후 모바일 웹사이트에서 이러한 API를 사용할 수 있게 된다면 이를 디자인과 컴포넌트에 통합하려는 노력이 뒤따를 것입니다.

 

마지막으로, 네이티브 앱과 같은 웹을 만들 때 직면하는 가장 큰 어려움 중 하나는 상태 간의 전환을 기본적으로 지원하지 않는다는 것입니다. 두 요소의 전환에 사용되는 가장 간단한 크로스페이드(cross-fade)[5]도 웹으로 구현하려면 매우 복잡합니다. 페이지, 모달, 기타 요소 간의 부드러운 전환에 더해 여러 모달을 겹겹이 표현하려면 네이티브 iOS나 안드로이드에 비해 개발이 매우 복잡해집니다. 

 

Maker를 사용하면 네이티브 앱과 같은 느낌을 주는 웹 앱을 더 쉽게 구현할 수 있지만 여전히 완벽한 솔루션은 아닙니다. 최근 구글은 브라우저 요소 사이의 전환을 위한 API를 추가하자는 제안을 했습니다. 구글의 제안이나 이와 유사한 다른 제안이 채택되면 웹에서 부드럽고 자연스러운 느낌을 주는 전환 효과를 구현하는 것이 훨씬 쉬워질 것입니다.


[1] 일반적으로 말하는 스마트폰 애플리케이션으로 각 플랫폼에 맞는 언어로 개발한 앱을 말한다. 일반적으로 개발 기간과 비용이 상대적으로 높지만 좋은 성능과 각 플랫폼에 특화된 기능을 제공할 수 있다.

[2] 웹 페이지 화면을 개발하기 위한 프론트엔드 프레임워크로 리액트와 앵귤러의 장점을 가져와 성능이 우수하고 가볍다.

[3] 애플이 2014년 공개한 기술로 터치스크린에 손가락으로 누르는 힘의 강도를 인식하여 다르게 동작하는 촉각 센서 기술.

[4] 전자기기가 생성하는 촉각 피드백을 통해 사용자에게 정보를 전달하는 기술로서 모바일 환경에서는 주로 진동을 의미한다.

[5] 서로 다른 화면 사이를 전환할 때 새로운 화면이 서서히 모습을 드러내며 이와 동시에 기존 화면이 서서히 사라지는 효과.

댓글 0

요즘IT의 번역글들

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

페이팔: 실시간 그래프 데이터베이스 분석을 통해 사기를 방지하는 방법

개발

트위터: 수십억 개의 이벤트를 실시간 처리하기

개발

슬랙: 4가지 애자일 가치와 방법

기획

스포티파이: 카피를 언어로 만드는 UX 라이팅

기획

마이크로소프트: 디자인의 미래를 위한 4가지 원칙

디자인

메타: AR/VR 경험까지 고려한 디자인 청사진

프로덕트

슬랙: 훌륭한 마케팅 카피를 위한 5가지 원칙

기획

2022년 UX/UI 디자인 트렌드

디자인

구글: 가변 폰트의 놀라운 활용법

디자인

에어비앤비: 위기 상황에서의 디자인 원칙 5가지

디자인

어떻게 두 명의 인턴이 수백만 개의 코드들을 보호할 수 있었나

개발

Lattice로 마이크로 프론트엔드를 구축하는 법

개발

Cool Cats NFT를 구축하면서 배운 것

개발

웹 컴포넌트가 프론트엔드 프레임워크를 대신할까?

개발

당신이 NFT에 대해 알아야 할 모든 것

개발

우리에겐 이상하지만 개발자들에겐 일상인 일들

개발

Next.js 12에서 주목해야 할 5가지 변화

개발

스벨트 vs 리액트, 누가 더 뛰어날까?

개발

개발자를 위한 iOS 15의 새로운 기능

개발

내가 오픈소스를 싫어하는 이유

개발

프로덕트 매니지먼트 고객 여정 5단계

기획

클럽하우스의 인기는 모두 거품이었다?

프로덕트

데이터 기반 의사결정의 장점

기획

시각 디자인의 폐쇄성 법칙이란?

디자인

사용자 경험(UX) vs 서비스 디자인

기획

프로덕트 매니저는 하루 종일 무슨 일을 할까?

기획

제품 주도 성장은 어떻게 이루어지는가?

기획

UX를 망치지 않는 설득력 있는 배너 디자인

디자인

팝업(Pop-up)으로 불리는 것들에 대하여

디자인

드롭다운(Drop-down)으로 불리는 것들에 대하여

디자인

당신의 생각을 표현하는 새로운 이모지

디자인

가장 똑똑한 소프트웨어 엔지니어에게 배운 10가지 교훈

개발

성공적인 UX 프로젝트를 위한 가장 중요한 질문

디자인

2021년, UI 디자이너가 모바일 앱에서 흔히 저지르는 실수

디자인

IT 매니저가 되는 방법과 성공하기 위한 요소

기획

슬랙(Slack) 같은 앱을 만들려면 비용이 얼마나 들까?

개발

아웃소싱이 이토록 인기를 얻게 된 이유는?

아웃소싱

마케터가 UX 관련 역량을 키워야 하는 이유

기획

미니멀리즘 디자인의 핵심적인 요소들

디자인

새로운 소프트웨어 개발사가 필요하다는 7가지 신호

아웃소싱

2021년을 이끌어가는 프론트엔드 개발 트렌드 5가지

개발

PM을 성장시키는 학습 프레임워크

기획

UI 카피라이팅, 어떻게 써야 하나요?

기획

트렌드 예측: 경쟁에서 앞서는 방법

기획

제품 사고(product thinking)의 힘

기획

인하우스 vs 아웃소싱, 소프트웨어 개발 어떻게 하나요?

개발

그림을 못 그리는 사람도 쉽게 와이어프레임 그리는 방법

기획

스타트업 기업들에게 아웃소싱이 중요한 이유

아웃소싱

제품과 기능, 성공적으로 종료하는 방법 (下)

기획

제품과 기능, 성공적으로 종료하는 방법 (中)

기획

제품과 기능, 성공적으로 종료하는 방법 (上)

기획

UX 디자이너에게 반드시 필요한 12가지 스킬

디자인

패스워드 없는 세상이 오고 있다

개발

디자이너를 쉽게 잃는 방법 10가지

디자인

프론트엔드 코딩 작업에 영감을 줄 8가지 아이디어

개발

구글이 아웃소싱을 하는 이유: 아웃소싱 성공사례 5가지

아웃소싱

일 잘하는 PM이 되기 위한 로드맵 도구 5가지

기획

이제는 말할 수 있다! 아웃소싱에 대한 오해 11가지

아웃소싱

디자인 트렌드, 모던 미니멀 스타일의 UI 가이드

디자인

MVP 개발을 아웃소싱으로 해도 될까요?

개발

온보딩 효과를 높이는 '좋은' 귀차니즘 3가지

기획

게임처럼 즐겨라, 게임화 기법 TOP3

기획

시니어 소프트웨어 엔지니어는 어떻게 일할까?

개발

프로덕트 매니저가 글을 잘 써야 하는 이유

기획

2030년엔 사라질 수도 있는 프로그래밍 언어 5가지

개발

고객들이 언제나 옳은 것은 아니다

기획

유저 스토리는 무엇인가?

기획

고객 성공을 위한 14계명

기획

8px 그리드의 시대가 끝나고, 4px 그리드의 시대가 열릴까?

디자인

모바일 앱은 더 이상 스타트업에게 좋은 아이디어가 아니다

기획

과연 구글의 UX 강좌는 도움이 될까요?

디자인

프로덕트 매니저 여러분, ‘소비자의 요구사항 수집’을 그만두십시오

기획

고객 여정과 경험 지도의 차이점

기획

내가 AI 업계를 떠난 이유 5가지

기획

모달윈도우(팝업)를 디자인할 때 생각할 9가지 원칙

디자인

대기업 vs 중소기업, B2B SaaS 스타트업을 위한 시장은?

기획

내가 개발 인터뷰에서 면접자에게 감동한 이유

개발

HTTP의 새로운 메서드, 서치(SEARCH)에 대하여

개발

세상의 모든 프로덕트 디자이너를 위한 5가지 심리학 원칙

디자인

2021년 테스트 자동화 트렌드 리포트 (下)

개발

2021년 테스트 자동화 트렌드 리포트 (上)

개발

아마존과 스포티파이는 어떻게 사용자를 유지하고 측정할까?

기획

UX 디자이너라면 필수적으로 알아야 할 5가지 법칙

디자인

앵귤러 vs 리액트, 2021년의 승자는?

개발

2021년, SaaS 스타트업 시작을 위한 놀라운 아이디어 10가지

기획

디지털 제품 관리에서 B2B와 B2C 사이의 차이점은?

기획

빠르게 실행할 수 있는 ‘제품 요구사항 문서(PRD)’ 만들기

기획

더 나은 제품을 위한 프로덕트 메트릭스 가이드

기획

노 코드(No Code) 트렌드로 프로그래머들은 일자리를 빼앗길까?

개발

넷플릭스의 플랫폼: 코스모스(Cosmos)에 대하여

프로덕트

비즈니스와 애자일 조직은 어떻게 친해질 수 있을까요?

기획

효과적인 제품 전략 세우기: 다수의 전략적 트랙(MuST) 활용

기획

1년 만에 이메일 마케팅 효과를 극대화했던 방법

기획

솔루션 아키텍트를 위한 팁: 아키텍처 다이어그램의 5가지 유형

개발

새로운 맥 OS ‘빅서’에 대한 UX 디자이너의 생각

디자인

디자인 트렌드, 뉴모피즘의 정석

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 3편

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 2편

디자인

2021년 모바일 UX 트렌드 10가지

디자인

스스로 학습하는 UI/UX 디자이너가 되기 위한 2021년 로드맵, 1편

디자인

앱 설정 기능의 UX를 개선하는 효과적인 방법

디자인

다크모드 UI 디자인의 원칙

디자인

온라인 고객 경험을 개선하기 위한 5가지 방법

기획

신생 스타트업에서 일하는 프로덕트 매니저를 위한 현실적인 조언

기획

웹 개발자와 소프트웨어 개발자의 차이는 무엇인가요?

개발

랜딩 페이지 디자인을 개선하는 13가지 꿀팁

디자인

오프라인 비즈니스가 온라인에서 존재감을 가져야 하는 이유 5가지

기획

상향식 가격 책정 및 패키징 정책: 사용자 여정을 가이드로 활용하기

기획

B2B 제품의 UX, 그것은 숨겨진 영역인가요?

기획

상단 내비게이션 vs 사이드 내비게이션, 어느 것이 더 나을까?

디자인

자동완성 검색 기능 UX 설계를 위한 8가지 팁

디자인

프로덕트 매니저는 전문적인 IT 기술을 갖춰야 하나요?

기획

실리콘밸리 51개 기업들이 말하는 프로덕트 매니저의 역할 9가지

기획

아웃소싱에 대한 모든 것

아웃소싱

앱 디자인 가이드, 사람들이 즐겁게 사용할 수 있는 앱을 만드는 법

디자인

처음부터 완제품이 아니라 ‘MVP’를 만들어야 한다

기획

플러터 vs 리액트 네이티브 vs 네이티브, 성능이 더 우수한 것은?

개발

스타트업 프로덕트 매니저로 성장하는 법, 30-60-90일 플랜

기획

당신의 두뇌는 진보하고 있다: 성취감을 위한 3가지 전략

기획

디자이너들을 편하게 해주는 HTML/CSS 마법 10가지

디자인

코딩의 미래는 ‘노 코드(No Code)’이다

개발

내가 엔지니어링 매니저로 일하면서 저지른 실수들

개발

내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (下)

기획

내가 롬 리서치(Roam Research)를 좋아하는 이유와 실제 사용법 (上)

기획

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

개발

PWA vs 네이티브 앱, 어떤 것을 선택해야 할까?

개발

UI 디자인에 여백을 활용하는 8가지 팁

디자인

마이크로소프트와 링크드인의 새로운 시도, 프리랜서 마켓에 도전장을 던지다

기획

토마스넷은 왜 가입자 수를 폭발적으로 늘려준 테스트 결과를 거부했을까?

기획

잘 팔리는 기업용 소프트웨어 디자인하기

디자인

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 하편

개발

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 중편

개발

파이어베이스(Firebase)란 무엇인가? 파이어베이스 심층 탐구 : 상편

개발

업워크(Upwork)가 조사한 요즘 가장 인기 좋은 개발 기술 15가지

개발

일자리 산업이 휴먼 클라우드(human cloud)에 적응하는 방법

기획

팬데믹 이후 세계에서의 디지털 가속화는 어떤 모습일까?

기획

같은 분야를 다룬 글들을 권해드려요.

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

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

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

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

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