공지: 앱이 AI 쓰레기처럼 보이는 게 싫다면? 사용자에게 날것의 에러를 보여주지 마세요.
PSA: Don't want your app to look like AI slop? Stop showing your users raw errors.
핵심 요약
AI가 생성한 앱에서 사용자에게 기술적인 에러 메시지를 그대로 노출하지 말고, 상황별로 적절한 안내 문구를 제공하라는 조언입니다.
- 에러 처리 전략 — 사용자가 에러를 직접 해결할 수 있는지 여부에 따라 메시지 수준을 분류함
- 기술 정보 격리 — 상태 코드나 파일 경로 같은 기술적 세부 사항은 UI가 아닌 로그에만 기록함
- 사용자 경험 개선 — 불필요한 에러 노출을 줄여 앱의 완성도를 높이고 신뢰감을 유지함
- AI 프롬프트 활용 — 에러 처리 방식을 에이전트에게 지시하여 코드에 일관되게 적용함
나한테는 앱 쓰다가 UI에 알 수 없는 에러 메시지 뜨는 순간 바로 '아, 이거 개판이네'라는 생각이 든다. 뭔가 찜찜하고, 고장 난 것 같고, 대충 만든 느낌이 확 든단 말이지. 내 앱 쓰는 사람들한테 절대 주고 싶지 않은 기분이다. 지난 몇 년간 AI로 코딩하면서 느낀 건데, 모델 성능이 아무리 좋아져도 이상하게 기본값은 항상 이 모양이더라.
a) 에러를 아예 안 보여주거나,
b) 아니면 에러 메시지 원문을 그대로, 혹은 이상하게 잘라서 사용자 면상에 바로 들이밀거나.
다음에 프로젝트 할 때, 아래 내용을 에이전트 MD 파일에 추가해 봐. 아니면 에이전트한테 이 프롬프트 던져서 코드 싹 훑고 적용하게 시키든가.
Error Presentation
사용자가 보는 모든 에러는 기획의 결과물이지, 코드에서 튀어나온 걸 그대로 보여주는 게 아니다. 실패 상황마다 아래 단계 중 하나를 골라라.
(1) 사용자가 해결 가능한 경우: 뭘 해야 하는지 사용자의 언어로 설명하고, 기대하는 형식을 보여줄 것.
(2) 사용자가 해결 불가능한 경우: 실패했다고 딱 잘라 말하고 다음에 뭘 해야 할지 알려줄 것. 로그 ID가 있다면 짧게 하나만 남겨라.
(3) 사용자가 알 필요 없는 경우: 재시도로 성공했거나, 백그라운드 작업이 다시 돌거나, 토큰이 알아서 갱신된 경우. 아무것도 보여주지 마라.
어떤 단계든 기술적인 디테일(상태 코드, 예외 텍스트, 식별자, 파일 경로)은 로그에만 남기고 UI에는 절대 띄우지 마라. 사용자가 저장했거나 보냈다고 생각하는 데이터가 날아가는 상황이라면 절대 숨기지 마라. 입력값, 네트워크 호출, 백그라운드 작업이 포함된 스펙이라면 실패할 수 있는 모든 경우에 대해 위 단계 중 하나를 반드시 지정해라.
누군가한테 도움 됐으면 좋겠네.

