본문 바로가기
v2.0
기초 원칙 03

안전망 원칙
(Psychological Safety Net)

실수해도 언제든 궤도를 수정할 수 있다는 확신

공공 서비스에서 오류는 반드시 발생합니다. 문제는 오류 자체가 아니라, 오류를 만났을 때 시민이 어떤 경험을 하느냐입니다. 안전망 원칙은 그 경험을 설계합니다.

개요

실수해도 언제든 궤도를 수정할 수 있다는 확신을 주어 비가역적 공포를 없앱니다.

3가지 실행 기준
기준정의핵심 행동
100% 예측 가능한 버튼 '확인/취소' 같은 모호한 단어 대신, 누른 뒤 일어날 일을 명확히 표기 동사형 레이블 + 결과 명시
비난 없는 오류 복구 시스템 오류 코드만 내뱉지 않고, 원인+해결책을 함께 제시 3단 구조 (상황 → 원인 → 행동)
비가역 행동 앞의 제동 최종 제출 등 되돌릴 수 없는 행동 직전에 명확한 경고 경고 텍스트 + 확인 대화상자
🚫 이런 오류 메시지는 금지
ERROR 4023: 인증 실패

입력하신 정보가 올바르지 않습니다. 다시 확인해 주세요.

오류가 발생했습니다. 잠시 후 다시 시도해 주세요.
✅ 3단 구조 적용
인증 번호가 일치하지 않습니다.
문자로 받은 6자리 숫자와 다르게 입력됐습니다.
문자를 다시 확인하고 숫자를 입력해 주세요.
번호가 만료됐다면 [인증 번호 다시 받기]를 눌러 주세요.

오류 메시지 3단 구조

기존 공공 서비스 오류의 두 가지 실패 — 코드만 던지는 메시지, 사용자를 탓하는 메시지 — 를 모두 막는 구조입니다.

왜 3단인가

기존 공공 서비스 오류 메시지의 두 가지 실패 유형을 먼저 확인합니다.

❌ 유형 A — 코드만 던지는 메시지
ERROR 4023: 인증 실패

원인도 해결책도 없다. 시민은 무엇을 해야 할지 모른 채 화면 앞에 멈춘다.
❌ 유형 B — 사용자를 탓하는 메시지
입력하신 정보가 올바르지 않습니다. 다시 확인해 주세요.

무엇이 올바르지 않은지 알려주지 않으면서 시민의 잘못으로 전제한다. 당혹감과 분노를 동시에 준다.
3단 구조는 이 두 실패를 모두 막는다. 무슨 일이 있었는지 알려주고, 왜 그런지 설명하고, 무엇을 하면 되는지 제시한다.
3단 구조 정의
단계역할작성 원칙
1단. 상황 (What)무슨 일이 일어났는지 한 문장으로시스템 관점이 아닌 사용자 관점으로 서술. 항상 필수.
2단. 원인 (Why)왜 그런 일이 생겼는지시스템·환경 원인 우선. 사용자 입력 문제라도 "확인 필요"로 표현. 원인 불명 시 생략 가능.
3단. 행동 (How)지금 할 수 있는 구체적 행동버튼·링크 포함. 2개 이상 대안 제시 가능. 즉각 행동이 없는 경우 생략 가능.
1단 상황 (What)
무슨 일이 있었는지 — 한 문장으로
시스템 관점이 아닌 사용자 관점으로 서술. 항상 필수.
2단 원인 (Why)
왜 그런 일이 생겼는지
시스템·환경 원인 우선. 사용자 입력 문제라도 "확인 필요"로 표현. 원인 불명 시 생략 가능.
3단 행동 (How)
지금 무엇을 하면 되는지
버튼·링크 포함. 2개 이상 대안 제시 가능. 즉각 행동이 없는 경우 생략 가능.
3단 모두 필요한가? 맥락에 따라 1+3단(원인 불필요), 1+2단(즉각 행동 없음)으로 축약 가능합니다. 단, 1단(상황)은 항상 필수입니다.

유형별 적용 예시

가장 자주 발생하는 오류 유형에 3단 구조를 적용한 사례입니다.

