Back to Projects
Full-Stack·사용자 맞춤 교정

LLM 기반 소설 교정기

AI가 문장을 실시간으로 교정하고, 사용자의 문체를 학습하는 소설 교열 플랫폼

Next.js, TypeScript, Gemini API

LLM 기반 소설 교정기

프로젝트 소개

Google Gemini API와 Fine-tuned Gemma 모델을 활용한 AI 소설 교정 플랫폼입니다. 단순 맞춤법 검사를 넘어, 사용자의 문체를 학습하고 창작 스타일에 맞는 교열을 제공합니다.

개요

  • 기간: 2025.03 ~ 2025.06 (3개월)
  • 팀 구성: 4명 (풀스택, AI 서버, 결제/프론트, DB/디자인)
  • 담당: 풀스택 개발 및 시스템 아키텍처 설계

시스템 아키텍처

  • Frontend: Next.js App Router + Zustand + TanStack Query
  • Backend: NestJS + Redis (큐/Pub/Sub) + PostgreSQL + Prisma
  • AI Server: Flask + Fine-tuned Gemma (Unsloth VRAM 60% 절감)
  • Infra: Nginx 리버스 프록시 + PM2 무중단 배포

주요 기능

실시간 AI 교정

실시간 AI 교정

SSE 기반 실시간 스트리밍으로 AI가 교정하는 과정을 토큰 단위로 확인할 수 있습니다. 불완전한 JSON 응답을 정규식 기반으로 복원하는 알고리즘을 구현하여 스트리밍 중에도 안정적인 렌더링을 보장합니다.


선택적 교정 적용

교정 부분 적용

교정 결과를 전체 일괄 적용이 아닌, 부분별로 개별 반영할 수 있습니다. 적용 전 실시간 미리보기로 변경 사항을 확인하고, 작가의 의도를 유지하면서 필요한 부분만 선택적으로 수정합니다.


개인화 문체 학습 (Pro 모드)

Fine-tuned Gemma 모델이 사용자별 문체 패턴을 학습하여 맞춤형 교정을 제공합니다. Unsloth를 활용해 VRAM을 60% 절감하면서도 학습 품질을 유지했습니다.


작업 큐 시스템

Redis 기반 작업 큐(List + Set + Pub/Sub)로 사용자당 최대 3개 작업을 동시 처리합니다. 서버 재시작 시 미완료 작업을 자동으로 ERROR 처리하는 상태 복구 로직을 구현했습니다.

기술적 도전

SSE 스트리밍 + JSON 복원

AI 응답이 토큰 단위로 스트리밍되면서 JSON이 불완전한 상태로 전달되는 문제가 있었습니다. 정규식 기반 JSON 복원 알고리즘을 설계하여, 중간 상태의 응답도 안전하게 파싱하고 일관된 UI 렌더링을 구현했습니다.

Redis 큐 설계

다중 사용자의 동시 교정 요청을 안정적으로 처리하기 위해 Redis의 List, Set, Pub/Sub를 조합한 큐 시스템을 설계했습니다. 작업 제한, 순차 처리, 실시간 상태 모니터링을 하나의 구조로 통합했습니다.