diff --git a/src/app/(site)/categories/page.tsx b/src/app/(site)/categories/page.tsx
index c7bd42b..ac3880c 100644
--- a/src/app/(site)/categories/page.tsx
+++ b/src/app/(site)/categories/page.tsx
@@ -1,5 +1,5 @@
+import { CategoryGrid } from "@/components/category-grid"
import { MainBreadcrumbs } from "@/components/layout"
-import { TaxonomyList } from "@/components/taxonomy-list"
import { Lead, PageTitle } from "@/components/typography"
import { getCategoryIndex } from "@/lib/posts"
import { createPageMetadata } from "@/lib/seo"
@@ -24,7 +24,7 @@ export default function CategoriesPage() {
넓은 주제별로 공개 글을 묶었습니다. 숫자는 발행된 Markdown 글만 기준으로 합니다.
-
+
>
diff --git a/src/components/category-grid.tsx b/src/components/category-grid.tsx
new file mode 100644
index 0000000..dd9f157
--- /dev/null
+++ b/src/components/category-grid.tsx
@@ -0,0 +1,44 @@
+import Link from "next/link"
+import { Icons } from "@/components/icons"
+import type { TaxonomyItem } from "@/lib/post-collections"
+
+type CategoryGridProps = Readonly<{
+ categories: readonly TaxonomyItem[]
+ ariaLabel: string
+}>
+
+// 카테고리는 글마다 하나만 붙는 배타적 분류라 태그보다 수가 적고 무게감이 있어야 한다.
+// 그래서 태그와 같은 칩 목록 대신, 섹션 허브처럼 보이는 카드 그리드를 쓴다.
+export function CategoryGrid({ categories, ariaLabel }: CategoryGridProps) {
+ return (
+