‘정보 우선순위’에 대한 UX 접근
서비스를 운영하다 보면 작은 요소들로도 사용자 경험의 흐름을 어긋나게 만드는 순간들이 있을 것이다.
최근 서비스 가격 정책이 변경되면서 작은 UI 제공에 혼란이 생기는 지점을 경험하게 되었다.
초기 서비스에서는 무료 사용자도 GPU 컨테이너를 만들 수 있었지만, 어뷰저 문제로 인해 결국 GPU 사용은 유료 멤버십 전용으로 조정하게 되었다.
정책 변경 전 이미 생성 중인 무료 사용자에게는 안내가 필요했고, 우리는 비활성화된 컨테이너 카드 위에 다음과 같은 메시지를 노출하기로 했다.
그런데 이 과정에서 예상치 못한 문제가 드러났다.
일부 무료 사용자는 다음 두 조건이 동시에 충족하고 있었다.
1. 멤버십 없음 (GPU 접근권 없음)
2. 크레딧이 소진된 상태
결국, 서로 다른 두 원인 때문인데도 동일한 상태(컴포넌트)로 보이게 되는 것이다.
멤버십이 없어서 GPU를 못 쓰는 것인지
크레딧이 모자라서 실행을 못 하는 것인지
사용자 입장에서는 정보에 구분이 되지 않는다.
“그럼 둘 다 안내하면 되지 않을까?”
겉보기엔 쉬운 해결책처럼 보인다.
“멤버십이 없고, 크레딧도 부족합니다.”
한 문장에 두 원인을 넣기만 하면 될 것처럼 느껴진다.
하지만 이 방식은 다음과 같은 혼란을 더 키운다.
팝오버는 상태를 확정적으로 보여주는 UI이기 때문에
여기에 두 원인이 함께 제시되면 사용자는 당연하게 이렇게 읽는다.
“아, 멤버십도 사고 크레딧도 충전해야 쓸 수 있나 보다.”
하지만 GPU 기능의 ‘진짜 선행 조건’은 명확하다.
멤버십이 없으면 GPU는 어떤 경우에도 사용할 수 없다.
멤버십 부재: 정책적 권한 문제
크레딧 부족: 실행 단계의 리소스 문제
근본적인 권한 결여가 먼저 해결되어야 하는데,
두 원인이 나란히 한 팝오버에 들어가는 순간 사용자는 어떤 것이 먼저인지 구분할 수 없게 된다.
팝오버는 “지금 당신은 이 기능을 사용할 수 없습니다”라는 메시지를 전달하는 컴포넌트다.
만약 이 안에 크레딧 부족 안내까지 들어가면 사용자는 이렇게 오해할 수 있다.
“그럼 크레딧만 충전하면 GPU가 활성화되는 건가?”
이런 오해는 실제로 사용자 행동을 왜곡시키고 다크패턴(이중결제)이나 잘못된 기대를 유발하게 된다.
문제의 핵심은 ‘다음 행동이 보이지 않는다’는 것
사용자가 원하는 건 원인 나열이 아니라
“지금 무엇을 먼저 해야 하는지” 다음 행동의 방향을 보고 싶은 것이다.
이 상황을 구조화해보면 다음 두 원칙이 핵심이다.
인지부하(Cognitive Load): 사람은 여러 원인을 동시에 판단하는 데 서투르다.
정보 계층화(Information Hierarchy): 행동 결정을 돕는 정보에는 위계가 필요하다.
• 사용자가 즉시 해결할 수 없는 문제 → 먼저 전달
• 사용자가 해결 가능한 문제 → 이후 단계에서 전달
멤버십은 사용자가 즉시 해결할 수 없는 정책적 조건이고,
크레딧은 충전만 하면 즉시 해결 가능한 문제니 멤버십 안내가 더 상위 정보가 된다.
여기에 Nielsen의 ‘Error Prevention’ 원칙도 적용된다.
잘못된 행동을 유도할 가능성이 있는 정보는 먼저 보여주면 안 된다.
“크레딧만 충전하면 GPU가 될까?” 같은 오해는 반드시 방지해야 했다.
GPU 기능은 멤버십 여부로 접근권이 결정되고,
크레딧 부족은 실행 단계에서만 영향을 미치는 조건이기 때문에
두 메시지를 하나에 합치기보다, 맥락에 따라 분리해 노출하는 방식으로 정리했다.
GPU 비활성화 팝오버에는 멤버십 안내만,
크레딧 부족은 실행 가능한 컨테이너에서만 별도 안내
이번 경험은 작은 UI 요소일지라도 사용자 판단과 행동에 얼마나 영향을 미치는지를 다시 생각하게 만들었다.
“그럼, 지금 나는 무엇을 먼저 해야 하나요?”
사용자가 가야 할 방향을 제시하는 일
UX의 본질은 바로 이 방향성을 얼마나 명확하고 부담 없이 전달하느냐에 달려 있다.
그리고 이런 세밀함 모여 결국 서비스 전체의 신뢰를 만든다는 사실을
이번 사례를 통해 다시 확인하게 되었다.