본문으로 바로 가기
SungBae Han

Selected Work · Case Study

Arcanaverse AI TRPG Platform

LLM이 게임 규칙과 서사를 동시에 담당할 때 발생하는 상태 불일치 문제를, 서버 권한과 LLM 권한의 분리로 통제한 AI 시스템입니다.

Solo Build · 기획 · 설계 · 구현 · 배포 · 운영 · 실제 서비스 배포

Arcanaverse의 세계관 생성 화면. AI 자동 생성 버튼과 세계관 개요·지역·세력·갈등 구조 입력 폼이 보이는 실제 서비스 UI.

Problem

LLM이 서사와 게임 규칙을 동시에 책임지면, 대화가 길어질수록 캐릭터 상태(HP·인벤토리·턴 순서 등)와 실제로 진행된 서사가 서로 어긋나는 상태 불일치가 발생합니다. LLM의 출력을 그대로 게임 상태로 신뢰할 수는 없었습니다.

Architecture — Dual Authority Pattern

서버가 HP·사망 판정 같은 게임 규칙의 집행 권한을 갖고, LLM은 서사·대사 생성만 담당하도록 권한을 명확히 나눴습니다. Frontend(Cloudflare Pages) · API(FastAPI) · AI 실행(OpenAI GPT, Qdrant Vector DB) · Database(MongoDB Atlas, Cloudflare R2) · Infrastructure(Oracle VM, Docker)로 계층을 분리해, UI와 런타임 로직과 AI 실행이 각각 독립적으로 동작합니다.

Snapshot-Delta State Management

LLM 응답에서 상태 변경 제안(delta)을 추출하고, 서버가 이를 검증한 뒤에만 실제 게임 상태에 반영합니다. 파싱에 실패하거나 검증을 통과하지 못하면 직전의 Last Known Good State를 그대로 유지해, 게임이 깨진 상태로 진행되지 않도록 합니다.

Trade-offs

권한 분리
LLM의 자유도를 일부 제한하는 대신, 게임 상태의 신뢰성을 확보
검증 비용
매 응답마다 상태 검증 단계가 추가되어 응답 지연이 소폭 늘어남
실패 복구
파싱·검증 실패 시 Last Known Good State로 유지 — 완전한 진행 불가 상태보다 안전한 선택

Scope

기획부터 아키텍처 설계, FastAPI/Frontend 구현, Google OAuth 인증, 캐릭터·세계관·세션·게임 상태 관리 기능, Oracle VM/Docker 기반 배포·운영까지 1인으로 담당했습니다. 실제 서비스로 배포되어 운영 중입니다.