Skip to content

release: 공유 카드 OG 자산 적용과 의존성 최신화 - #56

Merged
chan9yu merged 14 commits into
mainfrom
develop
Aug 30, 2026
Merged

release: 공유 카드 OG 자산 적용과 의존성 최신화#56
chan9yu merged 14 commits into
mainfrom
develop

Conversation

@chan9yu

@chan9yu chan9yu commented Aug 30, 2026

Copy link
Copy Markdown
Owner

무엇을

디자인 핸드오프의 브랜드 자산을 코드에 반영하고, 공유 카드의 브랜드 표기 중복을 걷어냅니다. 그 과정에서 찾은 회귀 하나를 고치고 의존성을 올립니다.

버전은 1.3.1 그대로입니다. 상향하지 않았습니다.

공유 카드에 브랜드 표기가 여섯 번 반복되고 있었습니다. 카카오톡과 링크드인이 이미지 아래에 제목과 도메인을 자기가 다시 그리는데, 이미지 안에도 같은 것이 들어 있었기 때문입니다. 위쪽 chan9yu.dev와 아래쪽 chan9yu.dev는 글자까지 같았습니다.

배경도 CSS 그라데이션으로 그리고 있어 디자인이 준 og-backgrounddefault-og-image가 놀고 있었습니다. badge-placeholder 둘도 마찬가지였습니다.

커밋 열둘

커밋 내용
chore Node 24.20.0
chore tsconfig include 순서와 exclude 정리
fix --leading-prose 1.8 → 1.85 회귀 수정
feat OG 크기를 OG_IMAGE_SIZE 하나로
feat OG 배경과 기본 이미지 자산 추가
feat 카드에서 브랜드 표기 중복 제거
feat 뱃지 placeholder 적용
chore 의존성 열 개 최신화, ^ prefix 통일
chore coverage를 lint 대상에서 제외
docs OG 자산과 카드 구성 규약
docs 버전 번호를 사용자가 정한다는 규칙

짚을 것

줄 높이 회귀. 2026-08-23 커밋에는 정본대로 1.85가 들어갔는데 이틀 뒤 "토큰을 정리한다" 커밋에서 1.8로 바뀌어 있었습니다. 그 커밋 메시지에 줄 높이를 바꾼다는 말이 없습니다. 글 본문 전체의 줄 간격입니다.

메이저 둘은 올리지 않았습니다. TypeScript 7은 typescript-eslint가 명시적으로 거부하고(does not support TS 7.0), ESLint 10은 eslint-config-next가 끌고 오는 eslint-plugin-react가 크래시합니다. 실제로 설치해 돌려보고 각각 6.x, 9.x 최신으로 되돌렸습니다.

자산 크기가 줄었습니다. 기본 이미지 129KB → 38.6KB, OG 배경 106KB → 17.4KB입니다. 배경은 Satori가 base64로 메모리에 상주시키는 양이라 142,232자에서 23,200자로 줄었습니다.

검증

type:check · lint · lint:arch · format:check · test(186) · build:strict(127p) · test:e2e(17)

CI는 PR #54와 #55에서 모두 통과했습니다. 공유 카드는 브라우저에서 렌더를 확인했고, 사이드바와 목차 애니메이션은 hover를 실제로 걸어 픽셀로 쟀습니다.

머지 방식

squash를 쓰지 말아 주세요. merge commit이나 rebase로 부탁드립니다. squash로 압축하면 maindevelop의 조상 관계를 잃어 다음 PR마다 충돌이 반복됩니다.

chan9yu and others added 14 commits August 30, 2026 20:54
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
토큰을 tokens.css로 모으던 2026-08-25 작업에서 --leading-prose가
1.85에서 1.8로 바뀌었다. 커밋 메시지에 근거가 없고 디자인 정본은
1.85다. 글 본문 전체의 줄 간격이 걸리는 값이라 되돌린다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1200x630이 og 라우트와 buildMetadata, 루트 layout 세 곳에 각각
박혀 있었다. OG_IMAGE_SIZE 하나를 보게 바꾼다.

buildMetadata의 image가 문자열 외에 치수를 아는 객체도 받는다.
썸네일은 크기를 모르지만 우리가 만든 기본 이미지는 알기 때문이다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
디자인이 준 자산 둘이 코드에 반영돼 있지 않았다. 배경은 Satori가
제목을 얹을 바탕이고 기본 이미지는 그대로 나가는 완성본이다.
둘 다 사이트 다크 테마와 같은 톤으로 다시 그렸다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
카카오톡과 링크드인은 이미지 아래에 제목과 도메인을 자기가 다시
그린다. 그런데 카드 안에도 같은 것이 들어 있어 한 화면에서
brand 표기가 여섯 번 반복됐다. 위쪽 chan9yu.dev와 아래쪽
chan9yu.dev는 글자까지 같았다.

위쪽에 로고 심볼 하나, 가운데 제목, 아래쪽 도메인만 남긴다.
배경은 CSS 그라데이션 대신 디자인 자산을 쓰고 글자색은 사이트
다크 토큰에 맞춘다. 홈은 Satori를 거치지 않고 완성본을 쓴다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
디자인이 준 자산 둘이 놀고 있었고 그 자리에는 단색 박스가 있었다.

자산을 brand.ts가 아니라 별도 모듈에 둔다. brand.ts는 og 라우트가
쓰는데, 한곳에 모으면 두 라우트가 서로 안 쓰는 이미지까지 모듈
로드 시점에 읽는다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
next 16.3.3, zod 4.5.2, lucide-react 1.37.0 등 열 개를 올린다.
모든 항목에 ^ prefix를 붙인다.

TypeScript 7과 ESLint 10은 올리지 않는다. typescript-eslint가
TS 7을 명시적으로 거부하고, ESLint 10에서는 eslint-config-next가
끌고 오는 eslint-plugin-react가 크래시한다. 각각 6.x와 9.x 최신을
유지한다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
gitignore에는 있지만 eslint는 따로 무시하지 않아 커버리지를 뽑고
나면 산출물이 lint에 걸렸다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
배경을 CSS 그라데이션으로 그리지 않는다는 것, 홈은 완성본을
쓴다는 것, 카드 안 브랜드 표기는 하나라는 것을 남긴다. 마지막
항목은 2026-08-30 이전 구현이 어긴 자리라 재발을 막으려는 것이다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
feat: 공유 카드에 디자인 OG 자산을 적용하고 의존성을 올린다
배포 요청을 받고 버전을 1.3.1에서 1.4.0으로 스스로 올려 CHANGELOG
절까지 만든 일이 있었다. semver에 기능 추가면 minor라는 규칙이
있어 계산으로 나오는 값처럼 보이지만 버전은 결정이다.

문서에 적혀 있음, 규칙상 맞음, 되돌리기 쉬움을 승인으로 바꿔 읽지
않는다는 절을 함께 둔다. 같은 오판이 한 세션에서 세 번 나왔다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs: 버전 번호를 사용자가 정한다는 규칙을 적는다
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
chan9yu-blog Ready Ready Preview Aug 30, 2026 12:20pm

@chan9yu
chan9yu merged commit 8c47850 into main Aug 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant