diff --git a/CLAUDE.md b/CLAUDE.md index 0623c13..54ff464 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -461,15 +461,26 @@ ssh kjh2064@178.104.200.7 5432 : PostgreSQL (localhost 바인드) ``` -### 3.3 배포 절차 (CI only) +### 3.3 배포 절차 (CI only) & Green-Blue 지원 배포는 수동 실행이 아니라 **Gitea Actions CI/CD**만 사용한다. +**표준 배포 (현재)**: 1. `master` 브랜치에 push 2. Gitea Actions가 `TaxBaik.Web`을 build/publish 3. CI가 서버의 `taxbaik` 서비스와 `~/taxbaik_active`를 갱신 4. CI가 서비스 재시작 후 `/taxbaik/admin/login`으로 헬스 체크 +**API 클라이언트 설정 (Green-Blue 대비)**: +- API 클라이언트 Base URL이 이제 동적 설정됨: `appsettings.json` > `ApiClient:BaseUrl` +- 기본값: `http://localhost:5001/taxbaik/api/` +- 배포 시 환경변수로 오버라이드 가능: + ```bash + export ApiClient__BaseUrl="http://localhost:5002/taxbaik/api/" + systemctl start taxbaik # 새 포트에 배포 + ``` +- Nginx가 `/taxbaik` → active 포트로 라우팅하면 자동 전환됨 + **운영 규칙**: - 로컬 또는 서버에서 수동 `dotnet publish`로 운영 배포하지 않는다 - `rsync`로 직접 아티팩트를 올리지 않는다 @@ -904,7 +915,7 @@ curl http://127.0.0.1/taxbaik curl http://127.0.0.1/taxbaik/admin/login ``` -### E2E 테스트 +### E2E 테스트 & 반응형 검증 ```bash # 문의 폼 제출 curl -X POST http://178.104.200.7/taxbaik/contact \ @@ -916,6 +927,30 @@ psql -U taxbaik -d taxbaikdb SELECT * FROM inquiries ORDER BY created_at DESC LIMIT 1; ``` +**반응형 디자인 E2E 테스트**: +```bash +# 모든 디바이스 크기에서 관리자 대시보드 검증 (Desktop, Tablet, Mobile) +export E2E_BASE_URL="http://localhost:5001/taxbaik" +export E2E_ADMIN_USERNAME="admin" +export E2E_ADMIN_PASSWORD="admin123" + +# Playwright로 반응형 테스트 실행 (8개 디바이스 크기) +npx playwright test admin-responsive.spec.ts + +# 단일 프로젝트만 (빠른 검증) +npx playwright test admin-responsive.spec.ts --project="Desktop Chrome" +``` + +**테스트 항목**: +- ✅ Desktop (1920px, 1440px, 1024px): 메트릭 4개 컬럼 +- ✅ Tablet L/M (960px, 768px): 메트릭 3/2 컬럼 +- ✅ Tablet S (600px): 메트릭 1 컬럼, 드로어 축소 +- ✅ Mobile (480px, 375px): 메트릭 1 컬럼, 모바일 네비게이션 +- ✅ 텍스트 가독성 (최소 폰트 11px) +- ✅ 버튼 접근성 (최소 20x20px) +- ✅ 폼 필드 너비 (200px 이상) +- ✅ 수평 오버플로우 없음 (모든 크기) + --- ## 12. 문제 해결 @@ -928,6 +963,8 @@ SELECT * FROM inquiries ORDER BY created_at DESC LIMIT 1; | Blazor WebSocket 안 됨 | `/taxbaik` location에 `proxy_http_version 1.1`, `Upgrade`, `Connection "Upgrade"` 헤더가 모두 있는지 확인 | | 배포 후 503 | 서비스 시작 대기 (startup 시간 ~5초), `systemctl status taxbaik` 확인 | | 로그인 실패 | `admin_users.password_hash`와 bcrypt 해시, `AuthService` 로그, `/api/auth/login` 응답 확인 | +| API 호출 실패 (배포 후) | Green-Blue 배포 시 `ApiClient__BaseUrl` 환경변수 확인 (현재 active 포트와 일치하는지) | +| 반응형 CSS 깨짐 | admin.css 로드 확인 (헬스 체크에 포함됨), 브라우저 DevTools에서 viewport 설정 확인 | ---