바로가기
실험실

hynu.blog

글쓰기를 AI에게 맡긴 개인 기록 블로그

화면


01
홈
01

최근 글이 카테고리·태그와 함께 한 줄씩 깔린다

글 상세
02글 상세

커버 위에 제목이 얹히고 목차가 본문을 따라 붙는다

아카이브
03아카이브

쌓인 글 전부를 카테고리로 좁혀 가며 본다

실험실
04실험실

만든 프로젝트를 화면 표본처럼 네 장씩 늘어놓는다

프로젝트 상세
05프로젝트 상세

원고 한 장이 섹션별 전용 화면으로 펼쳐진다

초안 요청
06초안 요청

링크와 메모를 넣으면 초안 작업이 큐에 걸린다

글 관리
07글 관리

작성중인 글을 위에 두고 상태별로 훑는다

에디터
08에디터

왼쪽에 마크다운, 오른쪽에 발행 화면과 똑같은 미리보기

실험실 관리
09실험실 관리

프로젝트를 발행 전에 감춰 두고 미리 본다

통계
10통계

어떤 글이 실제로 읽히는지 글별로 센다

기술 스택


02
Next.jsReactTypeScriptTailwind CSSSupabasePostgreSQLVercelClaude CodeGitHub Actions

데이터와 API


03
Supabase

글·프로젝트·조회수를 담고, 올린 이미지와 영상을 보관한다

Claude Code

링크를 읽고 규약대로 글 초안을 쓰거나, 발행된 글을 피드백대로 고친다

YouTube

영상 글을 쓸 때 소제목마다 그 장면을 캡처해 본문에 넣는다

Giscus

글 아래 댓글을 GitHub Discussions에 얹어 둔다

giscus.app
Vercel Analytics

어디서 들어와 어떤 기기로 보는지, 화면이 얼마나 빨리 뜨는지 본다

구상


04
디자인 시안 아홉 장을 실제로 도는 화면으로 옮긴다
글을 DB에 두고 어드민에서 쓰고 고친다
URL 하나를 던지면 AI가 초안을 써 준다
RSS·사이트맵·OG 이미지가 알아서 나온다
검색과 방문자 통계를 붙인다
글을 영어로 자동 번역해 `/en` 으로도 낸다

기획


05

어떤 서비스인가요?

제가 보고 읽은 걸 요약해 쌓아 두는 개인 기록 블로그예요. 링크를 하나 던지면 AI가 규약대로 초안을 써 놓고, 저는 그걸 다듬어 발행합니다

어떤 계기로 만들게 됐나요?

처음엔 그냥 기록용 블로그가 갖고 싶었어요. 그런데 기존 블로그 플랫폼은 커뮤니티 기능이 대부분이라 저한테는 필요가 없더라고요. 어차피 안 쓸 기능에 화면을 맞추느니, 원하는 걸 원하는 대로 붙일 수 있는 사이트를 직접 세우는 게 낫겠다 싶었습니다

주로 어떤 분이 쓰나요?

저 혼자 씁니다. 읽는 쪽은 검색으로 들어오는 사람들이고, 쓰는 쪽 화면은 전부 제 것이에요

지금은 안 하기로 한 게 있나요?

회원가입도 좋아요도 없어요. 댓글만 Giscus로 얹어 뒀습니다

만들면서 배운 게 있다면요?

규약을 문서로 못 박아 두면 AI가 쓴 글의 결이 편마다 흔들려요. POSTING.md가 코드보다 자주 고쳐집니다

지금도 쓰고 계신가요?

네, 여기 있는 글 대부분이 이 파이프라인에서 나왔습니다

유저 플로우


06
  1. 01
    읽다가 링크를 붙여 넣는다

    영상이든 글이든, 남겨두고 싶은 게 보이면 주소만 복사해 둡니다.

    폰이나 태블릿어드민 화면노트북 앞Claude Code 세션에 바로
  2. 02
    초안을 요청한다

    강조할 점이나 톤이 있으면 메모로 같이 넘깁니다.

  3. 03
    결과를 확인한다

    작업이 도는 동안은 목록에 생성중 표시가 붙습니다. 다 되면 작성중 글로 올라와요.

  4. 04
    에디터에서 손본다

    왼쪽에서 고치면 오른쪽 미리보기가 발행 화면 그대로 따라옵니다.

    결이 맞다제목·태그만 다듬는다어긋난다피드백을 적어 다시 맡긴다
  5. 05
    발행한다

    카테고리와 작성일을 정하고 내보냅니다.

구조


07
보내는 것되돌아오는 것

개발 과정


