Skip to content

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 04:01
· 5 commits to main since this release
fa6bf8d

v1.3.0 전면 재작성과 그 위의 기술 SEO 개선, 문서 정비다.

Added

  • 개발 가이드를 CONTRIBUTING.md로 분리했다. 환경 설정과 명령어, 코드 규약, Git 워크플로우, 콘텐츠 작성법을 담았다.
  • 도구에 매이지 않는 규칙 본문을 .agents/에 두고 .claude/에서 링크로 읽는 구조를 도입했다.
  • AGENTS.md를 만들고 CLAUDE.md를 그리로 가는 링크로 바꿨다.
  • v1.3.0 재작성을 이끌 하네스를 세웠다. 에이전트 넷과 스킬 셋으로, 재작성에서 조용히 깨지는 자리(레이어 경계와 대화상자 접근성)를 만드는 사람과 보는 사람으로 갈랐다.
  • 루트 metadata에 검색 엔진 소유 확인 meta(환경 변수)와 theme-color viewport, googleBot max-image-preview:large를 더했다.
  • 브라우저에서만 드러나는 회귀를 막는 e2e 스펙을 갖췄다. 대화상자 접근성과 인쇄, 축소 모션, 정적 목록을 검사한다.
  • 테스트 전략을 .agents/rules/testing.md에 규칙으로 못 박았다. 테스팅 트로피를 확정 전략으로 두고 층마다 소유하는 것과 지우는 기준을 적었다.
  • 512px 안드로이드 아이콘을 만들어 manifest에 등록했다(설치 화면 조건 충족, maskable 포함). OG 카드와 뱃지에 심볼 마크를 넣었다.
  • 프로덕션 배포가 최근 7일 안에 발행하거나 고친 글을 IndexNow(네이버와 빙)에 알린다. 실패해도 배포는 막지 않고 로그에 남긴다.
  • 모든 응답에 보안 헤더 넷(nosniff, Referrer-Policy, X-Frame-Options, Permissions-Policy)을 건다.

Changed

  • 저장소를 FSD 6레이어로 전면 재작성했다. UI 프리미티브를 직접 구현해 shadcn/ui와 Radix 의존을 걷어냈고, 디자인 토큰 위에서 스타일을 다시 짰다.
  • 조회수 저장을 Vercel KV에서 Upstash Redis로 옮겼다. UPSTASH_ 접두사 환경 변수를 읽는다.
  • 문서를 성격별로 나눴다. 만드는 것은 docs/product/, 보이는 것은 docs/design/, 굴리는 것은 docs/operations/, 생성 도구에 넣는 것은 docs/prompts/에 둔다.
  • Node.js를 24로, pnpm을 11로 올렸다.
  • 커밋 메시지 템플릿에서 이모지를 뺐다.
  • 모든 페이지가 og:site_name과 og:locale, RSS 대체 링크를 낸다. Next.js의 얕은 metadata 병합으로 루트 값이 사라지던 것을 buildMetadata가 직접 내도록 바꿨다.
  • 사이트맵에서 changefreq와 priority를 빼고 lastmod를 글 날짜에서 계산한다. 글이 한 편뿐인 태그는 사이트맵에서 빠지고 페이지는 noindex가 된다.
  • RSS 저자 표기를 dc:creator로 바꿔 이메일을 내보내지 않는다.
  • /posts 목록 전체가 초기 HTML에 실린다. useSearchParams가 목록을 클라이언트 렌더로 밀어내던 것을 URL 구독으로 바꿨다.
  • 웹폰트를 2MB 단일 파일 preload에서 유니코드 범위 동적 서브셋으로 바꿨다. 홈 기준 폰트 전송량이 392KB로 준다.
  • BlogPosting JSON-LD에 저자 URL과 dateModified, inLanguage를 더하고 About의 Person과 같은 @id로 이었다.

Removed

  • 에이전트 15개와 스킬 15종, 규칙 17개로 구성했던 기존 하네스를 걷어냈다.
  • Playwright 설정과 e2e 스펙 5종을 지웠다.

Fixed

  • contents 서브모듈이 ESLint와 Prettier 검사 대상에 들어가 커밋이 막히던 문제를 고쳤다.
  • lefthook이 없는 경로(scripts/commit-msg.js)를 부르던 것을 고쳤다.
  • 테스트 스위트를 케이스 단위로 전수 판정해 단위와 컴포넌트를 323개에서 183개로, e2e 실행을 33개에서 17개로 줄였다. 커버리지는 0.35퍼센트포인트만 빠졌다.
  • 세 동적 라우트를 dynamicParams = false로 닫아 알 수 없는 slug가 런타임에 contents/를 읽던 경로와 404 응답의 1년 CDN 캐시를 없앴다.
  • 404 페이지가 홈의 canonical과 OG 카드를 달고 나가던 것을 닫았다.
  • 태그 링크 href의 공백이 sitemap의 퍼센트 인코딩과 어긋나던 것을 통일했다.