Skip to content

feat(blog): 공개 정책과 콘텐츠 품질 기준 정리 - #90

Merged
dev-wooyeon merged 7 commits into
masterfrom
codex/blog-quality-refresh
Apr 21, 2026
Merged

feat(blog): 공개 정책과 콘텐츠 품질 기준 정리#90
dev-wooyeon merged 7 commits into
masterfrom
codex/blog-quality-refresh

Conversation

@dev-wooyeon

Copy link
Copy Markdown
Owner

변경 내용

  • 글 공개/비공개 정책과 품질 리뷰 메타데이터를 추가했어요.
  • 피드, 사이트맵, 저장소 계층에서 비공개 글이 기본 제외되도록 정리했어요.
  • 조회수 집계에서 24시간 중복 증가를 막도록 액션 로직을 보강했어요.
  • CTR 파일럿 포스팅과 플랫폼 시스템 회고 글을 포트폴리오 기준으로 다시 정리했어요.
  • README와 docs 인덱스를 현재 저장소 구조와 유지 문서 기준에 맞게 정리했어요.

의도

  • 공개 글의 품질 기준을 메타데이터와 테스트로 고정하려고 했어요.
  • 플랫폼 엔지니어 브랜딩에 맞는 글과 문서만 전면에 남기려고 했어요.
  • 저장소 진입 문서와 블로그 포스팅 품질 기준을 같은 방향으로 맞추려고 했어요.

영향 범위

  • 블로그 글 목록, 상세 페이지, 시리즈 페이지, RSS, 사이트맵
  • 조회수 액션과 Supabase 연동 경로
  • 새 글 생성 스크립트와 읽기 시간 계산
  • CTR 파일럿 포스팅, 플랫폼 시스템 회고, README, 문서 인덱스

검증

  • npm run build
  • (필요 시) npm test
  • 다크/라이트 모드 확인
  • 모바일/데스크톱 확인
  • markdownlint-cli2 --config internal/config/.markdownlint-cli2.jsonc README.md docs/README.md posts/플랫폼-시스템-회고/index.mdx

체크리스트

  • 작업 단위 브랜치(codex/<task>)에서 진행함
  • 커밋 메시지 규칙(<type>: <한국어 설명>) 준수
  • 관련 이슈/PR 링크를 본문에 연결함

글 공개/비공개 정책과 품질 리뷰 메타데이터를 추가했어요.\n피드, 사이트맵, 저장소 계층에서 비공개 글을 기본 제외하도록 정리했어요.\n읽기 시간 계산과 새 글 스캐폴드도 현재 정책에 맞게 보강했어요.
시리즈 글과 저점수 엔지니어링 글의 공개 범위를 재조정했어요.\n품질 리뷰 점수와 featured 기준을 메타데이터에 반영했어요.\n라이프 글은 기존 공개 전략을 유지하면서 탐색 구조만 정리했어요.
CTR 파일럿 포스팅을 포트폴리오 관점으로 다시 구성했어요.\n트레이드오프, 운영 비용, 학습 과정의 기준 변화가 드러나도록 본문을 정리했어요.\n같은 기준을 재사용할 수 있도록 블로그 품질 가이드도 추가했어요.
조회수 집계가 새로고침과 반복 요청으로 증가하는 문제를 줄이기 위해\n서버 지문 기반 dedupe 로직을 추가했어요.\n\nincrement_view RPC에 viewer fingerprint와 dedupe window 인자를 추가하고\nview_unique_visitors 테이블 기반으로 24시간 내 중복 증가를 차단했어요.\n헤더 식별 실패 시 fallback visitor cookie를 사용하도록 보완했고\n구버전 함수 시그니처 환경에서도 동작하도록 호환 경로를 유지했어요.\n\nDB 스키마 문서와 env 예시를 최신화하고 테스트를 보강했어요.
플랫폼 시스템 회고 글 제목의 IoT 표기를 바로잡았어요.
본문과 저장소 내 다른 기술 용어 표기와 일관되게 맞췄어요.
README와 docs 인덱스를 현재 저장소 구조에 맞게 정리했어요.
플랫폼 시스템 회고 글의 구조와 메타 설명을 기술 회고 기준에 맞춰 보강했어요.

