- Add 'Remember ID' checkbox for improved UX
- Store username in localStorage when checked
- Restore saved username on login page load
- Remove saved username when checkbox unchecked
- Follow security best practice: save username only, not password
**Enhancement:**
- Wrap login form in HTML <form> element with @onsubmit
- HTML form automatically treats Enter key as submit action
- No need for custom @onkeypress handler
**Behavior:**
- Users can now press Enter in password field to login
- Or click the login button (existing behavior maintained)
- Both methods trigger HandleLogin() async handler
This provides better UX for keyboard-first users.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
App.razor already provides MudThemeProvider globally.
Login.razor inheriting from BlankLayout should not redefine it.
This fixes the 'Duplicate MudPopoverProvider detected' error that was
preventing Blazor circuit from establishing and blocking login.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 연간 세무 캘린더(7개 시즌) 기반 자동 Hero 섹션 전환
- 시즌 감지 시 D-Day 카운트다운, 긴박감 배지, 시즌 CTA 표시
- 서비스 카드 순서 시즌 관련 항목 우선 정렬
- 어드민 공지사항 CRUD (등록·수정·삭제, 기간·유형 설정)
- 홈페이지 상단 공지 배너 자동 노출 (일반/배너/긴급)
- CLAUDE.md에 세무 캘린더 및 마케팅 방향 하네스 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
문제:
❌ 로그인 페이지에서 MudBlazor CSS가 적용되지 않음
❌ 스타일이 없는 상태로 렌더링됨
원인:
• BlankLayout에만 MudThemeProvider가 있음
• Login.razor는 직접 MudThemeProvider를 가지지 않음
• Blazor Interactive Server에서 컴포넌트 초기화 전 렌더링됨
수정:
✅ Login.razor에 MudThemeProvider 추가
✅ MudDialogProvider, MudSnackbarProvider도 추가
✅ 버전 파일 자동 생성 (git commit hash + timestamp)
배포:
Release 빌드 → wwwroot/version.txt 생성 → 서버 배포 → systemctl restart
결과:
✅ 로그인 페이지 CSS 정상 렌더링
✅ 버전 정보 최신화
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
1️⃣ HttpClient 서비스 추가
- IApiClient 인터페이스 구현
- GET, POST, PUT, DELETE 메서드
- JWT 토큰 자동 관리
- /taxbaik/api 경로 자동 처리
2️⃣ Razor Pages 리팩토링
- Pages/Index.cshtml.cs: API /api/blog 호출
- Pages/Blog/Index.cshtml.cs: API /api/blog, /api/category 호출
- Pages/Contact.cshtml.cs: API /api/inquiry 호출
- Service 의존성 제거
3️⃣ Blazor Components 리팩토링
- Login.razor: API /api/auth/login 호출로 변경
- BlogList.razor: API /api/blog/admin/all 호출로 변경
- Service 의존성 제거
아키텍처:
View (Razor Pages + Blazor)
↓ HttpClient
Controllers (REST API)
↓
Services (비즈니스 로직)
↓
Repository (DB)
테스트 결과:
✅ 홈페이지: 200 OK
✅ 블로그 페이지: 200 OK
✅ 문의 페이지: 200 OK
✅ 로그인 페이지: 200 OK
✅ API 엔드포인트 모두 작동
장점:
• UI 리뉴얼 시 API 변경 불필요
• 모바일앱, 데스크톱 클라이언트 추가 가능
• 비즈니스 로직과 UI 완전 독립
• 테스트 가능한 구조 완성
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
분리의 단점을 제거하고 단일 앱으로 통합:
구조 변경:
- TaxBaik.Admin → TaxBaik.Web/Components/Admin/
- Admin Services → TaxBaik.Web/Services/
- 포트: 5001 (기존 5002 제거)
경로:
- 홈페이지: http://localhost:5001/taxbaik
- 관리자: http://localhost:5001/taxbaik/admin
기술:
- Razor Pages (Web) + Blazor Server (Admin) 통합
- 단일 Program.cs로 양쪽 모두 지원
- JWT 인증 유지
- MudBlazor UI 유지
장점:
- 개발 복잡도 감소 (터미널 1개)
- 배포 단순화 (앱 1개)
- DB 마이그레이션 1회 실행
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>