Skip to content

Commit 21d4c10

Browse files
committed
refactor(blog): 콘텐츠 공개 기준 정리
공개 후보 글을 현재 구조와 검증 기준에 맞춰 리라이팅했습니다. Redis·Flink 학습 시리즈는 llm-wiki raw·draft로 이관하고 Ark에서 제거했습니다.
1 parent a62cf51 commit 21d4c10

47 files changed

Lines changed: 265 additions & 4242 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

blog/services/markdown-parser.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe('parseHeadingsFromMdx', () => {
6868

6969
describe('getMdxSource', () => {
7070
it('returns markdown source for an existing slug', () => {
71-
const source = getMdxSource('redis-deep-dive-02-core-data-types');
71+
const source = getMdxSource('llm-wiki-build-retrospective');
7272

7373
expect(typeof source).toBe('string');
7474
expect(source).toContain('#');

blog/services/post-repository.test.ts

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,13 @@ ${'x'.repeat(5000)}
6060
expect(hasExtractedImage).toBe(true);
6161
});
6262

63-
it('returns series posts sorted by order', () => {
64-
const redisPosts = getSeriesPosts('redis-deep-dive', {
65-
includePrivate: true,
66-
});
67-
68-
expect(redisPosts.length).toBeGreaterThan(0);
69-
const orders = redisPosts.map((post) => post.series?.order ?? 0);
70-
expect(orders).toEqual([...orders].sort((a, b) => a - b));
63+
it('does not retain learning series migrated to llm-wiki', () => {
64+
expect(getSeriesPosts('redis-deep-dive', { includePrivate: true })).toEqual(
65+
[]
66+
);
67+
expect(getSeriesPosts('flink-mastery', { includePrivate: true })).toEqual(
68+
[]
69+
);
7170
});
7271

7372
it('returns empty array for unknown series id', () => {
@@ -112,13 +111,6 @@ ${'x'.repeat(5000)}
112111
expect(await getFeedData(privateSlug)).toBeNull();
113112
});
114113

115-
it('filters private series posts from helper lookups', () => {
116-
expect(getSeriesPosts('redis-deep-dive')).toEqual([]);
117-
expect(
118-
getSeriesPosts('redis-deep-dive', { includePrivate: true }).length
119-
).toBeGreaterThan(0);
120-
});
121-
122114
it('returns null for non-existent posts folder slug', () => {
123115
expect(getFolderSlug('missing-folder-slug')).toBeNull();
124116
});

blog/ui/components/ScrollWorkflow.test.tsx

Lines changed: 0 additions & 63 deletions
This file was deleted.

blog/ui/components/ScrollWorkflow.tsx

Lines changed: 0 additions & 110 deletions
This file was deleted.

blog/ui/components/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ export { ReadingProgress } from './ReadingProgress';
1515
export { ImageGrid } from './ImageGrid';
1616
export { GiscusComments } from './GiscusComments';
1717
export { MermaidDiagram } from './MermaidDiagram';
18-
export { ScrollWorkflow } from './ScrollWorkflow';
1918

2019
export { SeriesNavigation } from './SeriesNavigation';
2120
export { default as SeriesHubCard } from './SeriesHubCard';

blog/ui/mdx/components.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import Image from 'next/image';
1010
import {
1111
ImageGrid,
1212
MermaidDiagram,
13-
ScrollWorkflow,
1413
} from '@/blog/ui/components';
1514

1615
function extractText(node: ReactNode): string {
@@ -108,7 +107,6 @@ export function getMDXComponents(components: MDXComponents): MDXComponents {
108107
);
109108
},
110109
ImageGrid,
111-
ScrollWorkflow,
112110
pre: (props) => {
113111
const preProps = props as ComponentPropsWithoutRef<'pre'> & {
114112
'data-language'?: string;

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Last updated: 2026-07-20
3535
- `docs/adr/0034-adopt-the-graphite-ink-palette.md`
3636
- `docs/adr/0035-prioritize-mobile-archive-reading-order.md`
3737
- `docs/blog-quality-guide.md`
38+
- `docs/content-publication-candidates.md`
3839
- `docs/database/db-schema.md`
3940
- `docs/database/supabase-view-count.sql`
4041
- `docs/guides/testing-guide.md`
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# 공개 후보 큐
2+
3+
Last updated: 2026-07-20
4+
5+
이 문서는 private 글 가운데 공개 리라이팅 후보의 순서와 선행 조건을
6+
기록한다. 공개 정책과 점수 기준의 기준 문서는
7+
`docs/blog-quality-guide.md`다.
8+
9+
공개 전환 전인 항목은 리라이팅과 품질 리뷰가 끝날 때까지 `private`를 유지한다.
10+
`visibility` 변경은 이 큐의 순서가 아니라 해당 글의 근거, 안전성, 점수
11+
검토 또는 작성자 승인을 거쳐서만 한다.
12+
13+
## 리라이팅 완료 · 공개 검토
14+
15+
| 우선순위 || 현재 상태 | 공개 승격 조건 |
16+
| -------: | ------------------------------ | --------------------------- | ---------------------------------------------------------------------- |
17+
| 1 | `posts/블로그-시스템-구축기` | 리라이팅 완료, private 유지 | 독립 content review와 공개용 release quality gate를 통과한다. |
18+
| 2 | `posts/ai-시대-개발-환경-고정` | 리라이팅 완료, private 유지 | 실제 적용 사례와 검증 결과를 보강한 뒤 독립 content review를 통과한다. |
19+
20+
## 보류
21+
22+
|| 현재 상태 | 공개 승격 조건 |
23+
| ----------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
24+
| `posts/알고리즘-시각화` | private 유지 | 일반 알고리즘 요약을 유지하지 않는다. 실제 문제, 선택 실패, 구현 검증을 중심으로 범위를 좁힌 독립 글로 재구성하고 Tech 핵심 점수 평균을 3.0 초과로 만든다. |
25+
26+
## 외부 검증 또는 승인 필요
27+
28+
|| 현재 상태 | 공개 승격 조건 |
29+
| ------------------------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------- |
30+
| `posts/토스증권-직무면접-회고` | private 유지 | NDA와 공개 범위를 작성자가 재확인한다. 회사·조직 맥락과 직접 질문 인용을 제거하거나 공개 가능 범위로 일반화한다. |
31+
| `posts/거제-야호로부터-배운-리센느-역주행의-진짜-본질` | 공개 전환 완료 | 멤버 이력, 발매·역주행 타임라인, 외부 선정 이력의 1차 출처를 확인한다. 가사 인용은 삭제하거나 허용 범위로 줄인다. |
32+
| `posts/함께-자라기-리뷰` | 공개 전환 완료 | 책 인용과 실험·조사 수치에 원문 페이지 또는 연구 출처를 추가한다. 작성자의 실제 적용 사례를 중심으로 다시 편집한다. |
33+
34+
## llm-wiki 이관 완료
35+
36+
| 범위 | 현재 상태 | 공개 승격 조건 |
37+
| ------------------------------ | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
38+
| `posts/레디스-완전정복/**` 8편 | llm-wiki로 이관 후 Ark에서 제거 | 원문은 `src_ark_redis_learning_series_2026_07_20`으로 보존한다. 공개 글이 필요하면 현재 공식 문서와 실제 운영 evidence를 대조한 비시리즈 글로 새로 작성한다. |
39+
| `posts/플링크-완전정복/**` 8편 | llm-wiki로 이관 후 Ark에서 제거 | 원문은 `src_ark_flink_learning_series_2026_07_20`으로 보존한다. 공개 글이 필요하면 현재 공식 문서와 실제 운영 evidence를 대조한 비시리즈 글로 새로 작성한다. |
40+
41+
## 다음 작업 순서
42+
43+
1. 블로그 시스템 구축기의 공개 전 독립 content review를 진행한다.
44+
2. AI 개발 환경 글에 실제 적용 사례와 검증 결과를 보강한 뒤 독립 content review를 진행한다.
45+
3. 각 글은 별도 리뷰 후에만 `visibility: public` 승격을 검토한다.

0 commit comments

Comments
 (0)