개인 기술 블로그 플랫폼
개인 프로젝트 | 개인
RAG 기반 AI 챗봇, 하이브리드 검색, 관리자 대시보드를 갖춘 풀스택 블로그 플랫폼
상세 내용
- Next.js 16 App Router 기반 SSR/ISR 블로그 (TypeScript)
- RAG 파이프라인: 블로그 콘텐츠 자동 청킹 → OpenAI 임베딩(2000차원) → pgvector HNSW 인덱스 저장 → 코사인 유사도 검색 → Groq LLM 컨텍스트 주입
- 하이브리드 검색: 키워드 매칭(40%) + 벡터 유사도(60%) 가중 합산 스코어링
- SSE 스트리밍 AI 챗봇: Groq LLM(Llama 3.3 70B) 기반, 세션 문맥 유지, CJK 문자 필터링, Rate Limiting
- React-PDF 이력서 동적 생성: 데이터 기반 PDF 렌더링, 다운로드 출처/디바이스 추적
- Tiptap WYSIWYG 에디터: 슬래시 커맨드, 드래그앤드롭 이미지, Cloudinary 업로드
- Telegram Bot 실시간 모니터링 알림
- 관리자 대시보드: 글 관리(draft/published), 노트, 문의, 채팅, 임베딩, 분석, 휴지통
- GitHub OAuth 인증 + NextAuth.js 세션 관리
- IndexNow API 연동으로 새 글 발행 시 검색 엔진 자동 인덱싱
- Giscus(GitHub Discussions) 댓글 시스템 통합
- Vercel 배포 + Neon PostgreSQL (Serverless)
하이라이트
RAG 파이프라인 직접 설계 및 구축
Problem
블로그 글이 늘어나면서 방문자가 원하는 정보를 빠르게 찾기 어렵고, 단순 키워드 검색으로는 의미 기반 탐색이 불가능한 상황
Solution
블로그 글을 단락 단위로 청킹(제목/태그/날짜 prefix 포함) → OpenAI text-embedding-3-large(2000차원)로 벡터화 → pgvector HNSW 인덱스에 저장. 사용자 질문을 실시간 임베딩 변환하여 코사인 유사도 검색 후, 상위 청크를 LLM 시스템 프롬프트에 주입하는 RAG 파이프라인 구축
Result
방문자가 자연어로 블로그 콘텐츠를 대화형으로 탐색 가능. 유사도 0.3 임계값 필터링으로 무관한 결과 제거, 포트폴리오/이력서 데이터와 블로그 글을 컨텍스트 우선순위에 따라 동적 활용
하이브리드 검색 엔진 구현
Problem
키워드 검색만으로는 동의어/유사 표현을 놓치고, 벡터 검색만으로는 정확한 키워드 매칭이 약한 문제
Solution
키워드 매칭(PostgreSQL ILIKE, 40% 가중치)과 벡터 유사도(pgvector 코사인 거리, 60% 가중치)를 합산하는 하이브리드 스코어링 구현. 유사도 범위(0.15~0.65)를 0~100%로 정규화하여 직관적인 관련도 표시
Result
"Redis 캐시" 검색 시 키워드 일치 글 + 의미적으로 관련된 캐싱 전략 글까지 함께 검색. 관련 글 추천 기능에도 동일 엔진 활용
SSE 기반 실시간 스트리밍 챗봇
Problem
LLM 응답 완료까지 사용자가 빈 화면을 보며 기다려야 하는 UX 문제와, Llama 모델의 한국어 응답 시 CJK 문자 혼입 문제
Solution
Server-Sent Events 스트리밍으로 토큰 단위 실시간 전송. 30분 세션 윈도우 기반 대화 히스토리(최근 10개) 유지, CJK 한자/가나 서버사이드 필터링, 차단 키워드 관리, 방문자별 Rate Limiting(5회/분) 구현
Result
첫 토큰 즉시 표시로 체감 응답 속도 대폭 개선. 타이핑 인디케이터, 마크다운 렌더링, 이력서 다운로드 버튼 등 자연스러운 대화 UX 구현
이력서 PDF 동적 생성 및 다운로드 분석
Problem
이력서를 수동으로 PDF 변환해야 하고, 어떤 채용 채널에서 다운로드하는지 추적 불가
Solution
React-PDF로 데이터(resume.ts/portfolio.ts) 기반 이력서 PDF 동적 생성. 다운로드 시 출처(사람인, 원티드, 챗봇 등), 디바이스(desktop/mobile/tablet), 경로를 자동 기록. Telegram Bot으로 실시간 다운로드 알림
Result
데이터 수정만으로 PDF 자동 반영. 출처별/디바이스별 통계 대시보드로 채용 채널 효과 분석 가능. 챗봇 내 이력서 다운로드 버튼으로 전환율 향상
통합 관리자 대시보드 구축
Problem
블로그 글, 노트, 문의, 채팅, 임베딩 등 다양한 기능의 관리가 분산되어 운영 효율이 낮은 상황
Solution
KPI 대시보드(오늘 방문자, 총 조회수, 글 수, 미읽은 문의), 글 관리(draft/published 토글, 소프트 삭제, 휴지통 복원), 채팅 관리(세션 브라우저, 통계, 모델 선택, 차단 키워드), 임베딩 상태 모니터링, 페이지뷰 분석을 단일 관리자 인터페이스로 통합
Result
전체 플랫폼 운영을 하나의 대시보드에서 관리. 일일 통계 Telegram 자동 리포트로 운영 모니터링 자동화