Skip to content

Commit 5448c58

Browse files
kickbelldevclaude
andauthored
feat: 통합 blog entity 구조 및 SSG 최적화 (#10)
* feat: posts 엔티티 파일 시스템 캐싱 최적화 - getPostBySlug 함수를 캐시된 allPosts에서 조회하도록 변경 - findPostPathBySlug 함수 제거하여 중복 파일 스캔 방지 - getAllMdxFiles, getPostByFilePath 함수 추가로 재귀적 MDX 파일 처리 개선 - SSG 빌드 시 파일을 한 번만 읽도록 최적화 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: tags 엔티티 그래프 및 클러스터 캐싱 최적화 - 태그 그래프를 모듈 레벨에서 캐시하여 중복 생성 방지 - 태그 클러스터 계산 결과 캐싱으로 성능 개선 - findRelatedPostsByTagsOptimized 함수 추가로 캐시된 클러스터 활용 - getTagGraph, getTagRelationships, getTagClusters 함수 동기화로 성능 향상 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: posts 엔티티 카테고리 지원 및 테스트 개선 - parsePostData 함수에 카테고리 추론 로직 추가 - extractCategoryFromPath 함수로 파일 경로에서 카테고리 자동 추출 - CategoryId 타입 추가로 타입 안정성 향상 - parsePostData, extractCategoryFromPath 관련 테스트 케이스 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * docs: 프로젝트 구조 및 아키텍처 문서 업데이트 - 프로젝트 구조에 graphology 라이브러리 추가 - 디렉토리 구조를 카테고리 기반 라우팅으로 업데이트 - 새로운 엔티티(categories) 및 컴포넌트 구조 반영 - MDX 컴포넌트 및 테스트 디렉토리 추가 - GEMINI.md 문서 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: categories 엔티티 구현 - 카테고리 도메인 로직 및 타입 정의 - getAllCategories, getCategoryById 등 핵심 함수 구현 - 카테고리별 포스트 필터링 및 통계 기능 추가 - 카테고리 유효성 검증 로직 포함 - 테스트 케이스 작성으로 안정성 확보 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: 카테고리 기반 콘텐츠 구조로 마이그레이션 - contents/ 루트에 카테고리별 디렉토리 구조 생성 - src/contents/에서 카테고리별로 포스트 재조직 - dev, life 카테고리용 category.json 설정 파일 추가 - 기존 테스트 포스트들을 적절한 카테고리로 이동 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: 카테고리 기반 네비게이션 시스템 구현 - NavLink 컴포넌트 추가로 재사용 가능한 네비게이션 링크 구현 - Header 컴포넌트를 카테고리 기반 네비게이션으로 업데이트 - 동적 카테고리 메뉴 생성으로 확장 가능한 구조 제공 - 카테고리별 포스트 개수 표시 지원 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: 카테고리 기반 페이지 및 컴포넌트 시스템 구현 - [category]/[slug] 동적 라우팅으로 카테고리별 포스트 상세 페이지 구현 - [category] 페이지로 카테고리별 포스트 목록 제공 - 기존 posts 컴포넌트들을 카테고리 기반으로 마이그레이션 - PostContent, PostHeader, PostNavigation 등 재사용 가능한 컴포넌트 - CategoryBadge, CategoryList 등 카테고리 전용 컴포넌트 추가 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: 카테고리 유효성 검증 로직 제거 - extractCategoryFromPath에서 하드코딩된 카테고리 제한 제거 - 모든 서브디렉토리를 유효한 카테고리로 인식하도록 변경 - 파일 경로 구조 검증 로직 개선 (contents/category/file.mdx 구조 필수) - 관련 테스트 케이스 업데이트 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * content: 컨텐츠 파일명 정리 및 카테고리별 분류 - 한글 파일명을 영문으로 변경하여 URL 호환성 개선 - 컨텐츠를 dev/life 카테고리별로 적절히 분류 - 파일 위치 최적화로 라우팅 구조와 일치시킴 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: 기존 분리된 entity 구조 제거 - posts, categories, tags 개별 entity 삭제 - 복잡한 상호 의존성 문제 해결을 위한 구조 정리 - 통합된 blog entity로 리팩토링 준비 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: 통합 blog entity 구조 구현 - 단일 책임 원칙을 따르는 통합 blog entity 생성 - 모듈 레벨 캐싱으로 SSG 최적화 (빌드 타임에 한 번만 파일 읽기) - logic/ 하위 디렉토리로 관심사별 분리 (posts, categories, tags) - 통합된 types.ts로 타입 일관성 보장 - 공개 API를 index.ts로 일원화 주요 개선사항: - getAllPosts, getAllCategories 등 모든 데이터 모듈 레벨 캐싱 - 태그 그래프 및 클러스터 사전 계산 - 상호 의존성 문제 해결 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: 모든 컴포넌트를 통합 blog entity 사용하도록 업데이트 - @/entities/posts, @/entities/categories, @/entities/tags → @/entities/blog로 모든 임포트 경로 변경 - 타입 정의 통합으로 일관성 개선 - Category 타입에 color, icon 속성 추가 (CategoryBadge 호환성) - 사용하지 않는 임포트 제거 및 최적화 - 모든 컴포넌트의 TypeScript 에러 해결 변경된 컴포넌트: - Header, CategoryBadge, CategoryList, CategoryPage - PostContent, PostFooter, PostHeader, PostNavigation - RelatedPosts, RelatedPostItem 등 모든 포스트 관련 컴포넌트 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * config: lefthook 설정 업데이트 - Git 훅 설정 최적화 - 코드 품질 검사 단계 개선 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]>
1 parent d15fac2 commit 5448c58