예시 1 — 인증 번호 불일치
❌ ERROR 4023: 인증 실패 ❌ 인증에 실패했습니다. 다시 시도해 주세요. ✅ 1단 인증 번호가 일치하지 않습니다. 2단 문자로 받은 6자리 숫자와 다르게 입력됐습니다. 3단 문자를 다시 확인하고 숫자를 입력해 주세요. 번호가 만료됐다면 [인증 번호 다시 받기]를 눌러 주세요.
예시 2 — 파일 업로드 실패
❌ 파일 업로드에 실패했습니다. ❌ 오류가 발생했습니다. 잠시 후 다시 시도해 주세요. ✅ 1단 파일을 올리지 못했습니다. 2단 파일 크기가 10MB를 넘으면 올릴 수 없습니다. 3단 파일 크기를 줄이거나, 여러 개로 나눠 올려 주세요. (지원 형식: PDF, JPG, PNG / 최대 10MB)
예시 3 — 세션 만료
❌ 세션이 만료되었습니다. 로그인 페이지로 이동합니다. ✅ 1단 자리를 비운 사이 로그인이 끊겼습니다. 2단 보안을 위해 30분 이상 사용하지 않으면 자동으로 로그아웃됩니다. 3단 작성 중이던 내용은 임시 저장됐습니다. 다시 로그인하면 이어서 작성하실 수 있습니다. [다시 로그인하기]
예시 4 — 검색 결과 없음
❌ 검색 결과가 없습니다. 철자나 맞춤법 오류가 있는지 확인해 주세요. ✅ 1단 '{검색어}'에 대한 결과를 찾지 못했습니다. (2단 생략 — 원인이 다양하고 특정이 어려움) 3단 단어를 짧게 줄여 보세요. (예: '행정 절차 안내' → '절차') 비슷한 표현으로 다시 검색해 보세요.
예시 5 — 필수 항목 미입력
❌ 필수 항목을 입력해 주세요. ❌ 잘못된 입력입니다. ✅ 1단 '생년월일'을 입력하지 않았습니다. (2단 생략 — 원인이 명확한 경우) 3단 생년월일을 숫자 8자리로 입력해 주세요. (예: 19900101)

원인 귀속 원칙 — 사용자를 탓하지 않는 언어

오류의 원인은 시스템·환경·사용자 입력 세 가지입니다. 실제 원인이 사용자 입력이더라도, 언어는 다음 원칙을 따릅니다.

원칙 1 — 시스템·환경 원인은 명확히 밝힌다
✅ 서버가 응답하지 않고 있습니다. (시스템 원인) ✅ 인터넷 연결을 확인해 주세요. (환경 원인)
원칙 2 — 사용자 입력 문제는 "확인 필요" 방식으로

"틀렸다"가 아니라 "일치하지 않는다", "형식을 확인해 달라"로 표현합니다.

사용자 탓 표현중립 표현
비밀번호가 틀렸습니다비밀번호가 일치하지 않습니다
잘못 입력한 항목이 있습니다확인이 필요한 항목이 있습니다
형식에 맞지 않는 값입니다입력 형식을 확인해 주세요 (예: 숫자 8자리)
원칙 3 — 원인을 모를 때는 솔직하게
✅ 일시적인 문제가 생겼습니다. 잠시 후 다시 시도하거나, 문제가 계속되면 고객센터(☎ 1234-5678)에 문의해 주세요.

원인 불명 시 억지로 이유를 만들지 않습니다. "일시적인 문제"로 표현하고 연락처를 제공합니다.

금지 표현 목록

사용자를 탓하거나, 정보 없이 재시도를 요구하거나, 심리적 부담을 주는 패턴입니다.

금지 표현금지 이유대체 방향
잘못 입력하셨습니다사용자 실수로 단정"일치하지 않습니다" / "확인이 필요합니다"
올바르지 않은 정보입니다무엇이 올바르지 않은지 미제시구체적 필드명 + 기대 형식 명시
오류가 발생했습니다 (단독)원인·해결책 없는 빈 메시지3단 구조 적용
다시 시도해 주세요 (단독)무엇을 어떻게 재시도할지 불명구체적 행동 제시
맞춤법 오류가 있는지 확인해 주세요사용자 탓 전제"결과를 찾지 못했습니다" + 검색 팁
ERROR [코드]시민에게 의미 없는 기술 정보1단 상황 설명으로 대체 (코드는 괄호 안에 선택 병기)
잠시 후 다시 시도해 주세요 (단독)'잠시'가 얼마인지 불명"5분 후 다시 시도해 주세요" 또는 담당자 연락처 안내
죄송합니다 (오류 메시지에서)공감처럼 보이나 원인·해결책을 가림공감 없이 건조하게 상황+행동만 제시
주의: 오류 메시지에서 이모지나 느낌표(!) 사용 금지. 오류 상황에서 과한 감정 표현은 조롱처럼 느껴질 수 있습니다. (1.4 보이스·톤 기준 — 🔴 톤 3 참조)

오류 유형별 빠른 참조

가장 자주 발생하는 10가지 오류 유형의 3단 구조 참조표입니다.

오류 유형 1단 (상황) 2단 (원인) 3단 (행동)
로그인 실패 아이디 또는 비밀번호가 일치하지 않습니다 다시 입력하거나 [비밀번호 찾기]
세션 만료 로그인이 끊겼습니다 30분 이상 사용하지 않으면 자동 로그아웃 [다시 로그인하기]
파일 크기 초과 파일을 올리지 못했습니다 {N}MB를 넘는 파일은 올릴 수 없습니다 파일 크기를 줄이거나 나눠서 올려 주세요
필수 항목 미입력 '{항목명}'을 입력하지 않았습니다 {형식} 형태로 입력해 주세요
네트워크 오류 연결이 끊겼습니다 인터넷 연결 상태가 불안정합니다 연결 확인 후 새로 고침 해 주세요
검색 결과 없음 '{검색어}'에 대한 결과를 찾지 못했습니다 검색어를 바꿔 다시 검색해 보세요
서버 오류 일시적인 문제가 생겼습니다 잠시 후 다시 시도하거나 고객센터 문의
권한 없음 이 페이지에 접근할 수 없습니다 로그인이 필요하거나 접근 권한이 없습니다 [로그인하기] 또는 담당자 문의
중복 신청 이미 신청하셨습니다 같은 내용으로 신청한 이력이 있습니다 [신청 내역 보기]
시간 초과 시간이 초과되었습니다 제출 가능 시간({N}분)이 지났습니다 처음부터 다시 시작해 주세요

성공·완료 메시지 패턴

과업이 완료됐을 때의 메시지는 주권자의 안도감을 강화하고 다음 일정을 명확히 안내하는 역할을 합니다. 과도한 축하나 감사 표현은 오히려 공식 서비스의 신뢰감을 해칩니다.

완료 메시지 3요소
① 완료 확인 — 무엇이 완료됐는지 (1문장) ② 접수 정보 — 접수번호·다음 처리 일정 ③ 다음 행동 안내 — 버튼 또는 링크 (선택)
요소🚫 나쁜 예✅ 좋은 예
① 완료 확인감사합니다! 신청해 주셔서 정말 기쁩니다.지원금 신청이 완료됐습니다.
② 접수 정보빠른 시일 내에 연락드리겠습니다.심사 결과는 3영업일 안에 문자로 알려드립니다.
③ 다음 행동[신청 내역 확인하기]
완료 메시지 유형별 패턴
유형 1 — 즉시 처리 완료 (실시간 시스템 처리)
✅ {작업}이 완료됐습니다. 접수번호: {N} [결과 확인하기] 예시: ✅ 비밀번호가 변경됐습니다. 다음 로그인부터 새 비밀번호로 접속해 주세요. [로그인하기]
유형 2 — 심사 대기형 (행정 처리 필요)
✅ {신청명} 신청이 완료됐습니다. 접수번호: {N} 심사 결과는 {기간} 안에 {수신 방법}으로 알려드립니다. [신청 내역 확인하기] 예시: ✅ 기초생활 지원금 신청이 완료됐습니다. 접수번호: 2026-복지-004821 심사 결과는 14일 안에 등록하신 휴대전화로 알려드립니다. [신청 내역 확인하기]
유형 3 — 취소·해지 완료 (되돌릴 수 없는 행동)
✅ {서비스명} {취소/해지}이 완료됐습니다. {취소 정보 또는 효력 발생 일자} [확인서 내려받기] (선택) 예시: ✅ 자동 납부 해지가 완료됐습니다. 다음 달 청구분부터 자동 납부가 되지 않습니다. 수동으로 납부하려면 납부 기한(매월 25일)을 확인해 주세요.
완료 메시지 금지 표현
🚫 금지 표현금지 이유
감사합니다! 다음에도 이용해 주세요과업 완료 확인보다 마케팅 메시지가 앞섬
축하드립니다 🎉공공 서비스에서 과도한 감정 표현
처리 완료! 수고하셨습니다주권자를 칭찬하는 것은 권위적 태도
곧 연락드리겠습니다'곧'의 시간 불명확 → 구체적 기간 명시
오류 없이 완료됐습니다"오류 없이"는 당연한 것 → 삭제

빈 상태·검색 없음 텍스트

