한수아 Sua
포포리가 적은 리소스로 유저 이탈률과 신뢰도를 방어하는 방법
라고 하고 앱/웹 오류 시 적합한 안내 문구 작성하는 방법이기도 합니다.
가볍고 재밌게 즐겨주시면 감사하겠읍니다!
0. 이 방법, 왜 생각하게 되었나요?

ㅋㅋ 혼란의 포포리 카톡방..
토큰기간(7일) 만료 후 앱에 진입했을 때, 기존 리프레시 토큰으로 새로운 액세스토큰이 요청되지 않아 첫 화면에서 정보를 불러오지 못하는 이슈가 생겼거등요😭
이게 무슨소리냐면,
로그인한지 일주일이 지난 유저가 앱을 눌러 첫 화면을 보게 되었을 때 아무것도 안보인다는 뜻입니다. (심각)
앱에 들어왔는데 아무것도 안보이면 어떻게 될까요?
간단합니다, 앱을 안쓰게 되겠죠.
물론 [마이]탭을 누르거나, 다른 버튼을 누르면 새로 API를 호출하기 때문에 유저의 정보가 그때 불러와지게 됩니다.
하지만 그건 앱을 만든 우리 팀 정도나 알지, 유저는 모르거든요.
이렇게 별거 아니게 말하고 있지만 굉장히 심각한 문제였습니다,,,🥺💦
개발팀과 대책 회의를 통해
초반에 서버를 연결하는 과정에서 로직이 꼬인 상황이었고 '쉽고 가볍게 수정할 수 있는 이슈가 아님', '약 일주일 소요'의 결론을 낼 수 있었습니다.
자 이제 기획자인 저는 개발팀이 본질적인 이슈를 해결하는 일주일 동안,
임시방편(?)으로나마 떠나는 유저를 붙잡을 방법을 강구해내야 했습니다.

[방법1] 서버/클라이언트/외부 중 선택
문제상황이 발생한 부분, 해결 할 수 있는 부분을 가장 먼저 해결해야 합니다.
a. 서버 단에서
b. 클라이언트 단에서
c. 외부 플랫폼을 통해(SMS 안내, 사이트 공지 등)
[방법2] 적절한 안내문구 생각하기
고객의 언어로 친절하게 간결하게 작성해야 합니다.
어떠한 상황에서도 유저에게 책임을 전가하지 않아야 합니다. but 너무나 우리 서비스의 잘못임을 드러내지 않아야 합니다.
예를 들어,
이런 기술적인 문제, 오류 발생 등의 표현 or 난데없는 오류코드 공유 등은 사용자가 현재 상황을 스스로 해결할 수 없는 문제로 인식할 가능성이 높습니다.
또한 문제가 발생한 원인을 정확히 알 수 없어 곧바로 해결책을 찾을 수 없는 문제점도 존재합니다.
오류 상황이 일어나지 않는 것이 가장 좋지만, 일어날 수 있는 상황이라면 사용자가 현재 상황을 벗어날 수 있도록 도와줘야 합니다. 적어도 현재 일어난 오류를 정확히 안내하는 것이 중요하며, 해결 방법을 같이 제시해주면 더 좋습니다.
[방법3] 현재 상황을 잘 안내하고, 구체적인 행동을 안내/제공
단순히 상황을 알려주는 것이 아닌, 이 문제상황을 해결할 수 있는 방법 또는 액션을 제공해야 합니다.
예시)
a. 서비스를 사용할 수 없습니다
b. 이러이러한 이유로 서비스를 사용할 수 없습니다 (이유 제시)
c. 이러이러한 이유로 서비스를 사용할 수 없습니다, 이런 방법으로 해결해보세요(이유 + 안내 제공)
d. 이러이러한 이유로 서비스를 사용할 수 없습니다, 이렇게 해결해드릴게요(이유 제시 + 방법 제공)
이 중에서 d가 가장 이상적인 방법입니다.
이해를 돕기 위해 예시를 준비했습니다 짜잔-
네트워크가 연결되지 않아 서비스를 이용할 수 없는 상황이라면, 이 중 어떤 화면을 보여줘야 할까요?
포포리 서비스의 특성 상, 네트워크가 연결되지 않으면 앱 내의 기능을 보여줄 것이 없어 반드시 연결이 필요합니다. 그렇기 때문에 유저가 네트워크 상태를 확인할 수 있는 구체적인 행동을 하도록 유도해야 합니다.
텍스트로 방법을 안내할 수도 있지만, 조금 더 친절하게 느낄 수 있도록
새로고침 / 설정(Wi-Fi)으로 이동 두 가지의 행동을 안내하는 것이 가장 좋은 솔루션이라고 생각했습니다.
사용자에게 ‘서비스를 사용할 수 없음’을 안내, 그 이유가 ‘네트워크 오류’ 때문일 것이라는 판단을 제공, 그리고 특정 버튼을 활용해 새로고침을 해보거나 설정 화면으로 이동할 수 있는 기회를 제공하기 때문입니다.
종합하면 현재 상황을 안내하고, 구체적인 행동을 안내/제공함으로써 UX를 개선하고, 소중한 유저를 지킬 수 있습니다.
요약해보자면!
해결할 방법 정하기 : 문제 발생 위치, 문제 해결 위치를 고려한 안내 방법을 생각합니다.
명백하고 정확하게 작성하기 : 사용자가 현재 상황을 명확하게 인지할 수 있어야 합니다.
원인 알려주기 : 오류가 발생한 분명한 이유를 안내해야 합니다.
쉽게 쓰기 : 내부에서 사용하는 전문적인 용어는 사용자가 이해하기 어렵습니다. 고객의 언어로!!
간결하게 쓰기 : 핵심을 담아 최대한 깔끔하게 전달해야 합니다.
서비스의 특성 고려하기 : 서비스 고유 분위기를 고려하지 않으면 가볍게/불친절하게 느껴질 수 있습니다.
해결을 위한 방법 제공하기 : 상황을 벗어날 수 있는 방법을 안내/제공해야 합니다.
포포리에 적용하기
그래서 포포리에는 어떻게 적용했을까요?
1. 해결할 방법 정하기
포포리의 경우, 현재 토큰기간이 만료된 상태에서 앱에 들어오면 앱이 서버와 연결되지 않았기 때문에 서버를 통한 방법은 적절하지 않았습니다.
모든 유저의 개인정보를 갖고 있지 않았기 때문에 유저에게 안내 메시지를 보내는 것 또한 어려운 상황이었습니다.
즉, 앱에 들어오는 유저에게 즉각적으로 대처해야하기 때문에 클라이언트 내에서 해결해야 한다고 판단했습니다.


