Blog

개발 경험과 인사이트를 공유합니다

전체(8)Backend(4)Frontend(1)Architecture(1)Security(2)
AI ArchitecturePrompt EngineeringNestJSSystem Design

AI 캐릭터 플랫폼의 3모드 아키텍처: 감독형·목적형·관계형 AI

플릿 초기(2026년 3월)의 3모드 설계 기록이다. 감독형(스토리), 목적형(토크룸), 관계형(캐릭터 챗) AI 의 프롬프트 빌더 분기, 캐릭터 독립 엔티티 설계, 모드별 메모리 전략을 다룬다. 현재 플릿은 1:1 캐릭터 챗 하나로 운영한다.

NestJSNext.jsPrismaPostgreSQLArchitectureMonorepo

AI 채팅 플랫폼 풀스택 아키텍처 설계: NestJS + Next.js 모노레포와 인프라 전략

1:1 AI 캐릭터 채팅 플랫폼의 전체 아키텍처를 설계하며 내린 판단들을 정리했다. NestJS 11 + Next.js 16 pnpm 워크스페이스 모노레포와 @plit/shared 공유 패키지, Render + Vercel + Upstash + Clerk + R2 로 짠 관리형 인프라 조합, 캐릭터를 독립 엔티티로 두고 관계를 (user_id, character_id)에 거는 스키마, 그리고 운영 가능성을 기준으로 삼은 트레이드오프를 다룬다.

pgvectorRAGGeminiRedisPostgreSQLSemantic Search

pgvector 하이브리드 검색과 RRF 로 만든 AI 캐릭터 장기 기억

LLM의 컨텍스트 윈도우를 넘어서는 장기 기억을 어떻게 만들었나. 사용자×캐릭터 단위로 5건마다 시도하는 AI 요약과 Gemini 768차원 임베딩, pgvector 코사인 유사도와 tsvector 키워드 검색을 대화 순번 감쇠로 재랭킹해 RRF로 병합하고, 중요도 예약 슬롯과 함께 최대 12개를 주입하는 설계를 정리했다.

Content SafetyKorean NLPUnicodeLLMNestJS

한국어 AI 콘텐츠 안전 필터링: 유니코드 정규화부터 키워드와 LLM 심사의 두 겹 판정까지

한국어에는 자모 분리, 공백 삽입, 유니코드 정규화 차이처럼 이 언어에만 열려 있는 우회 경로가 있고, 공백을 지우면 멀쩡한 문장이 금지어처럼 보이는 오탐도 생긴다. 4단계 정규화와 자모 조합 알고리즘, 어절 경계 검사로 키워드를 맞추고, 문맥을 못 보는 키워드 대신 LLM 심사기가 판정하도록 입력과 출력을 설계한 과정을 적었다.