데이터가 없는 빈 화면은 오류가 아닙니다. 그러나 "내역이 없습니다"라는 건조한 통보만 남겨두면 주권자는 자신이 무언가 잘못한 것은 아닌지 불안해하거나 다음 행동을 멈추게 됩니다.

빈 상태(Empty State) 구조 원칙
① 상태 설명 — 왜 비어 있는지 (원인) ② 안내 — 무엇을 하면 되는지 (대안 행동) ③ 행동 버튼 — 직접 연결되는 CTA (선택)
상황🚫 나쁜 예✅ 좋은 예
신청 내역 없음신청 내역이 없습니다.아직 신청한 지원금이 없습니다.
[나에게 맞는 지원금 찾기]
알림 없음알림이 없습니다.새로운 알림이 없습니다.
신청·심사·결과 변경 시 알려드립니다.
즐겨찾기 없음즐겨찾기가 없습니다.자주 쓰는 서비스를 즐겨찾기에 추가해 보세요.
[서비스 둘러보기]
빈 상태 유형별 패턴
유형 1 — 아직 생성되지 않은 경우

주권자가 행동하면 채워질 수 있는 상태입니다. 대안 행동을 유도합니다.

아직 {내용}이 없습니다. [{생성/신청/추가} 버튼]
유형 2 — 조건을 충족하지 못해 비어 있는 경우

주권자가 해당되지 않아 표시될 내용이 없는 상태입니다. 이유를 설명합니다.

현재 {조건}에 해당하는 {내용}이 없습니다. {조건 변경 또는 다른 경로 안내} 예시: 현재 신청 가능한 지원금이 없습니다. 소득·재산 기준이 맞지 않거나, 이미 신청한 경우입니다. [지원금 자격 다시 확인하기]
유형 3 — 오류로 인해 데이터를 불러오지 못한 경우

빈 상태처럼 보이지만 실제로는 기술적 문제입니다. 오류 3단 구조를 적용합니다.

정보를 불러오지 못했습니다. 잠시 후 [새로 고침]하거나, 문제가 계속되면 고객센터에 문의해 주세요. [새로 고침] [고객센터 문의]
검색 없음 (No Results) 패턴

단순히 "결과가 없다"고 끝내지 않고, 주권자가 검색을 성공할 수 있도록 힌트를 제공합니다.

'{검색어}'에 대한 결과를 찾지 못했습니다. — 단어의 철자가 맞는지 확인해 보세요. — 단어를 짧게 줄여 보세요. (예: '행정 절차 안내' → '절차') — 비슷한 표현으로 다시 검색해 보세요.
검색 유형힌트 방향예시
서비스 검색대표 카테고리 제안'청년주택'을 찾고 계신가요? [청년 지원 서비스 보기]
기관명 검색공식 명칭 안내'서울시청'으로 검색해 보세요
민원 검색인기 검색어 제안많이 찾는 민원: 주민등록등본, 건강보험료 조회
검색창 플레이스홀더 — 실패 방지 힌트

검색창의 입력 안내 문구(플레이스홀더)는 "무엇을 입력하면 원하는 결과를 얻을 수 있는지" 보여주는 가장 좋은 튜토리얼입니다.

🚫 의미 없는 안내✅ 구체적 힌트
검색어를 입력해 주세요질병명 또는 병원 이름 검색
검색예) 청년 주택, 자동차세 연납
찾고 싶은 내용을 입력하세요서비스명, 기관명, 민원 유형

빠른 점검 — 안전망 원칙

오류 메시지와 경고 문구를 확정하기 전, 5가지 항목을 점검하세요.

  • 3단 구조 — 오류 메시지에 '무슨 일 / 왜 / 어떻게'가 포함되어 있는가? (최소 1단+3단)
  • 사용자 탓 금지 — "잘못 입력하셨습니다", "올바르지 않습니다" 같은 단정 표현을 사용하지 않았는가?
  • 구체적 행동 — "다시 시도해 주세요" 단독이 아닌, 구체적으로 무엇을 어떻게 해야 하는지 제시했는가?
  • 버튼 예측 가능성 — 버튼을 눌렀을 때 일어날 일이 레이블에 명확히 적혀 있는가?
  • 비가역 경고 — 되돌릴 수 없는 행동(제출, 삭제, 결제) 직전에 명확한 경고가 있는가?
이모지·느낌표 점검: 오류 메시지에 이모지(❗⚠️)나 느낌표(!)를 사용하지 않았는지 확인하세요. 오류 상황에서는 건조하고 명확한 어조가 원칙입니다.
다른 원칙 보기
원칙 목록으로
모든 원칙 보기 →