첫 화면에서 오류가 발생했을 경우 어떤 방식으로 안내해야할지 고민이 있었습니다.
기존에는 오류 상황 발생 시에는 full 화면으로 안내하고 있었지만, 이번 이슈의 경우 유저가 앱에 접속한 첫 화면에서 만나는 이슈이기 때문에 full 화면이 먼저 뜨면 서비스의 안정성에 대한 의심을 크게 느끼게 될 것이라 생각했습니다.
오류 안내를 full화면으로 진행할 때,
a. 앱을 사용하던 중 오류 상황이 발생함 > 오류 페이지 노출
b. 앱에 들어감 > 오류 페이지 노출
b의 경우 서비스에 대한 신뢰를 잃고 이탈할 가능성이 더 높아진다고 판단했기에,
최대한 이탈률을 줄이고자 기존 화면 위로 dim처리를 하고 팝업으로 문제상황과 해결방법을 안내하고자 했습니다.
2. 적절한 안내 문구 작성 + 구체적인 행동을 제공
유저의 상태와 관련 없는 오류였기 때문에, 새로고침을 통해 api를 호출하면 바로 홈 화면을 불러올 수 있었습니다.
개발적인 오류였기 때문에 현재 상황에 대한 안내를 어떻게 해야할지 고민했습니다.
팝업이었기 때문에, 최대한 간결함이 중요했고 문제 /발생이유의 내용은 생략하였습니다,
- 문제 설명 > '화면에 정보를 불러오지 않음'의 문제를 유저가 이미 시각적으로 인지함
- 문제가 발생한 이유 설명 > 유저가 해결할 수 있는 문제가 아님 (유저에게 중요하지 않음)
대신, 확실히 해결할 수 있는 방법을 제시하여 유저가 최대한 빨리 문제를 벗어나 서비스를 사용할 수 있도록 했습니다.
지금은 모두 해결된 상태이기 때문에, 앱에서 이 팝업을 만나실 일은 없쥐만!!!!!!!
로직을 수정하는 일주일 간 포포리만의 '적은 리소스로 유저 이탈률과 신뢰도를 방어하는 방법'에 대해 설명드렸읍니다,.
포포리 v1.3.0 업데이트 소식을 슬쩍- 전해드리며!
앞으로도 더 발전하는 포포리가 되겠습니다💜
짱 쉽게 공유하고 짱 오래 보관하는 내 손 안의 모바일 네컷앨범,
포포리가 궁금하다면?
포포리 pophory
짱 쉽게 공유하고 짱 오래 보관하는 내 손 안의 모바일 네컷앨범
