지원 티켓을 줄이는 오류 메시지
검증 오류와 권한 오류를 명확하고 실행 가능한 방식으로 작성해 사용자가 스스로 문제를 해결하게 함으로써 지원 티켓을 줄이는 방법을 배우세요.

불명확한 오류가 지원 티켓을 늘리는 이유
불명확한 오류는 단순히 성가신 것이 아닙니다. 사용자를 작업 도중 멈추게 하고, 다음에 무엇을 해야 할지 알 수 없게 만듭니다.
비즈니스 사용자는 보통 앱을 "디버깅"하려는 것이 아닙니다. 양식을 제출하거나 요청을 승인하거나 고객 기록을 업데이트하려고 합니다. 메시지가 "Invalid input"이나 "Access denied"처럼 뜨면 사용자는 무엇을 잘못했는지, 무엇을 바꿔야 하는지, 누가 해결할 수 있는지를 알 수 없습니다.
그 불확실성은 지원 티켓으로 이어집니다. 사용자는 먼저 세부 정보가 적은 상태로 문제를 보고합니다. 그러면 지원팀은 스크린샷, 정확한 단계, 편집 중이던 레코드, 발생 시각을 요청합니다. 사용자는 나중에 답장하고 종종 이미 다른 일로 넘어갑니다. 그 사이에 작업은 중단됩니다.
이런 이유로 지원 티켓을 줄이는 오류 메시지는 비난이 아니라 행동에 초점을 맞춥니다. 화면 앞의 사용자가 즉시 문제를 해결할 수 있게 돕거나, 긴 문답 없이도 올바른 담당자에게 전달되도록 안내합니다.
비즈니스 앱에서 대부분의 "막혔다"는 티켓을 만드는 오류는 두 가지입니다:
- 유효성 검사 오류(Validation errors): 사용자가 입력한 데이터를 바꿔서 스스로 고칠 수 있습니다(필수 항목 누락, 형식 오류, 허용 범위 벗어남).
- 권한 오류(Permission errors): 사용자가 혼자서는 고칠 수 없습니다(역할 제한, 레코드 소유권 규칙, 승인 권한 부족).
이 둘이 잘못 작성되면 사용자에게 똑같이 막힌 길처럼 느껴집니다.
명확한 메시지는 짧은 앞으로의 경로를 만듭니다. 실용적인 몇 가지 질문에 답해야 합니다:
- 정확히 무엇이 문제인가(알기 쉬운 말로)?
- 문제가 어디에 있는가(어떤 필드, 어떤 레코드, 어떤 단계)?
- 지금 무엇을 할 수 있는가(고치기, 권한 요청, 나중에 다시 시도)?
- 도움이 필요하면 어떤 정보를 보내야 하는가?
예: AppMaster 같은 플랫폼으로 만든 내부 도구에서 사용자가 새 공급업체를 생성하려 할 때 "Error 400"은 티켓을 만듭니다. 반면 "Tax ID must be 9 digits. You entered 8."는 몇 초 만에 문제를 해결합니다.
이 글은 비즈니스 사용자가 특별한 접근이나 관리자 지식 없이도 일반적인 문제를 해결할 수 있도록 유효성 검사와 권한 메시지를 다시 쓰는 방법에 중점을 둡니다.
유효성 검사 오류와 권한 오류가 사용자에게 주는 경험의 차이
유효성 검사 오류는 사용자가 입력한 데이터가 받아들여질 수 없을 때 발생합니다. 사용자는 올바르게 하려는 중이지만 필드가 비어 있거나 형식이 잘못되었거나 값이 허용 범위를 벗어납니다. 좋은 유효성 검사 메시지는 보통 같은 화면에서 고칠 수 있기 때문에 도움 되는 툭 놓는 느낌을 줍니다.
일반적인 유효성 상황 예시는 다음과 같습니다:
- 필수 항목이 비어 있음(예: 고객 이름)
- 값 형식이 잘못됨(이메일, 전화번호, 날짜)
- 숫자가 범위를 벗어남(할인율이 100% 초과, 수량이 1 미만)
- 텍스트가 너무 김(메모가 제한을 초과함)
- 잘못된 선택(허용되지 않은 상태 선택)
권한 오류는 다릅니다. 데이터가 유효하더라도 사용자가 무언가를 할 수 없을 때 발생합니다. 이는 역할 제한(뷰어 vs 매니저), 소유권 규칙(오직 소유자만 편집 가능), 또는 비즈니스 정책(환불은 재무만 가능) 때문일 수 있습니다. 사용자가 혼자서는 고칠 수 없는 경우가 많아 권한 메시지는 더 큰 좌절감을 일으킬 수 있습니다.
부실하게 작성된 권한 오류는 개인적으로 느껴질 수 있습니다: "Access denied"는 시스템이 사용자를 판단하는 것처럼 들립니다. 또한 화면에 아무것도 바뀌지 않았는데 오늘 갑자기 실패하면 사용자는 앱이 고장났다고 생각하고 티켓을 엽니다.
최고의 메시지는 누가 보고 있느냐에 따라 다릅니다. 일반 사용자는 간단한 다음 단계를 필요로 합니다: 대신 무엇을 할 수 있는지, 누구에게 연락해야 하는지. 관리자는 규칙과 누락된 권한을 알아야 역할을 안전하게 변경할 수 있습니다. AppMaster처럼 팀이 비즈니스 앱을 만드는 도구에서는 이 구분이 중요합니다: 하나의 메시지가 사용자 소음을 줄이는 동시에 관리자에게 해결에 필요한 충분한 세부를 제공할 수 있습니다.
오류 메시지를 설계할 때 유효성 검사는 "지금 고칠 수 있음"으로, 권한은 "왜 막혔는지와 가장 빠른 해결 경로"로 취급하세요.
비즈니스 사용자가 행동할 수 있는 오류 메시지의 원칙
지원 티켓을 줄이는 오류 메시지를 원한다면 각 메시지를 작은 지침 세트처럼 다루세요. 비즈니스 사용자는 한 번 읽고 무엇을 고쳐야 할지 알아야 하며, 비난받는 느낌을 받아선 안 됩니다.
간단한 한 문장으로 무슨 일이 일어났는지 설명하는 것부터 시작하세요. 사용자가 실수한 것처럼 보이게 하는 문구는 피합니다. "기록을 저장할 수 없습니다"는 "잘못된 데이터를 입력했습니다"보다 더 부드럽고 덜 공격적으로 들립니다.
다음으로 문제의 위치를 정확히 밝히세요. 어떤 필드, 어떤 레코드, 어떤 단계인지 가리키세요. "Invoice date"는 "Invalid input"보다 낫습니다. 문제가 특정 항목과 연관돼 있다면 주문 번호나 고객 이름처럼 사용자가 인식할 수 있는 식별자를 포함하세요.
그다음 하나의 명확한 다음 행동을 제시하세요. 짧게 유지하고 긴 조언 문단은 피하세요. 사용자는 내부 사유나 복잡한 논리를 필요로 하지 않습니다. 단지 다음 최선의 조치: 값을 선택하라, 형식을 바꿔라, 접근을 요청하라, 또는 관리자를 연락하라.
단순한 구조는 사용자가 패턴을 학습하는 데 도움이 됩니다. 많은 팀이 다음과 같은 일관된 템플릿을 사용합니다:
- 무슨 일이 일어났나(일상어)
- 어디에(필드, 레코드, 화면, 단계)
- 다음에 무엇을 할지(하나의 행동)
- 막혔을 때 누구에게 요청할지(승인자 또는 접근 요청 경로)
특출한 문구보다 구체적인 표현이 낫습니다. 내부 용어, 시스템 코드, 도구 이름은 사용자가 이미 알고 있지 않은 한 건너뛰세요. "Status must be one of: Draft, Approved, Paid"는 "Enum validation failed"보다 낫습니다. 지원을 위해 참조를 넣어야 한다면 마지막에 명확히 표시하세요(예: "Reference: 8F2A")—주의를 분산시키지 않게 합니다.
일관성은 톤과 형식에도 적용됩니다. 한 메시지가 "Fix:"를 쓰고 다른 메시지가 "Resolution:"을 쓰면 사용자는 멈춰서 생각합니다. 한 패턴을 골라 재사용하세요.
다음은 메시지를 실행 가능하게 유지하는 빠른 점검 사항입니다:
- 데이터베이스의 필드명이 아니라 사용자의 언어를 사용하세요(예: Billing email 대신 청구 이메일)
- 1~2개의 짧은 문장과 그 다음 행동으로 구성하세요
- "wrong"이나 "failed" 같은 비난 단어는 피하고 "can't", "needs" 같은 표현을 사용하세요
- 필드가 필수라면 무엇이 필수인지와 그 이유를 말하세요
- 접근이 부족한 경우 보통 어떤 역할이나 팀이 그것을 허용하는지 알려주세요
유효성 검사 오류를 빠르게 고치도록 다시 쓰기
유효성 검사 오류는 사용자가 보통 즉시 고칠 수 있기 때문에 지원 티켓을 줄일 수 있는 가장 쉬운 부분입니다. 핵심은 "Invalid input" 같은 모호한 메시지를 네 가지 질문에 답하는 메시지로 바꾸는 것입니다: 무슨 일이 일어났나, 어디서 일어났나, 어떻게 고치나, 다음엔 무엇이 일어나나.
보편적으로 잘 작동하는 간단한 템플릿은 다음과 같습니다:
- 문제: 무슨 문제가 있는가
- 위치: 정확한 필드나 단계
- 해결: 사람 말로 된 규칙
- 다음 단계: 고친 후 무슨 일이 일어나는지
"해결" 부분은 구체적으로 하세요. 비즈니스 사용자는 기술 용어보다 예시, 숫자, 허용 형식으로 더 잘 이해합니다.
다음은 흔한 경우의 재작성 예시입니다:
- 필수 항목 누락: "Invoice Date에 필수 정보가 없습니다. YYYY-MM-DD 형식으로 날짜를 입력하세요(예: 2026-01-25). 그런 다음 저장을 클릭하세요."
- 잘못된 형식: "Customer Phone의 전화번호 형식이 인식되지 않습니다. 숫자만 사용하세요, 예: 4155550123. 그런 다음 다시 시도하세요."
- 범위 초과: "**Discount %**의 할인율이 너무 높습니다. 0에서 30 사이의 값을 입력하세요. 그런 다음 적용을 클릭하세요."
- 중복: "Email에 이미 등록된 이메일입니다. 다른 이메일을 사용하거나 기존 고객 레코드를 열어 업데이트하세요."
포함하지 않을 항목에 주의하세요: 내부 필드 ID, 정규식, 데이터베이스 오류, 또는 악용될 수 있는 규칙 등입니다. 민감한 로직을 노출하지 않고도 도움을 줄 수 있습니다. 예를 들어 "Password must match policy v3" 대신 "최소 12자, 숫자 포함"처럼 쓰세요.
사용자가 동시에 여러 문제를 겪을 수 있는지에 따라 메시지 표시 위치를 결정하세요. 인라인 텍스트는 사용자가 해당 필드에서 바로 고칠 수 있을 때 가장 좋고, 배너는 여러 필드가 관련된 교차 필드 문제(예: 시작일이 종료일보다 이후인 경우)에 적합합니다.
AppMaster 같은 노코드 빌더에서는 필수 항목과 형식 관련 오류에 대해 각 필드 옆에 인라인 메시지를 표시하고, 여러 입력이 관련된 경우에는 배너를 사용하는 것이 효과적입니다.
이 접근법을 일관되게 적용하면 사용자가 추측하거나 도움을 요청하지 않고도 스스로 수정할 수 있어 지원 티켓을 줄일 수 있습니다.
민감한 세부를 노출하지 않으면서 권한 오류 다시 쓰기
권한 오류는 까다롭습니다. 사용자는 안내가 필요하지만 볼 수 없어야 할 것을 노출할 수는 없습니다. 목표는 "access denied"를 명확한 다음 단계로 바꾸는 것이며, 동시에 메시지를 중립적으로 유지하는 것입니다.
먼저 인증(authentication)과 권한 부여(authorization)를 분리하세요. 사용자가 로그인되어 있지 않거나 세션이 만료된 경우에는 그것을 분명히 알리고 로그인 액션을 제공하세요. 로그인은 되어 있지만 권한이 부족한 경우에는 접근 권한이 없다는 점을 알리고 안전한 다음 단계를 제시하세요.
업무 방식에 맞는 역할 친화적 언어를 사용하세요. 대부분의 비즈니스 사용자는 "403"이나 "정책 평가"를 생각하지 않습니다. 그들은 작업공간, 팀, 소유자 관점으로 생각합니다.
지원 티켓을 줄이는 오류 메시지를 만드는 데 유용한 구조는 다음과 같습니다:
- 무슨 일이 일어났는가: "이 페이지/동작에 접근할 수 없습니다."
- 이유(개괄): "이 작업에 대한 권한이 현재 역할에 포함되어 있지 않습니다."
- 다음에 할 일: "워크스페이스 소유자에게 접근을 요청하세요" 또는 "워크스페이스를 전환하세요"
- 대안: "실수라고 생각되면 관리자에게 문의하세요"
- 선택적: "참조 ID: ABC123"(지원 로그 추적에 도움이 될 때만)
민감한 세부는 제외하세요. 특정 레코드가 존재한다거나 누구의 소유인지, 왜 제한되었는지를 확인해 주지 마세요. "Invoice #48102는 Finance 소속입니다"나 "이 고객은 조사 대상입니다" 같은 메시지는 정보 유출이 될 수 있습니다. 제한된 프로젝트의 이름을 보여주는 것도 유출이 될 수 있습니다.
나쁜 예: "You can’t view ‘Acquisition Plan 2026’ because you’re not in the M&A group."
더 나은 예: "이 항목에 접근할 수 없습니다. 워크스페이스 소유자에게 접근을 요청하거나 권한이 있는 워크스페이스로 전환하세요."
상황에 따라 올바른 경로를 제공하세요. 앱에 여러 워크스페이스나 계정이 있는 경우 "워크스페이스 전환"이 가장 빠른 해결책일 수 있습니다. 역할 문제라면 "접근 요청"이 "지원에 문의"보다 낫습니다. AppMaster처럼 인증과 역할 기반 접근 규칙이 명확한 플랫폼에서는 이 방식이 실제 접근 관리 방식과 잘 맞습니다.
참조 ID는 지원 진단에 실제로 도움이 될 때만 추가하세요. 지원이 서버 로그 없이는 진단할 수 없다면 짧은 ID가 유용합니다. 사용자가 스스로 고칠 수 있는 문제(잘못된 워크스페이스, 누락된 역할)라면 코드가 오히려 혼란을 줍니다.
간단한 예: 마리아가 "Export Payments Report"를 클릭했는데 "You don’t have access to export reports in Workspace: Retail Ops. Switch workspace or request the Reporter role from the workspace owner."라는 메시지를 본다 가정하세요. 그녀가 "HQ Finance"로 전환하면 아무에게도 연락하지 않고 바로 내보내기를 완료할 수 있습니다.
권한 메시지에 포함할 것(그리고 빼야 할 것)
권한 오류는 한 가지 질문에 빠르게 답해야 합니다: "다음에 무엇을 할 수 있나?" 메시지가 단순히 "Access denied"라고만 하면 대부분 사람은 다시 시도하거나 새로고침하거나 기기를 바꿔봅니다. 그런 행동은 권한을 바꾸지 않으므로 결국 지원 티켓으로 이어집니다.
사용자가 스스로 고칠 수 있게 돕는 최소한의 정보를 제공하세요. 차단된 동작을 일상어로 명시한 다음 간단한 이유를 덧붙이세요. "You can’t approve invoices"는 "403 Forbidden"보다 명확합니다. 역할 기반 문제라면 "당신의 역할에는 송장 승인 권한이 포함되지 않습니다"라고 쓰세요.
또한 누가 차단을 해제할 수 있는지 알려주되 위험한 세부는 노출하지 마세요. 많은 팀에서는 특정 사람을 지목하는 것이 괜찮습니다. 다른 경우에는 조직 구조가 노출되거나 원치 않는 연락이 생길 수 있습니다. 안전한 기본은 역할이나 그룹을 가리키는 것입니다: "워크스페이스 관리자에게 요청하세요" 또는 "계정 소유자에게 요청하세요."
좋은 권한 메시지는 보통 다음을 포함합니다:
- 차단된 동작(조회, 편집, 내보내기, 삭제, 승인)
- 간단한 이유(역할 누락, 해당 레코드에 할당되지 않음, 기능 비활성화)
- 가장 안전한 다음 단계(접근 요청, 다른 작업흐름 선택, 임시 저장)
- 무엇이 도움이 되지 않는지에 대한 힌트(재시도해도 접근 권한은 바뀌지 않음)
- 중립적이고 짧은 톤(비난이나 조롱 금지)
빼야 할 것: 내부 코드, 기술 스택 용어, 민감한 접근 규칙. "You are not in group Finance-AP-Approvers"처럼 그룹명이 조직 구조를 드러낼 수 있으면 피하세요. 레코드 ID, 사용자 ID, 또는 우회 방법을 포함하지 마세요. 필요한 세부는 서버 로그로 남기고 화면에는 표시하지 마세요.
가능하면 "접근 요청" 버튼을 제공하세요. 이 버튼은 문맥을 캡처해 올바른 관리자에게 알림을 보낼 수 있습니다. AppMaster 같은 플랫폼에서는 요청을 요청 레코드로 만들고, 담당자에게 알리고, 상태를 추적하는 간단한 워크플로우로 연결할 수 있습니다.
메시지를 앱 전반에서 일관되게 유지하세요. 사용자는 패턴을 학습합니다. 모든 권한 오류가 같은 형태를 따르면 추측을 멈추고 올바른 다음 단계를 따르게 됩니다.
예시 재작성:
"Permission denied."
다음으로:
"이 보고서를 내보낼 수 없습니다. 현재 역할에 내보내기 권한이 포함되어 있지 않습니다. 재시도해도 접근 권한은 바뀌지 않습니다. 워크스페이스 관리자에게 'Report Export' 권한을 부여해 달라고 요청하거나 접근을 요청하세요."
단계별: 앱용 오류 메시지 플레이북 만들기
플레이북은 앱에서 보이는 오류들을 일관된 방식으로 정리해 둔 간단한 목록입니다. 잘 해두면 지원 티켓을 줄이는 가장 빠른 길이 됩니다.
1) 오류가 실제로 발생하는 곳을 매핑하세요
데이터베이스 테이블이 아니라 사용자 여정에서 시작하세요. 사용자가 가장 자주 막히는 몇 가지 작업을 골라보세요: 레코드 생성, 요청 승인, 보고서 내보내기, 실수로 삭제한 항목 복구 등. 각 작업에서 사용자가 멈추거나 재시도하거나 도움을 요청하는 지점을 적으세요.
오류가 표시되는 정확한 순간(예: "Approve 버튼 클릭 시" vs "폼 제출 시")을 기록하세요. 같은 문제라도 단계에 따라 다른 문구가 필요할 수 있습니다.
2) 실제 사용자의 오류를 수집하세요
초벌 문구를 작성하기 전에 실제 사례를 모으세요. 지원 티켓, 채팅 메시지, 사용자가 공유한 스크린샷에서 예시를 뽑으세요. 원문을 그대로 보관하세요. 원문은 고쳐야 할 패턴을 보여줍니다.
AppMaster 같은 플랫폼으로 빌드한다면 현재 앱의 유효성 검사 및 권한 메시지 목록을 내보내어 티켓 목록과 비교하세요. 차이가 우선순위가 됩니다.
3) 의도별로 메시지를 그룹화하세요(작성의 일관성을 위해)
수백 개의 고유 메시지 대신 몇 가지 명확한 범주를 만들고 표준화하세요. 일반적인 범주는 다음과 같습니다:
- 데이터 누락(필수 필드 비어 있음)
- 충돌 데이터(두 필드가 일치하지 않음, 중복 값)
- 정책에 의해 차단됨(시간 창, 상태 규칙, 승인 한도)
- 역할에 의해 차단됨(사용자에게 권한 없음)
- 시스템 문제(타임아웃, 서비스 불가)
의도별로 그룹화하면 구조, 톤, "다음 단계" 안내를 재사용할 수 있습니다.
4) 케이스별로 하나의 표준 메시지를 작성하고 안전한 변형만 허용하세요
각 범주마다 하나의 "골드" 메시지 템플릿을 만들고 필드명, 허용 형식, 현재 상태, 승인자 등 꼭 바뀌어야 하는 부분만 변형하세요. 로컬라이제이션이 필요하면 표준이 합의된 뒤 번역하세요.
각 메시지는: 무슨 일이 일어났는지, 왜 그런지(사용자 관점), 그리고 가장 안전한 다음 단계를 담도록 하세요.
5) 담당자와 검토 규칙을 정하세요
메시지 카탈로그는 소유자가 없으면 곧 구식이 됩니다. 다음을 결정하세요:
- 누가 카탈로그를 편집하나(보통 제품 또는 UX)
- 누가 변경을 승인하나(지원 리드 + 보안 담당자 권한 관련)
- 업데이트는 언제 이루어지나(릴리스 체크리스트)
- 변경 사항은 어떻게 추적하나(버전 문서)
- 영향은 어떻게 측정하나(티켓 태그, 상위 오류 카운트)
목표는 간단합니다: 새 기능이 출시될 때 사용자가 스스로 문제를 해결할 수 있도록 메시지를 함께 제공하는 것입니다.
티켓을 조용히 늘리는 흔한 실수들
어떤 지원 티켓은 실버그(심각한 버그) 때문이 아닙니다. 메시지가 비즈니스 사용자가 다음 단계를 실행할 수 없게 만들면 티켓이 생깁니다. 작은 문구 선택 하나가 10초짜리 수정을 몇 번의 문답으로 바꿀 수 있습니다.
가장 큰 원인 중 하나는 예상 가능한 고치기 쉬운 문제에 대해 일반적인 문구를 쓰는 것입니다. "Something went wrong"은 장애 상황에는 맞지만 필수 항목 누락에는 답답합니다. 가능한 원인을 알고 있다면 평이한 말로 그 원인을 적고 고칠 위치를 가리키세요.
또 다른 문제는 실제 원인을 기술 용어 뒤에 숨기는 것입니다. "exception", "stack trace", "HTTP 403" 같은 단어는 정확할 수 있지만 대부분의 비즈니스 사용자는 이를 토대로 행동하지 못합니다. 기술 코드는 내부 디버깅용으로 두고, 사용자에게는 사람 말로 된 설명을 주십시오.
지원에 문의하라고 처음부터 유도하는 메시지도 조용한 티켓 생성기입니다. 메시지가 곧장 "Contact support"라고 하면 사용자는 단순히 그렇게 합니다. 먼저 자가 해결 경로를 제시하고, 그래도 안되면 지원을 안내하세요.
톤도 팀들이 생각하는 것보다 중요합니다. 사용자를 탓하는 문구("You entered wrong data")는 마찰을 만들고 다시 시도하는 것을 망설이게 합니다. 대신 목표와 해결책에 집중하세요: 무엇이 부족한지, 어떤 형식이 필요한지, 다음에 무엇을 해야 하는지.
마지막으로 일관성 부족은 혼란을 만듭니다. 한 화면에서 "workspace"라고 하고 다른 화면에서 "team"이라고 하면 사용자는 오류가 무엇을 가리키는지 모릅니다. 제품의 핵심 명사를 표준화하고 오류 메시지 전반에서 재사용하세요.
주의할 실수 체크리스트:
- 예상 가능한 유효성 문제에 대한 일반적인 메시지 사용
- 기술 용어 대신 평이한 원인과 해결책 사용
- "Contact support"를 유일한 다음 단계로 제시
- 사용자를 비난하는 언어
- 화면마다 다른 용어 사용
AppMaster 같은 플랫폼으로 앱을 만들면 UI에서 일관된 명명 체계를 유지하고 공통 유효성 검사 및 권한 확인에 대한 재사용 가능한 오류 문구를 두어 많은 문제를 예방할 수 있습니다. 작은 개선이 실제 지원 티켓 감소로 이어집니다.
예시: 비즈니스 사용자가 지원에 연락하지 않고 문제를 해결하는 흐름
Maya는 운영팀에서 일합니다. 내부 주문 도구에서 배송을 위해 Order #10482를 승인하려 합니다. 그녀가 Approve를 클릭하자 다음 메시지가 뜹니다:
원본(도움이 되지 않음): Error: Access denied.
Maya는 시스템이 다운된 건지, 잘못된 버튼을 눌렀는지, 관리자 권한이 필요한지 알 수 없습니다. 가장 빠른 경로는 지원 티켓을 여는 것입니다: "승인이 안 됩니다. 고쳐 주세요." 지원은 매번 같은 질문을 합니다: "어떤 역할인가요? 어느 워크스페이스인가요? 어떤 단계에서요?"
이제 민감한 세부는 보호하면서도 개선된 메시지를 비교해 보세요:
개선(실행 가능): 현재 역할로는 Warehouse A에서 주문을 승인할 수 없습니다.
무엇을 할 수 있나요:
- 해당 창고의 Order Manager에게 승인을 요청하거나
- 관리자에게 Order Approval 권한을 요청하세요.
참조: PERM-APPROVE-ORDER
이 메시지로 Maya는 추측할 필요가 없습니다. 그녀는 세 가지 간단한 행동을 합니다:
- 주문 헤더를 확인해 Warehouse A인지 확인합니다.
- 해당 창고의 Order Manager에게 승인 요청을 보냅니다.
- 권한 요청에 참조 코드(PERM-APPROVE-ORDER)를 포함합니다.
1분 후 매니저가 주문을 승인합니다. Maya가 다시 시도하자 폼이 이번엔 다른 이유로 멈춥니다: 송장 번호가 비어 있습니다.
원본(도움이 되지 않음): Validation failed.
이 메시지는 보통 또 다른 티켓을 만듭니다: "Validation failed가 무슨 뜻인가요?" 대신 개선된 메시지는 필드를 가리키고 어떤 값이 "정상"인지 알려줍니다:
개선(실행 가능): 주문을 승인하려면 Invoice number가 필요합니다.
Invoice number에 입력하세요(예: INV-10482), 그런 다음 다시 Approve를 클릭하세요.
Maya는 이메일에서 송장 번호를 복사해 붙여넣고 성공적으로 승인합니다.
이것이 실제로 지원 티켓을 줄이는 오류 메시지의 작동 방식입니다: "문제가 생겼다"는 상태를 명확한 다음 단계로 바꿉니다. 진짜 예외적인 경우에만 지원이 개입하면 되고, 반복적인 질문(왜 차단되었는가? 어느 필드가 틀린가?)은 앱이 바로 답합니다.
빠른 점검과 다음 단계
변경을 배포하기 전에 사용자와 가장 많은 문답을 만드는 오류들을 빠르게 점검하세요. 좋은 목표는 사용자가 처음 메시지를 보는 즉시 수정 방법이 명백해지는 오류들입니다.
유효성 검사 오류 빠른 체크리스트
유효성 검사는 사람들이 정확히 무엇을 바꿔야 하는지, 바로 고칠 수 있는 위치에서 알려야 합니다.
- 정확한 필드를 명시하고 그 필드 근처에 메시지를 두세요(입력 강조, 메시지 근접 배치).
- 허용되는 형식(형식, 길이, 범위, 예시: "YYYY-MM-DD 사용")을 말하세요.
- 평이한 말로 명확한 해결책을 제시하세요("constraint", "schema" 같은 내부 용어 피함).
- 허용 값이 있다면 보여주거나(또는 상위 몇 개와 찾는 방법을 안내) 표시하세요.
- 구체적으로 적으세요("전화번호를 입력하세요"는 "Invalid input"보다 낫습니다).
권한 오류 빠른 체크리스트
권한 메시지는 무슨 일이 일어났는지 설명하면서 민감한 세부는 드러내지 않아야 합니다.
- 차단된 동작을 명시하세요("이 송장을 승인할 수 없습니다").
- 안전한 이유를 제시하세요("역할에 승인 권한이 포함되어 있지 않습니다").
- 도와줄 수 있는 사람을 알려주세요(팀 소유자, 부서 관리자 또는 역할 이름).
- 다음 최선의 조치 제시(접근 요청, 다른 워크플로 선택, 초안으로 저장).
- 사용자의 작업을 안전하게 유지하세요(변경 사항을 버리지 마세요; 저장 여부 확인).
화면 전반에 걸쳐 용어, 톤, 구조를 일관되게 하세요(무슨 일이 일어났나, 왜 그런가, 다음에 무엇을 할까). 작은 불일치가 사용자를 멈추게 만듭니다.
비기술 사용자 3~5명으로 테스트하세요. 몇 가지 문제를 심어두고 관찰만 하세요. 그들이 어떤 단어를 그대로 반복하는지, 어디에서 멈추는지, 무엇을 클릭하는지 기록하세요. 여전히 추측하면 메시지를 다시 쓰세요.
다음 단계: 구현, 측정, 반복. 이번 주에는 가장 많은 티켓을 유발하는 상위 5개 오류에 집중해 개선하세요. 내부 도구를 AppMaster로 빌드한다면 UI 빌더와 비즈니스 프로세스 흐름을 사용해 필드 수준의 유효성 피드백과 명확한 권한 차단을 코드 없이 표시하고, 규칙이 변할 때 논리를 업데이트하세요.