08
  1. 01

    화면부터 아홉 장 만들었어요

    Claude Design으로 시안을 아홉 장 뽑아 놓고, 그걸 Next.js로 그대로 옮기는 것부터 했습니다. 데이터는 전부 파일에 박아 둔 가짜였어요. 어차피 나중에 갈아 끼울 거라, 초반엔 화면이 어떻게 생겼는지만 확정하고 싶었거든요.

    붙인 것
    Next.jsTailwind CSS
  2. 02

    가짜 데이터를 걷어내고 DB를 뒀어요

    글을 하나 고치겠다고 배포를 다시 하는 게 말이 안 됐어요. 파일 기반으로 갈까 하다가, 결국 폰에서도 글을 쓰고 싶어질 게 뻔해서 서버에 상태를 두기로 했습니다. 여기서부터 어드민이 생겼고, 마크다운 본문·이미지 업로드·카테고리 트리가 차례로 붙었어요.

    붙인 것
    SupabaseVercel
  3. 03

    어드민을 만들다가 글쓰기까지 맡기게 됐어요

    영상을 하나 보고 나면 요약해서 남기고 싶은데, 그걸 앉아서 쓰는 데 한 시간씩 걸리더라고요. 그래서 URL을 주면 AI가 초안을 쓰게 했습니다. 처음엔 어드민이 요청을 받자마자 그 자리에서 처리하게 했는데, 한 편 쓰는 데 몇 분이 걸리니 화면이 그냥 멈춰 있었어요. 게다가 Claude Code는 제 구독 계정에 묶인 CLI라 서버에 올릴 수도 없었고요.

    그래서 어드민은 작업 줄에 한 칸 적어 두기만 하고, 제 컴퓨터에서 도는 워커가 그걸 가져가 처리하도록 나눴습니다. 폰에서는 던지고 닫아도 되고, 워커는 밖으로 나가는 접속만 쓰니 포트를 열 일도 없었어요. 나중엔 초안뿐 아니라 이미 발행된 글도 피드백만 적으면 다시 다듬게 같은 줄에 얹었습니다.

    붙인 것
    Claude Code
  4. 04

    글이 쌓이니 읽는 쪽 장치가 필요했어요

    스무 편쯤 넘어가니까 제가 쓴 글을 제가 못 찾겠더라고요. 검색·태그·시리즈·연관 글 추천을 붙이고, 글별 조회수도 직접 세기 시작했습니다. 이 무렵 영어 자동 번역과 /en 라우팅도 만들어 뒀는데, 관리할 게 두 배로 늘어서 노출만 걷어내고 배선은 남겨 뒀어요.

  5. 05

    규약을 코드가 아니라 문서로 옮겼어요

    AI가 쓴 글이 편마다 결이 달랐어요. 어떤 편은 개조식이고 어떤 편은 번역투고. 처음엔 프롬프트를 계속 손봤는데, 프롬프트가 워커 스크립트 안에 박혀 있으니 고칠 때마다 배포를 해야 했습니다. 그래서 글쓰기 규약을 통째로 POSTING.md 한 장으로 빼고, 워커가 매번 그 파일을 읽어 넘기게 했어요. 지금은 코드보다 이 문서를 훨씬 자주 고칩니다. 초안·개선·인사이트·리서치처럼 결이 다른 작업은 각각 슬래시 커맨드로 갈랐어요.

  6. 06

    실험실을 포트폴리오 판으로 갈아엎었어요

    원래 실험실은 프로젝트 카드 몇 장이 전부였어요. 다른 레포에서 만든 것들을 여기 모으려니 매번 상세 화면을 새로 짜게 되더라고요. 그래서 원고 한 장의 ## 제목이 곧 렌더러가 되게 규약을 정했습니다. ## 화면이면 폰 목업 갤러리, ## 구조면 다이어그램 밴드, ## 시행착오면 스크롤 따라 펼쳐지는 부검 카드로요. 원고를 넘기면 화면이 알아서 나오니, 프로젝트를 하나 더 얹는 게 마크다운 한 장 쓰는 일이 됐어요.

  7. 07

    마지막에 검색 노출과 계측을 붙였어요

    만들어 두고 아무도 안 들어오면 의미가 없으니, 사이트맵·구조화 데이터·canonical을 정리하고 서치콘솔에 물렸습니다. 태그 표기가 대소문자·공백 때문에 갈라져 있던 것도 이때 하나로 합치고 옛 주소는 301로 넘겼어요.

    붙인 것
    VercelGitHub Actions

시행착오


09
증상다이어그램 말고 단계 카드나 수치 카드 같은 정보 그림을 본문에 넣고 싶었는데, 마크다운으로는 표현할 방법이 없었어요.
시도카드를 HTML/CSS로 만들어 두고, 글을 저장할 때 Playwright로 그 화면을 열어 PNG로 구운 뒤 이미지 주소로 바꿔치기했습니다. 처음엔 잘 돌았어요. 그런데 확대하면 글씨가 흐렸고, 다크 모드로 바꿔도 카드만 밝은 채로 남았고, 폰에서는 넓은 카드가 그대로 줄어들어 읽히지 않았습니다. 카드 스타일을 한 줄 고칠 때마다 이미 발행된 글의 그림을 전부 다시 구워야 하는 것도 문제였고요.
결론이미지로 만들 이유가 애초에 없었어요. 본문 렌더러가 이미 mermaid 블록을 컴포넌트로 그리고 있었으니, 카드도 같은 자리에서 React 컴포넌트로 그리면 됐습니다. 굽는 파이프라인과 Playwright 의존성, 렌더 전용 라우트를 전부 걷어냈어요. 지금은 카드 스타일을 고치면 옛날 글까지 같이 바뀝니다.
글 상세 맨 위에 커버 사진을 깔고 그 위에 제목을 얹었는데, 사진에 따라 제목이 아예 안 읽혔어요.
제목을 그대로 주소로 만들었더니, 어떤 글은 열리고 어떤 글은 404가 났어요. 어드민 목록에는 멀쩡히 있는데요.
영상 글을 쓸 때 소제목마다 그 시점의 장면을 넣으려고 했는데, 몇 장 뽑다 보면 다운로드가 멈췄어요.

남은 것


10
  • 검색 화면이 열리지 않아요.예전에 영어 번역을 붙였을 때 만든 컬럼을 검색 질의가 아직 참조하고 있어서, 그 컬럼이 사라진 지금은 질의 자체가 실패합니다.
  • AI 워커가 제 컴퓨터에 묶여 있어요.컴퓨터가 꺼져 있으면 요청은 걸리기만 하고 처리되지 않습니다.
  • 사용자 화면에서 발행일을 임시로 내려 뒀어요.옛 글들의 작성일이 실제 시점과 어긋나 있어서, 정리한 뒤에 다시 올릴 생각입니다.
  • 백업이 수동이에요.스냅샷을 남기려면 제가 명령을 직접 돌려야 합니다.