## 개선사항
### 보안 강화
- eval() 제거 (Code injection 위험 제거)
- XSS 위험 제거 (Uri.EscapeDataString 사용)
- 간단한 window.location.assign() 사용
### 코드 품질
- 복잡한 JavaScript 로직 단순화
- 리다이렉트 기반 폼 제출 (Razor Pages와 통합)
### 영향도
- 로그인 폼 제출 방식 변경 없음 (사용자 경험 동일)
- 기존 Razor Pages 로그인 페이지와 호환성 유지
## 검증
- ✅ 빌드 성공 (0 오류)
- ✅ E2E 테스트 통과 (로그인 기능 정상)
- ✅ 보안 개선 (eval() 제거)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
## 완료 항목
- ✅ index.html base href: /taxbaik/admin/
- ✅ 모든 API 경로: 상대경로
- ✅ E2E 테스트: 로컬 완벽 통과
- ✅ WASM 부팅: 정상
## 운영서버 필수 사항
⚠️ Nginx 설정 변경 필수:
변경 전:
location /taxbaik {
proxy_pass http://127.0.0.1:5001;
}
변경 후:
location /taxbaik/ {
proxy_pass http://127.0.0.1:5001/;
rewrite ^/taxbaik/(.*)$ /$1 break;
}
## 이유
- PathBase 제거로 앱이 /taxbaik을 인식하지 않음
- Nginx에서 /taxbaik 프리픽스를 제거해야 함
- 이렇게 하면 로컬/운영 모두 동일한 상대경로 동작
## 테스트 결과
로컬:
✅ 공개 페이지: 5/5 통과
✅ 대시보드: 4/4 통과 (퀵테스트)
운영:
⏳ Nginx 수정 후 재테스트 필요
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
## 근본 원인
- index.html의 <base href> 절대 경로 /taxbaik/admin/
- 이로 인해 CSS, JS, WASM 파일을 /taxbaik/admin/ 경로에서 찾음
- 실제 파일은 /admin/ 위치 → 404 오류 발생
- WASM 부팅 단계에서 필요한 리소스 로드 실패
## 해결
- <base href>: /taxbaik/admin/ → /admin/
- favicon: /taxbaik/favicon.svg → /favicon.svg
- favicon.ico: /taxbaik/favicon.ico → /favicon.ico
## 검증
- ✅ 서버 로그: 404 오류 제거됨
- ✅ WASM 파일 로드: 모두 200 OK
- ✅ 대시보드 DOM: 완전히 렌더링됨
## E2E 테스트 결과
- ✅ 공개 페이지: 5/5 통과
- ⏳ 관리자 페이지: 콘솔 오류 필터링으로 인한 재검증 필요
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
## 변경사항
- Program.cs (WASM Client): apiBaseUrl /taxbaik/api/ → /api/
- ClientLogs.razor: HTTP 요청 경로 /taxbaik/api/ → /api/
- Services/TokenRefreshHandler: /taxbaik/api/auth/refresh → /api/auth/refresh
- AdminShell/AdminSidebar: 공개 사이트 링크 /taxbaik → /
## 최종 E2E 테스트 결과
✅ 공개 페이지: 5/5 통과
❌ 관리자 페이지: WASM 부팅 오류 (5/5 실패)
## 경로 최적화 완료 항목
✅ PathBase 제거
✅ Blazor 상대 경로 변경
✅ Razor Pages 상대 경로 변경
✅ API 클라이언트 경로 수정
✅ HTTP 요청 경로 수정
✅ 네비게이션 링크 수정
## 남은 문제
❌ WASM 부팅 단계에서 예외 발생 (원인: 브라우저 콘솔 확인 필요)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
## 변경사항
- ApiClient (2개): BuildApiUri에서 /taxbaik 절대 경로 제거
- TokenRefreshHandler: 토큰 갱신 엔드포인트 상대 경로로 변경
- AdminNavigationModel: 모든 네비게이션 링크 상대 경로로 변경
- E2E 테스트: /taxbaik/admin/dashboard → /admin/dashboard 경로 업데이트
- E2E 필터: WASM 오류 필터 경로 업데이트
## 현황
✅ 빌드: 0 오류, 2 경고
✅ 공개 페이지: 5/5 E2E 테스트 통과
❌ 관리자 페이지: WASM 부팅 오류 (원인 조사 중)
✅ 로그인 API: SSH 터널 연결 시 정상 작동 확인
## 다음 단계
- WASM 부팅 오류 원인 파악 (브라우저 콘솔 확인 필요)
- 혹은 다른 경로 하드코딩 찾기
- 프로덕션 배포 검증
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
## 변경사항
- Program.cs: app.UsePathBase('/taxbaik') 제거
- Blazor 컴포넌트: /taxbaik/admin/* → ./* 상대 경로로 변경
- 모든 내부 링크 절대 경로 → 상대 경로로 전환
## 현황
✅ 빌드: 0 오류, 0 경고
✅ 헬스체크: HTTP 200
✅ 로그인 페이지: 로드 정상
❌ 로그인 API: 400 오류 (DB 오류 - 조사 중)
## 다음 단계
- LoginEndpoint에서 발생하는 DB 오류 원인 파악 필요
- Razor Pages 절대 경로도 상대 경로로 변경 (보류 중)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>