과거 실수들을 명시하여 같은 오류 반복 방지
## 실수 방지 체크리스트 추가
1. 카테고리 할당 실수 (category_id NULL)
2. 내용 길이 부족 (1,500자 미만)
3. 테이블 사용 금지 (리스트만)
4. 계산 예시 누락 (절세액 미수치)
5. 카테고리 주제 불일치
6. 정확한 세법 인용 누락
## 각 실수별
- 과거 오류 상황
- 문제점 분석
- 예방책 (SQL/마크다운 예시)
- 최종 체크리스트
SQL 확인 쿼리도 포함하여 DB 적용 후
자동 검증 가능하게 구성.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- 모든 블로그 포스트는 category_id 필수 (NOT NULL)
- 카테고리별 최소 3개씩 균형 배치
- 카테고리별 주제 범위 명확화
- 카테고리 미할당 시 오류 처리 규칙 추가
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Convert complex table syntax to simple lists for better readability:
- Step 2 경비 계산: 월별/연간 경비 항목별로 표시
- 비용 효과 분석: 혼자할 때 vs 세무사와 함께 비교를 리스트로
Benefits:
✅ Cleaner, easier to read
✅ No confusing | |---|---| syntax
✅ Natural flow for customers
✅ Better mobile readability
Remove internal jargon (Layer 1-3, '3층 구조', etc.)
Replace with customer perspective journey:
1️⃣ 할 수 있어요 (Capability - positive tone)
- 기초는 누구나 배울 수 있다
- 이 정도는 자신이 충분히 가능하다
2️⃣ 복잡하네요 (Reality - honest acknowledgment)
- 겉으로는 간단해 보이지만
- 세법이 복잡하고 매년 바뀐다
- 현실 직시
3️⃣ 세무사가 필요하네요 (Solution - natural conclusion)
- 그래서 전문가 도움이 필요하다
- 고객이 스스로 깨닫는 느낌
- 강요 아닌 자연스러운 선택
Updated 3 blog posts:
✅ 사업자 기장 시 자주 하는 실수 5가지
✅ 이번달 부가가치세 신고
✅ 프리랜서를 위한 종합소득세 신고
Each post now:
- Uses simple 1️⃣2️⃣3️⃣ numbering (not Layer 1-3)
- Removes '💡 3층 구조' section
- Flows naturally: customer realizes they need professionals
- Maintains accuracy (tax law citations, 2025 standards)
- Keeps human perspective (real examples, feelings)
Problem: Migrations were copied to ./publish/migrations but app looks for db/migrations
Solution: Copy to ./publish/db/migrations to match working directory structure
This ensures V020, V021, V022 migrations run automatically on app startup.
**정확성 원칙** - 법적 책임 수반
절대 금지:
❌ 추측 (아마도, 할 것 같다, 추측된다)
❌ 예상 (대략, 정도일 거다, 보통)
❌ 의견 (좋을 것 같다, 나쁠 것 같다)
❌ 일반화 (증거 없는 모두, 항상, 누구나)
❌ 출처 없는 통계 (80% 고객, 평균 X만 원)
필수 요소:
1️⃣ 세법 기반:
✅ 모든 주장에 세법/시행령/고시 인용
✅ 조항 명시 (소득세법 제XX조)
✅ 최신 기준 (2025년 기준)
✅ 변경사항 반영
2️⃣ 사실 기반:
✅ 실제 일어난 고객 사례만
✅ 가정일 경우 명시 (예를 들어)
✅ 가상 사례는 '예시'라고 명확히
✅ 개인정보 익명화
3️⃣ 데이터 기반:
✅ 객관적 수치만 (국세청 통계)
✅ 출처 명시 (2025년 세무청 통계)
✅ 구체적 금액 (약 50만 원)
✅ 비교 데이터 (작년 대비 X%)
4️⃣ 사례 제시 확인:
✅ 실제 고객인가?
✅ 세법을 정확하게 적용했는가?
✅ 금액 계산이 정확한가?
✅ 대표적인 사례인가?
✅ 다른 고객에게도 적용 가능한가?
이를 통해 세무사의 신뢰도 향상 + 법적 문제 예방
Replace absolute/guarantee language with past-tense examples per tax association rules:
1️⃣ 사업자 기장 시 자주 하는 실수 5가지
❌ 제목: '50만 원 손해보는 이유'
✅ 변경: '혼자 하기 어려운 이유'
❌ '손해 70만 원'
✅ '이 사례에서는 약 70만 원 정도의 비용이 발생했습니다'
❌ '절세 50만 원'
✅ '정확한 기장으로 이러한 상황을 방지할 수 있었습니다'
❌ '240만 원 차이'
✅ '약 240만 원 정도의 차이가 있을 수 있습니다'
2️⃣ 이번달 부가가치세 신고
❌ '손해: 56,000원'
✅ '이 경우 약 56,000원 정도의 비용이 발생했습니다'
❌ '절약: 56,000원'
✅ '기한을 지키면 이를 방지할 수 있습니다'
3️⃣ 프리랜서를 위한 종합소득세 신고
❌ 'Line 34: 손해'
✅ '이 경우 많은 손해가 발생할 수 있습니다'
❌ '절약: 170만 원'
✅ '이 사례에서는 약 170만 원 정도의 효과를 볼 수 있었습니다'
❌ '세금 450만 원' (절약 보장)
✅ '약 450만 원' (사실 기술)
❌ '약 243만 원 정도의 차이'
✅ '약 243만 원 정도의 차이가 발생했을 수 있습니다'
All posts now comply with Korean Tax Association advertising rules:
✅ No absolute claims (절대 표현 제거)
✅ No guarantee language (보장 표현 제거)
✅ Past-tense examples only (과거 사례 중심)
✅ Possibility statements (가능성만 표현)
✅ Legal basis emphasized (법적 근거 강조)
추가 금지 표현:
- '세금을 덜 냅니다' (보장으로 해석 가능)
더 안전한 표현:
- '절세' → '세법에 따른 정당한 공제'
- '세금을 줄입니다' → '정확한 기장으로 공제를 받을 수 있습니다'
- '경비를 깎아줍니다' → '경비를 빠짐없이 처리합니다'
안전 표현 테이블 업데이트:
✅ 법적 근거 중심의 표현
✅ 객관적 프로세스 설명
✅ 보장 아닌 가능성만 표현
한국세무사협회 광고 규칙 준수 (법적 컴플라이언스)
금지 표현:
❌ 절세 약속: '최대한 깎아줍니다', '반드시 줄입니다'
❌ 보장: '세무조사 안 받게', '100% 절세 보장'
❌ 무료/가격: '무료', '최저가'
❌ 절대/최상급: '반드시', '무조건', '최고', '1등'
❌ 과도한 단순화: '매우 쉽습니다', '아무도 실수 못함'
❌ 객관적 증거 없는 수치: '평균 170만 원', '80% 만족'
안전 표현:
✅ '이 사례에서는 약 X만 원 절약되었습니다' (과거 사례)
✅ '세금을 줄일 수 있습니다' (가능성)
✅ '필요할 때 도움받으면 효율적' (선택지)
✅ '기초는 배울 수 있습니다' (임파워먼트)
체크리스트 추가:
- 절세 약속, 보장 표현 제거
- 무료/가격 표현 제거
- 절대/최상급 표현 제거
- 과도한 단순화 제거
- 수치는 사례(과거형)로 표현
- 객관성 유지
다음: V020 샘플 포스트를 광고 규칙에 맞게 수정
Complete 3-layer persuasion architecture:
Layer 1: BASICS (anyone can learn)
'기초는 배울 수 있어요'
Layer 2: DETAILS + TAX LAW CHANGES (unrealistic to track)
'하지만:
- 디테일이 지옥 (하나 놓쳤다가 50만원)
- 세법은 계속 바뀜 (매년 업데이트)
- 변화를 추적 불가능 (본업이 있으니까)'
Layer 3: PROFESSIONAL VALUE (experts only)
'그래서 세무사가 필요:
- 디테일 자동 관리
- 세법 변화 자동 적용
- 새 제도 놓치지 않음
- 당신은 사업에만 집중'
New Section 3.6: Tax law updates by year
- Current year changes
- How it affects readers
- What tax accountants automatically handle
- Comparison table
Key insight:
✅ Tax code is NOT static
✅ Clients cannot track yearly changes
✅ Tax accountants automatically apply latest rules
✅ 'One tax accountant = never study tax law again'
This makes the value proposition irresistible:
기초는 배울 수 있지만, 계속 바뀌는 세법을 따라가려면
세무사가 필수다.
Core insight: The real value of tax professionals is managing the details
New section (Step 3.5): Shows readers the hidden complexity
- Surface level: 'Organize receipts' → Simple
- Reality: Tax law, personal vs business expenses, re-filings, IRS response
- Tax accountant handles: Classification, justification, IRS communication
Examples added:
1. Receipt management complexity
2. Income/expense recording details
3. Tax optimization and audit preparation
This builds empathy for why professionals are needed:
✅ Basic concept: Anyone can learn
✅ Implementation details: Tax professionals excel
✅ Risk management: What happens when details are wrong
Key message for readers:
'처음엔 간단해 보이지만, 디테일이 지옥이다.
그 디테일을 세무사가 관리한다.
디테일 하나 놓쳤다가 가산세 50만원.
그래서 세무사가 필요하다.'
Core insight: Blog's real purpose is to make readers understand WHY professionals matter
4-step progression:
1. Teach basic concepts (readers understand)
2. Show complexity (readers realize it's hard)
3. Reveal professional value (readers get why expert needed)
4. Make it emotionally resonate (time saved + money saved + stress gone)
Key message for blog writers:
✅ 'Basic concepts anyone can learn'
✅ 'But complexity grows → professionals save time/money/stress'
✅ 'Tax accountant cost < tax savings + time savings + stress reduction'
Example calculation:
- Tax savings: +200만원
- Professional cost: -100만원
- Time value: 월 9시간 자유
- Stress: 무조건 감소
- Net benefit: +100만원 + 심리적 안정
Goal: Readers conclude: '돈을 쓰는 이유가 있네. 세무사를 고용하자.'
- Reduce CLAUDE.md blog section to essential guidelines only (10 lines)
- Move detailed templates and checklists to new BLOG_TEMPLATE.md
- Update core philosophy: education + natural professional referral
- Not 'hire me' but 'understand concepts → know when to consult'
BLOG_TEMPLATE.md includes:
✅ Complete 5-step blog post template
✅ Real persona examples (name, age, job, income)
✅ Before/After case structure
✅ Step-by-step calculation with tables
✅ Tone guidance (empowerment + professional value)
✅ Checklist for writers
✅ Do's & Don'ts
✅ Seasonal content ideas
Philosophy:
- Basic tax knowledge: anyone can do it
- Complex cases: professionals add efficiency
- Goal: grow customer understanding + increase professional service value
- Add EasyMDE 2.18.0 CDN to App.razor
- Add Marked.js for markdown preview rendering
- Replace MudTextField with EasyMDE editor in BlogCreate.razor
- Replace MudTextField with EasyMDE editor in BlogEdit.razor
- Add JavaScript interop for editor initialization and content sync
- Support markdown syntax highlighting and formatting toolbar
Features:
✅ Bold, italic, strikethrough
✅ Headings (H1-H6)
✅ Code blocks and inline code
✅ Lists (ordered/unordered)
✅ Links and images
✅ Tables
✅ Quotes
✅ Horizontal rules
✅ Real-time preview (side-by-side mode)
✅ Full-screen editing
✅ Markdown guide
The editor syncs content with Blazor form on save.
Markdown syntax is preserved in database and rendered as HTML on blog pages.
- Add Markdig NuGet package (0.38.0)
- Convert blog content from markdown to HTML in Post.cshtml.cs
- Display rendered HTML content instead of raw text
- Add comprehensive markdown styling (h1-h6, lists, tables, code, etc.)
- Use TaxBaik color scheme for markdown elements
Blog posts now render properly:
✅ Headings (#, ##, ###)
✅ Bold/italic text (**text**, *text*)
✅ Lists (-, *, ordered)
✅ Tables
✅ Code blocks
✅ Blockquotes
✅ Links
Styling follows TaxBaik brand:
- Primary color for headings
- Warm typography (Noto Sans KR)
- Consistent spacing and borders
- Mobile-responsive design
V018 had PostgreSQL quote escaping issues with long content strings.
V019 uses 1256 quoting to avoid escaping problems and cleanly inserts
all 12 blog posts (5 updates + 7 new) with middle-school level language.
Deletes V018, commits V019 as replacement.
- Add breadcrumb navigation to About and Services pages
- Add back-to-home buttons on all secondary pages
- Enhance footer with full site menu (Home, About, Services, Blog, Contact)
- Add related-pages section at bottom of Services page
- Improve visual hierarchy and page interconnection
Makes it easy for users to navigate between all major sections and always
know how to return to home or explore related pages.
Add breadcrumb navigation and back-to-home button to make About page
navigation clear and user-friendly. Also add related-pages section at
bottom linking to Home, Services, and Blog.
Addresses: users getting lost on About page with no clear way back.