빌드와 markdownlint로 문서 변경을 검증했어요.
@vercel

vercel Bot commented Apr 17, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
eunu-log Ready Ready Preview, Comment Apr 21, 2026 0:49am

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 91a4ae9867

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/app/actions/view.ts
Comment on lines +110 to +113
const signatureSource =
signatureParts.length > 0
? signatureParts.join('|')
: `visitor:${getOrCreateFallbackVisitorId(cookieStore)}`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include cookie identity in all view fingerprints

The fingerprint source falls back to the view_visitor_id cookie only when all header-derived fields are empty. In production, many different users can share the same x-forwarded-for/user-agent/language tuple (for example behind office or carrier NAT), so they collapse to one fingerprint and later visits are incorrectly deduped for 24 hours. This undercounts real visitors and defeats the intent of per-visitor dedupe; the cookie-based ID should be incorporated even when headers are present.

Useful? React with 👍 / 👎.

origin/master 병합 과정에서 발생한 충돌을 정리했어요.
홈 레이아웃 변경과 콘텐츠 메타데이터를 함께 반영해 PR #90을 다시 병합 가능 상태로 맞췄어요.
@dev-wooyeon
dev-wooyeon merged commit b4ae7c2 into master Apr 21, 2026
3 checks passed
@dev-wooyeon
dev-wooyeon deleted the codex/blog-quality-refresh branch June 15, 2026 14:11
dev-wooyeon added a commit that referenced this pull request Jul 24, 2026
* feat(blog): 공개 정책과 품질 메타 추가

글 공개/비공개 정책과 품질 리뷰 메타데이터를 추가했어요.\n피드, 사이트맵, 저장소 계층에서 비공개 글을 기본 제외하도록 정리했어요.\n읽기 시간 계산과 새 글 스캐폴드도 현재 정책에 맞게 보강했어요.

* chore(content): 글 공개 범위와 메타 정리

시리즈 글과 저점수 엔지니어링 글의 공개 범위를 재조정했어요.\n품질 리뷰 점수와 featured 기준을 메타데이터에 반영했어요.\n라이프 글은 기존 공개 전략을 유지하면서 탐색 구조만 정리했어요.

* docs(blog): CTR 파일럿 포스팅 정리

CTR 파일럿 포스팅을 포트폴리오 관점으로 다시 구성했어요.\n트레이드오프, 운영 비용, 학습 과정의 기준 변화가 드러나도록 본문을 정리했어요.\n같은 기준을 재사용할 수 있도록 블로그 품질 가이드도 추가했어요.

* fix(analytics): 조회수 24시간 중복 집계 방지 강화

조회수 집계가 새로고침과 반복 요청으로 증가하는 문제를 줄이기 위해\n서버 지문 기반 dedupe 로직을 추가했어요.\n\nincrement_view RPC에 viewer fingerprint와 dedupe window 인자를 추가하고\nview_unique_visitors 테이블 기반으로 24시간 내 중복 증가를 차단했어요.\n헤더 식별 실패 시 fallback visitor cookie를 사용하도록 보완했고\n구버전 함수 시그니처 환경에서도 동작하도록 호환 경로를 유지했어요.\n\nDB 스키마 문서와 env 예시를 최신화하고 테스트를 보강했어요.

* fix(blog): IoT 제목 표기 정정

플랫폼 시스템 회고 글 제목의 IoT 표기를 바로잡았어요.
본문과 저장소 내 다른 기술 용어 표기와 일관되게 맞췄어요.

* docs(blog): 저장소 문서와 플랫폼 회고 정리

README와 docs 인덱스를 현재 저장소 구조에 맞게 정리했어요.
플랫폼 시스템 회고 글의 구조와 메타 설명을 기술 회고 기준에 맞춰 보강했어요.

빌드와 markdownlint로 문서 변경을 검증했어요.
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