fix: 기존 코드의 타입·린트 정합성 보강 (lint·type-check 통과)

- backend: HttpExceptionFilter status 를 HttpStatus 로 타입 지정(enum 비교),
  TransformInterceptor 를 Observable<T> 로, main.ts expressApp 캐스팅·bootstrap void 처리
- frontend: useApi 의 ErrorCodeLexicon 폴백 타입 보강(noUncheckedIndexedAccess)
- eslint --fix 포맷 정리(user 컨트롤러/서비스, 페이지)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-28 13:58:02 +09:00
parent b35ddfc9c3
commit 3b397b7788
8 changed files with 61 additions and 24 deletions
+2 -2
View File
@@ -15,7 +15,8 @@ export interface StandardResponse<T = unknown> {
}
// 에러 코드 사전 — CLAUDE.md / 백엔드 HttpExceptionFilter 와 1:1 매핑
const ErrorCodeLexicon: Record<string, string> = {
// SYS_001 은 폴백 메시지로 항상 존재함을 타입으로 보장 (noUncheckedIndexedAccess 대응)
const ErrorCodeLexicon: Record<string, string> & { SYS_001: string } = {
SYS_001: '일시적인 시스템 오류가 발생했습니다. 잠시 후 다시 시도해 주세요.',
AUTH_001: '로그인이 필요한 서비스입니다. 로그인 후 이용해 주세요.',
AUTH_002: '안전을 위해 로그아웃 되었습니다. 다시 로그인해 주세요.',
@@ -27,7 +28,6 @@ const ErrorCodeLexicon: Record<string, string> = {
// 사용자 노출용 알림 — Toast 라이브러리 도입 시 이 함수만 교체하면 됨
const showErrorUI = (message: string) => {
// eslint-disable-next-line no-alert
window.alert(message)
}
+5 -1
View File
@@ -10,7 +10,11 @@ const message = ref<string>('You did it!')
<h1>{{ message }}</h1>
<p>
Visit
<a href="https://vuejs.org/" target="_blank" rel="noopener">vuejs.org</a>
<a
href="https://vuejs.org/"
target="_blank"
rel="noopener"
>vuejs.org</a>
to read the documentation
</p>
</main>
+7 -2
View File
@@ -3,10 +3,15 @@
</script>
<template>
<main class="not-found" role="alert">
<main
class="not-found"
role="alert"
>
<h1>404</h1>
<p>요청하신 정보나 페이지를 찾을 없습니다.</p>
<RouterLink to="/">홈으로 돌아가기</RouterLink>
<RouterLink to="/">
홈으로 돌아가기
</RouterLink>
</main>
</template>