refactor: 에러 코드 문구 해요체로 통일

세 플랫폼이 공유하는 에러 코드 맵의 문장을 딱딱한 합니다체에서 해요체로
바꿨다. 화면 문구는 실제로 쓰는 말로만 쓴다는 기준에 맞춘 것이다.

- SYS_001 "일시적인 시스템 오류가 발생했습니다." → "일시적인 오류가 생겼어요."
- AUTH_003 "해당 메뉴나 기능에 접근할 수 있는 권한이 없습니다."
  → "이 메뉴나 기능을 이용할 권한이 없어요."
- VAL_001 의 "(필수값 누락 또는 형식 오류)" 는 개발자 말이라 문장으로 풀었다.
- main.ts 의 Rate Limit 응답도 같은 문장을 쓰고 있어 "요청이 너무 많아요" 로
  함께 고쳤다.

SSOT 3개 파일(backend 필터 · frontend ErrorCodeLexicon · flutter ErrorLexicon)과
규칙 문서, 그리고 문구를 인용하던 화면·테스트를 함께 갱신했다.

frontend lint · type-check · 테스트 11개 통과. flutter analyze 에서
error_lexicon.dart 는 문제 없음. backend 는 node_modules 가 비어 있어
로컬에서 lint/test 를 돌리지 못했다(문자열 리터럴만 변경).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0128kgT8ycCATfJVFULQMa9b
This commit is contained in:
2026-09-11 01:43:07 +09:00
parent e5de79a669
commit 4ef3deb87e
9 changed files with 38 additions and 36 deletions
@@ -21,7 +21,7 @@ export class HttpExceptionFilter implements ExceptionFilter {
let status: HttpStatus = HttpStatus.INTERNAL_SERVER_ERROR;
let code = 'SYS_001';
let message =
'일시적인 시스템 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.';
'일시적인 오류가 생겼어요. 잠시 후 다시 시도해 주세요.';
if (exception instanceof HttpException) {
status = exception.getStatus();
@@ -29,23 +29,23 @@ export class HttpExceptionFilter implements ExceptionFilter {
if (status === HttpStatus.UNAUTHORIZED) {
code = 'AUTH_001';
message = '로그인이 필요한 서비스입니다. 로그인 후 이용해 주세요.';
message = '로그인이 필요한 기능이에요. 로그인 후 이용해 주세요.';
} else if (status === HttpStatus.FORBIDDEN) {
code = 'AUTH_003';
message = '해당 메뉴나 기능에 접근할 수 있는 권한이 없습니다.';
message = ' 메뉴나 기능을 이용할 권한이 없어요.';
} else if (status === HttpStatus.NOT_FOUND) {
code = 'RES_001';
message = '요청하신 정보나 페이지를 찾을 수 없습니다.';
message = '찾으시는 정보나 페이지가 없어요.';
} else if (
status === HttpStatus.BAD_REQUEST ||
status === HttpStatus.UNPROCESSABLE_ENTITY
) {
code = 'VAL_001';
message =
'입력하신 정보를 다시 확인해 주세요. (필수값 누락 또는 형식 오류)';
'입력하신 내용을 다시 확인해 주세요. 빠진 항목이 있거나 형식이 맞지 않아요.';
} else {
code = 'BIZ_001';
message = '요청하신 작업을 완료하지 못했습니다. 다시 시도해 주세요.';
message = '요청하신 작업을 끝내지 못했어요. 다시 시도해 주세요.';
// 비즈니스 예외에서는 사용자에게 보일 메시지를 재정의 가능
if (
+1 -1
View File
@@ -71,7 +71,7 @@ async function bootstrap() {
error: {
code: 'SYS_001',
message:
'일시적인 시스템 오류가 발생했습니다. (요청 한도 초과) 잠시 후 다시 시도해 주세요.', // 글로벌 통합 에러 포맷
'요청이 너무 많아요. 잠시 후 다시 시도해 주세요.', // 글로벌 통합 에러 포맷
},
},
}),