⏺ 2025-11-18 작업 내역 ## 1. WordPress 블로그 카테고리 매핑 수정 - **문제**: 테크블로그 탭에 아무것도 표시되지 않고, AI 뉴스 탭에 콘텐츠가 표시됨 - **원인**: 하드코딩된 categoryId(1, 2)가 WordPress의 실제 ID(3, 4)와 불일치 - **해결**: class_list 기반으로 카테고리 매핑 로직 변경 - category-tech-blog → テックブログ - category-latest-ai-news → 最新AIニュース ## 2. ISR에서 On-Demand Revalidation으로 마이그레이션 - **문제**: ISR의 60초 재검증이 WordPress 서버(onamaeweb.jp)의 IP 차단 유발 → 빌드 실패 (403 Forbidden) - **해결**: - /api/revalidate 엔드포인트 생성 - WordPress에서 WP Webhooks 플러그인으로 콘텐츠 변경 시 revalidation 트리거 - NEXTJS-SETUP.md에 상세 설정 가이드 추가 ## 3. Next.js 15 캐싱 이슈 수정 - **문제**: force-cache가 작동하지 않음 (Next.js 15에서 기본값이 no-store로 변경) - **해결**: unstable_cache를 사용하여 데이터 페칭 함수 래핑 ```typescript export const getAllPosts = unstable_cache( fetchAllPosts, ['all-posts'], { tags: ['posts'] } ); ``` ## 4. Vercel 일본 리전 설정 - **문제**: 외국 IP에서 오는 접속을 WordPress 서버가 차단 - **해결**: vercel.json 생성하여 도쿄 리전(hnd1) 설정 ```json { "regions": ["hnd1"] } ``` ## 5. /blogs 페이지 Static Generation 최적화 - **문제**: searchParams 사용으로 인해 페이지가 Dynamic으로 렌더링됨 - **해결**: 탭을 별도 페이지로 분리 - /blogs → 테크블로그 (Static) - /blogs/ai → AI 뉴스 (Static) - 홈페이지(/)와 blogs-section.tsx에서 searchParams 제거 - /api/revalidate에 /blogs/ai 경로 추가 ## 6. UI 텍스트 수정 - "Planit" → "Plan it" 변경 - 「Dream it, Plan it, Make it」 (회사 이념) - "Plan it" (섹션 제목) ## 7. Favicon 변경 - 문자 없는 아이콘으로 변경 - /public/favicon.svg 추가 - app/layout.tsx metadata에서 SVG favicon 설정 --- ## 변경된 파일 - lib/api.ts - 카테고리 매핑, unstable_cache 적용 - app/api/revalidate/route.ts - On-Demand Revalidation API - app/page.tsx - searchParams 제거 - app/blogs/page.tsx - 테크블로그 전용 페이지 - app/blogs/ai/page.tsx - AI 뉴스 전용 페이지 (신규) - components/pages/top-page/blogs-section.tsx - searchParams 제거 - components/pages/company/greetings-section.tsx - Planit → Plan it - app/layout.tsx - favicon 설정 - vercel.json - 일본 리전 설정 (신규) - NEXTJS-SETUP.md - On-Demand Revalidation 가이드 추가