8 Commits

Author SHA1 Message Date
kjh2064 6963152e97 배포 버전 정보 표시 및 포트 충돌 해결
TaxBaik CI/CD / build-and-deploy (push) Failing after 29s
### 버전 정보 표시 기능
- CI/CD에서 빌드 시간과 git commit hash를 version.txt에 기록
- Web과 Admin 앱이 시작 시 version.txt를 읽어 VersionInfo 싱글톤으로 등록
- 홈페이지 푸터에 "버전: <커밋해시> | 배포: <빌드시간>" 표시
- 최신 소스 반영 여부를 즉시 확인 가능

### 포트 충돌 해결
- 배포 후 기존 프로세스 종료 시 포트 릴리스 대기 로직 추가
- lsof 명령으로 포트 사용 여부 확인 (최대 30초 대기)
- 5001/5002 포트가 완전히 릴리스될 때까지 new process 시작 지연
- "Address already in use" 오류 해결

파일 변경:
- .gitea/workflows/deploy.yml: 버전 파일 생성 + 포트 대기 로직
- TaxBaik.Web/Program.cs: version.txt 읽기 + VersionInfo 등록
- TaxBaik.Admin/Program.cs: version.txt 읽기 + VersionInfo 등록
- TaxBaik.Web/Pages/Shared/_Footer.cshtml: 버전 정보 표시
- TaxBaik.Web/VersionInfo.cs: 새로 추가
- TaxBaik.Admin/VersionInfo.cs: 새로 추가

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 17:13:12 +09:00
kjh2064 e7e01d0cd8 마이그레이션 및 보안 수정
TaxBaik CI/CD / build-and-deploy (push) Failing after 15s
- MigrationRunner: 이미 존재하는 테이블에 대한 "relation already exists" 오류 처리
- V002, V003 마이그레이션: ON CONFLICT DO NOTHING으로 멱등성 보장
- Web, Admin Program.cs: app.UseAntiforgery() 미들웨어 추가 (anti-forgery 토큰 검증)

변경사항:
- 마이그레이션 재실행 시에도 안전하게 처리
- 폼 제출 시 CSRF 공격 방지
- 관리자 로그인 페이지 405 에러 해결

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 16:46:36 +09:00
kjh2064 b875538bb5 추가: 마이그레이션 러너 및 배포 가이드
- MigrationRunner 구현 (자동 DB 마이그레이션)
- Program.cs에 마이그레이션 자동 실행 추가
- 마이그레이션 SQL 파일을 임베드 리소스로 설정
- 완전한 배포 가이드 작성 (DEPLOYMENT_GUIDE.md)
- E2E 테스트 절차 포함
- 롤백 및 모니터링 가이드 추가

배포 준비 완료: Gitea CI/CD 자동 배포 활성화 가능

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 15:24:39 +09:00
kjh2064 b300cd7a59 완성: 빌드 성공 및 최종 통합 (W0~W6 완료)
- 모든 빌드 오류 해결 (PageModel, Blazor, ResponseCompression)
- Admin 컴포넌트 MudBlazor 6.x 호환성 확보
- IBlogPostRepository 메서드 통일
- ResponseCompression gzip 활성화

W0~W6 전체 작업 완료:
 프로젝트 기반 구축
 LLM 개발 지침 (CLAUDE.md)
 도메인/인프라/서비스 레이어
 공개 홈페이지 (Razor Pages SSR)
 관리자 백오피스 (Blazor Server + MudBlazor)
 CSS 디자인 시스템 + 모바일 UX
 초기 데이터 + 블로그 포스트 5개

다음 단계: 서버 배포 (Gitea CI/CD)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 15:23:06 +09:00
kjh2064 f99d61f767 수정: 빌드 오류 해결 (PageModel 네임스페이스, Blazor 문법, 응답 압축)
- @model 선언에 정확한 네임스페이스 지정
- Snackbar 호출 수정 (MudBlazor 6.x 호환)
- GzipCompressionProvider import 추가
- Dashboard Color.TextSecondary 제거
- Admin App.razor MUI CSS 제거

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 15:21:02 +09:00
kjh2064 b1228ddb4b 개선: CSS 디자인 시스템 및 성능 최적화
- CSS 변수 확장 (색상, 스페이싱, 반응형 브레이크포인트)
- 모든 요소 전환 애니메이션 추가
- 이미지 lazy load 지원
- 응답 압축 (gzip) 활성화
- 폰트 preconnect + DNS prefetch 최적화
- 375px ~ 초소형 화면 반응형 대응
- 게시물 레이아웃 개선 (섹션 구조, 메타데이터)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-26 15:17:28 +09:00
kjh2064 6a37cfead4 구현: W3 공개 홈페이지 (Razor Pages SSR)
공개 사이트 (port 5001):
- Program.cs: AddRazorPages, AddInfrastructure, AddApplication, UsePathBase("/taxbaik")
- appsettings.json: PostgreSQL 연결 문자열

레이아웃 및 공통 컴포넌트:
- _Layout.cshtml: Bootstrap 5, Noto Sans KR, OG 메타 태그, 모바일 고정 CTA 바
- _Header.cshtml: sticky navbar, 로고, 네비게이션 링크, 상담신청 버튼
- _Footer.cshtml: 사업자정보, 연락처, KakaoTalk, 저작권
- _ViewImports.cshtml, _ViewStart.cshtml
- site.css: CSS 변수 (--color-primary, --color-cta 등), 반응형 스타일
- site.js: 모바일 CTA 바 제어, sticky 헤더 효과

페이지 구현:
1. Index.cshtml (메인 랜딩): Hero, 신뢰도 strip, 서비스 카드, 최근 블로그
2. Services.cshtml (서비스): 4개 서비스 소개, 상담료 안내
3. About.cshtml (소개): 세무사 프로필, 3개 자격증, 서비스 철학
4. Contact.cshtml (상담신청): 폼 (이름, 전화, 이메일, 분야, 문의), ValidationException 처리
5. Blog/Index.cshtml (블로그 목록): 카테고리 필터 탭, 12개 그리드, 페이지네이션
6. Blog/Post.cshtml (포스트 상세): 브레드크럼, 제목, 메타정보, 콘텐츠, CTA, 공유 버튼

SEO:
- robots.txt: /taxbaik 허용, /admin 차단, sitemap 링크
- Sitemap.cshtml: 동적 생성 (정적 페이지 + 모든 포스트)

기술:
- Dapper 기반 DB 접근
- 페이징: 12개/페이지
- 한국어 입력값 검증

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 15:10:39 +09:00
kjh2064 6dff8e7777 Initial project setup: solution + 5 projects
- Domain, Infrastructure, Application (class libraries)
- Web (ASP.NET Core empty)
- Admin (Blazor Server)
- All net8.0 target framework
- Project references configured

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-26 14:51:00 +09:00