이제 임베딩은 신경 안 써도 된다 — RAG 자동 갱신(Day 13)

도로의 이것저것·2026년 8월 6일

AI에이전트

목록 보기
13/15

Phase 5는 케이스 스터디만으로 끝나지 않았어요. 로드맵에 같이 적혀있던 "백로그 관리"까지 오늘 시작했고, 그 과정에서 나온 첫 항목(RAG 인덱스 자동 갱신)을 바로 완성까지 끝냈어요.

1. 백로그 문서 만들기

지금까지 devlog마다 "나중에 하자"고 미뤄둔 것들을 한곳에 모았어요. 크게 세 덩어리로 나눴어요.

  • 반복 운영 작업 : 매번 손으로 챙겨야 하는 것(임베딩 재생성, devlog 목록 업데이트, 카드뉴스 제작)
  • 인프라 개선 : Vercel KV 전환, 커스텀 도메인, 테스트 코드(우선순위 표시)
  • 새 기능 아이디어 : /help커맨드, 사용량 대시보드, OG 이미지 등

2. 완전 자동화 VS 가벼운 스크립트, 고민

"RAG 인덱스 자동 갱신"부터 시작하기로 했는데, 방식을 두고 잠깐 고민했어요.
fetch_posts.py/build_index.py는 kodex-code-review-agent 저장소에 있고, 실제로 쓰이는 embeddings.json은 kodex-portfolio-site 저장소에 복사되는 구조라, 완전 자동화하려면 GitHub Actions가 저장소 두 개를 넘나들어야 해요. 처음엔 "로컬 스크립트 하나로 줄이는 정도"를 제안했는데, "자동 갱신이면 나중에 편하다"는 이유로 완전 자동화로 가기로 결정했어요.

3. GitHub Actions 워크플로 구현

kodex-portfolio-site에 워크플로를 하나 추가했어요.

on:
  schedule:
    - cron: "0 21 * * *"  # 매일 06:00 KST
  workflow_dispatch: {}

동작 순서는 이래요.

  1. kodex-portfolio-site(자기 자신)와 kodex-code-review-agent(스크립트) 둘 다 체크아웃
  2. 기존 embeddings.json을 먼저 시딩 — build_index.py가 증분 업데이트를 지원하니까, 캐시를 안 넣어주면 매번 전체를 재임베딩하는 낭비가 생겨요. 그래서 사이트에 이미 있는 임베딩을 먼저 복사해서 캐시로 씀
  3. fetch_posts.py로 최신 벨로그 글 수집 → build_index.py로 증분 임베딩
  4. 결과를 src/data/kodex-embeddings.json에 덮어쓰기
  5. 바뀐 게 있으면만 커밋 + 푸시 (변경 없으면 조용히 스킵)

크로스 레포 자동화라 걱정했던 것과 달리, 워크플로가 자기 저장소(kodex-portfolio-site)에만 커밋하면 되는 구조로 짜서 레포 간 쓰기 권한 토큰 같은 복잡한 설정 없이, GEMINI_API_KEY 시크릿 하나만 등록하면 끝났어요.

gh secret set GEMINI_API_KEY --repo DoyuIm/kodex-portfolio-site

4. 실제로 돌려봤다

gh workflow run으로 수동 실행해보니 23초 만에 초록 체크로 끝났고, 실제로 새 커밋까지 만들어서 푸시된 걸 확인했어요.

74fd56f chore: 벨로그 최신 글로 임베딩 자동 갱신

이 커밋 덕분에 Vercel도 자동 재배포됐어요. 이제부터는 새 글을 써도 임베딩 재생성 → 사이트 복사 → 커밋을 손으로 안 해도, 다음날 아침이면 알아서 반영돼있어요.

오늘까지 진행 상황

Phase 5의 두 축(케이스 스터디, 백로그 관리)이 다 갖춰졌고, 백로그 첫 항목도 바로 완료 처리했어요. "반복 운영 작업" 목록에서 항목 하나가 완전히 사라진 셈이에요.

다음 계획

백로그에 남은 "새로 해볼 만한 기능" 3개(/help 커맨드, 포트폴리오 사이트 OG 이미지, 사용량 대시보드)를 Day14에 순서대로 진행할 예정이에요.

profile
AI 서비스 기획•개발자 취업 준비생 입니다

0개의 댓글