11# Architecture Decision Records
22
3- Last updated: 2026-07-18
3+ Last updated: 2026-07-19
44
55이 디렉터리는 커밋 히스토리에서 복원한 아키텍처 의사결정을 기록한다.
66ADR은 AI 협업 가이드와 별개의 문서다. 사람이 결정했든 AI가 초안을
@@ -16,35 +16,42 @@ ADR은 AI 협업 가이드와 별개의 문서다. 사람이 결정했든 AI가
1616
1717## 기록
1818
19- | ID | 상태 | 결정 |
20- | ----------------------------------------------------------------- | ---------- | ------------------------------------------------------------ |
21- | [ 0001] ( 0001-use-nextjs-app-router.md ) | Accepted | 블로그 런타임으로 Next.js App Router를 사용한다 |
22- | [ 0002] ( 0002-keep-custom-mdx-webpack-pipeline.md ) | Accepted | 커스텀 MDX webpack 파이프라인을 유지한다 |
23- | [ 0003] ( 0003-store-posts-as-folder-mdx-and-meta.md ) | Accepted | 글을 중첩 가능한 ` index.mdx ` 와 ` meta.json ` 폴더로 저장한다 |
24- | [ 0004] ( 0004-preserve-feature-first-source-structure.md ) | Superseded | feature-first 소스 구조를 유지한다 |
25- | [ 0005] ( 0005-use-token-first-tailwind-styling.md ) | Accepted | token-first Tailwind 스타일링을 사용한다 |
26- | [ 0006] ( 0006-isolate-visualization-heavy-components.md ) | Accepted | 시각화 중심 컴포넌트를 격리한다 |
27- | [ 0007] ( 0007-use-umami-and-supabase-view-counts.md ) | Accepted | Umami 분석과 Supabase 조회수를 함께 사용한다 |
28- | [ 0008] ( 0008-enforce-publication-policy-in-content-ingestion.md ) | Accepted | 콘텐츠 수집 경로에서 공개 정책을 강제한다 |
29- | [ 0009] ( 0009-use-app-shell-for-primary-navigation.md ) | Accepted | 주요 탐색과 레이아웃에 AppShell을 사용한다 |
30- | [ 0010] ( 0010-use-targeted-documentation-harness.md ) | Accepted | 핵심 문서 검증에 targeted documentation harness를 사용한다 |
31- | [ 0011] ( 0011-adopt-frontend-modular-monolith.md ) | Accepted | Domain-first Modular Monolith를 사용한다 |
32- | [ 0012] ( 0012-use-root-app-route-adapter.md ) | Accepted | Next.js route adapter를 루트 ` app/ ` 에 둔다 |
33- | [ 0013] ( 0013-clarify-support-boundaries-and-docs.md ) | Accepted | 지원 모듈, 유지 문서, 공개 route 경계를 명확히 한다 |
34- | [ 0014] ( 0014-use-ark-as-public-site-identity.md ) | Accepted | 공개 사이트 정체성으로 아크를 사용한다 |
35- | [ 0015] ( 0015-skip-view-count-query-during-build.md ) | Superseded | 빌드 중 조회수 집계 쿼리를 건너뛴다 |
36- | [ 0016] ( 0016-use-content-type-and-growth-review-scores.md ) | Accepted | 글 형식과 성장 리뷰 점수를 분리한다 |
37- | [ 0017] ( 0017-allow-private-post-preview-in-development.md ) | Accepted | 개발 환경에서 private 글 상세 미리보기를 허용한다 |
38- | [ 0018] ( 0018-use-semantic-surface-tokens-for-content-discovery.md ) | Accepted | 콘텐츠 탐색 표면에 의미 기반 반경과 무그림자 상태를 사용한다 |
39- | [ 0019] ( 0019-use-content-first-typography-scale.md ) | Accepted | 콘텐츠 읽기 흐름에 16px 기준과 17px 본문을 사용한다 |
40- | [ 0020] ( 0020-use-runtime-daily-views-for-popular-feed.md ) | Superseded | 인기 피드를 런타임 일별 조회수로 계산한다 |
41- | [ 0021] ( 0021-load-heavy-mdx-visualizations-on-demand.md ) | Accepted | 무거운 MDX 시각화를 글 단위로 로드한다 |
42- | [ 0022] ( 0022-default-new-posts-to-private.md ) | Accepted | 새 글을 명시적으로 검토한 뒤 공개한다 |
43- | [ 0023] ( 0023-run-the-release-quality-gate-in-ci.md ) | Accepted | 배포 품질 gate를 CI에서 실행한다 |
44- | [ 0024] ( 0024-use-latest-only-home-feed.md ) | Accepted | 홈 피드를 최신순 단일 경로로 유지한다 |
45- | [ 0025] ( 0025-use-node-runtime-for-og-image-route.md ) | Accepted | OG 이미지 route에 Node.js runtime을 사용한다 |
46- | [ 0026] ( 0026-use-repo-local-title-review-skill.md ) | Accepted | 제목 선택은 repo-local skill로 보조한다 |
47- | [ 0027] ( 0027-use-resume-specific-editorial-grid.md ) | Accepted | 이력서에는 콘텐츠 밀도에 맞춘 에디토리얼 그리드를 사용한다 |
19+ | ID | 상태 | 결정 |
20+ | ------------------------------------------------------------------------------------ | ---------- | ------------------------------------------------------------ |
21+ | [ 0001] ( 0001-use-nextjs-app-router.md ) | Accepted | 블로그 런타임으로 Next.js App Router를 사용한다 |
22+ | [ 0002] ( 0002-keep-custom-mdx-webpack-pipeline.md ) | Accepted | 커스텀 MDX webpack 파이프라인을 유지한다 |
23+ | [ 0003] ( 0003-store-posts-as-folder-mdx-and-meta.md ) | Accepted | 글을 중첩 가능한 ` index.mdx ` 와 ` meta.json ` 폴더로 저장한다 |
24+ | [ 0004] ( 0004-preserve-feature-first-source-structure.md ) | Superseded | feature-first 소스 구조를 유지한다 |
25+ | [ 0005] ( 0005-use-token-first-tailwind-styling.md ) | Accepted | token-first Tailwind 스타일링을 사용한다 |
26+ | [ 0006] ( 0006-isolate-visualization-heavy-components.md ) | Accepted | 시각화 중심 컴포넌트를 격리한다 |
27+ | [ 0007] ( 0007-use-umami-and-supabase-view-counts.md ) | Accepted | Umami 분석과 Supabase 조회수를 함께 사용한다 |
28+ | [ 0008] ( 0008-enforce-publication-policy-in-content-ingestion.md ) | Accepted | 콘텐츠 수집 경로에서 공개 정책을 강제한다 |
29+ | [ 0009] ( 0009-use-app-shell-for-primary-navigation.md ) | Accepted | 주요 탐색과 레이아웃에 AppShell을 사용한다 |
30+ | [ 0010] ( 0010-use-targeted-documentation-harness.md ) | Accepted | 핵심 문서 검증에 targeted documentation harness를 사용한다 |
31+ | [ 0011] ( 0011-adopt-frontend-modular-monolith.md ) | Accepted | Domain-first Modular Monolith를 사용한다 |
32+ | [ 0012] ( 0012-use-root-app-route-adapter.md ) | Accepted | Next.js route adapter를 루트 ` app/ ` 에 둔다 |
33+ | [ 0013] ( 0013-clarify-support-boundaries-and-docs.md ) | Accepted | 지원 모듈, 유지 문서, 공개 route 경계를 명확히 한다 |
34+ | [ 0014] ( 0014-use-ark-as-public-site-identity.md ) | Accepted | 공개 사이트 정체성으로 아크를 사용한다 |
35+ | [ 0015] ( 0015-skip-view-count-query-during-build.md ) | Superseded | 빌드 중 조회수 집계 쿼리를 건너뛴다 |
36+ | [ 0016] ( 0016-use-content-type-and-growth-review-scores.md ) | Accepted | 글 형식과 성장 리뷰 점수를 분리한다 |
37+ | [ 0017] ( 0017-allow-private-post-preview-in-development.md ) | Accepted | 개발 환경에서 private 글 상세 미리보기를 허용한다 |
38+ | [ 0018] ( 0018-use-semantic-surface-tokens-for-content-discovery.md ) | Accepted | 콘텐츠 탐색 표면에 의미 기반 반경과 무그림자 상태를 사용한다 |
39+ | [ 0019] ( 0019-use-content-first-typography-scale.md ) | Accepted | 콘텐츠 읽기 흐름에 16px 기준과 17px 본문을 사용한다 |
40+ | [ 0020] ( 0020-use-runtime-daily-views-for-popular-feed.md ) | Superseded | 인기 피드를 런타임 일별 조회수로 계산한다 |
41+ | [ 0021] ( 0021-load-heavy-mdx-visualizations-on-demand.md ) | Superseded | 무거운 MDX 시각화를 글 단위로 로드한다 |
42+ | [ 0022] ( 0022-default-new-posts-to-private.md ) | Accepted | 새 글을 명시적으로 검토한 뒤 공개한다 |
43+ | [ 0023] ( 0023-run-the-release-quality-gate-in-ci.md ) | Accepted | 배포 품질 gate를 CI에서 실행한다 |
44+ | [ 0024] ( 0024-use-latest-only-home-feed.md ) | Accepted | 홈 피드를 최신순 단일 경로로 유지한다 |
45+ | [ 0025] ( 0025-use-node-runtime-for-og-image-route.md ) | Accepted | OG 이미지 route에 Node.js runtime을 사용한다 |
46+ | [ 0026] ( 0026-use-repo-local-title-review-skill.md ) | Accepted | 제목 선택은 repo-local skill로 보조한다 |
47+ | [ 0027] ( 0027-use-resume-specific-editorial-grid.md ) | Accepted | 이력서에는 콘텐츠 밀도에 맞춘 에디토리얼 그리드를 사용한다 |
48+ | [ 0028] ( 0028-retire-private-webgl-visualizations-and-adopt-selective-interactions.md ) | Accepted | 비공개 WebGL 시각화를 제거하고 선택적 상호작용만 도입한다 |
49+ | [ 0029] ( 0029-use-link-like-controls-for-home-category-filtering.md ) | Accepted | 홈 카테고리 필터를 링크형 상태 컨트롤로 표현한다 |
50+ | [ 0030] ( 0030-use-date-title-rows-for-home-archive.md ) | Accepted | 홈 아카이브를 날짜와 제목만의 행 목록으로 표현한다 |
51+ | [ 0031] ( 0031-adopt-a-single-paper-theme-and-retire-command-palette.md ) | Accepted | 단일 Paper 테마를 채택하고 명령 팔레트를 제거한다 |
52+ | [ 0032] ( 0032-reduce-desktop-rail-to-home-wordmark-and-utilities.md ) | Accepted | 데스크톱 레일을 홈 워드마크와 보조 링크로 축소한다 |
53+ | [ 0033] ( 0033-use-a-white-canvas-without-content-cards.md ) | Accepted | 콘텐츠 카드 없이 흰 캔버스를 사용한다 |
54+ | [ 0034] ( 0034-adopt-the-graphite-ink-palette.md ) | Accepted | Graphite Ink 팔레트를 채택한다 |
4855
4956## 작성 조건
5057
0 commit comments