39 files changed

+1246
-1713
lines changed

.kiro/steering/project-structure.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ Next.js 15 기반의 정적 블로그 애플리케이션으로, MDX를 사용한
1313
- **코드 품질**: Biome (formatting/linting)
1414
- **테스팅**: Vitest
1515
- **패키지 매니저**: pnpm
16+
- **그래프**: graphology
1617

1718
## 디렉토리 구조
1819

CLAUDE.md

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@ Next.js 15 기반의 정적 블로그 애플리케이션으로, MDX를 사용한
2222
```
2323
src/
2424
├── app/ # Next.js App Router 루트
25-
│ ├── _components/ # 전역 컴포넌트
26-
│ ├── _fonts/ # 폰트 설정
27-
│ ├── _lib/ # 유틸리티 함수
28-
│ ├── posts/[slug]/ # 동적 포스트 페이지
29-
│ ├── about/ # About 페이지
30-
│ ├── layout.tsx # 루트 레이아웃
31-
│ └── globals.css # 전역 스타일
32-
├── entities/ # 도메인 엔티티
33-
│ ├── posts/ # 포스트 도메인 로직
34-
│ └── tags/ # 태그 도메인 로직
35-
└── contents/ # MDX 블로그 포스트
25+
│ ├── [category]/ # 카테고리별 포스트 목록 페이지
26+
│ │ ├── [slug]/ # 개별 포스트 상세 페이지
27+
│ │ │ └── page.tsx
28+
│ │ ├── _components/ # 카테고리/포스트 관련 컴포넌트
29+
│ │ └── page.tsx
30+
│ ├── _components/ # 전역 공통 컴포넌트
31+
│ ├── _fonts/ # 폰트 설정
32+
│ ├── _lib/ # 공통 유틸리티 함수
33+
│ ├── about/ # About 페이지
34+
│ ├── layout.tsx # 루트 레이아웃
35+
│ └── page.tsx # 메인 페이지
36+
├── contents/ # MDX 블로그 포스트 원본 파일
37+
├── entities/ # 도메인 엔티티 (비즈니스 로직)
38+
│ ├── categories/ # 카테고리 도메인 로직
39+
│ ├── posts/ # 포스트 도메인 로직
40+
│ └── tags/ # 태그 도메인 로직
41+
├── mdx-components.tsx # MDX 렌더링 시 사용할 커스텀 컴포넌트
42+
└── test/ # 테스트 관련 설정
3643
```
3744

3845
## 네이밍 컨벤션

0 commit comments

Comments
 (0)