외부 운영 source note
PostgreSQL Logical Replication 및 Logical Decoding
PostgreSQL 공식 logical replication 문서는 publication/subscriber 모델이 transaction order를 보존하며, logical replication이 primary key 등 replication identity에 기반한다고 설명한다. CDC listener는 이 원칙에 맞춰 tb_board_posts에 stable identity와 REPLICA IDENTITY FULL을 요구한다.
Logical decoding 공식 예제는 사용 전 wal_level=logical, max_replication_slots >= 1이 필요하고, streaming protocol을 쓰는 pg_recvlogical 경로에는 replication authentication과 충분한 max_wal_senders가 필요하다고 명시한다. 또한 consumed logical slot changes는 재발행되지 않고 slot이 server resource를 사용하므로 운영자는 slot lifecycle/WAL lag를 관리해야 한다. RagService CDC는 target commit이 성공한 뒤에만 source slot을 advance한다.
Phoenix Self-hosting
Phoenix 공식 Docker self-hosting 문서는 Docker Compose deployment, PostgreSQL 14 이상 external database 지원, production image version pin과 persistent storage 필요성을 안내한다. RagService는 이를 바탕으로 Phoenix UI/OTLP port를 default loopback binding으로 제한하고 별도 internal network와 PostgreSQL volume을 사용한다.
Langfuse 대안 검토
Langfuse 공식 self-hosted Docker Compose 문서는 Compose deployment가 low-scale/testing에 적합하고 high availability·horizontal scaling·backup을 제공하지 않는다고 설명한다. 이번 RagService baseline은 의존성이 더 작은 Phoenix profile을 선택했으며, 고급 prompt/dataset 관리가 필요한 조직은 별도 Langfuse deployment를 검토할 수 있다.
Ragas 및 vLLM 평가자
Ragas 공식 docs는 SingleTurnSample이 user input, retrieved contexts, response, reference를 포함하는 RAG 평가 단위임을 설명한다. Context Precision은 relevant context가 top rank에 배치되는 정도를 평가하며 reference 기반 또는 response 기반 variant가 있다. Faithfulness는 response claim이 retrieved context에서 추론 가능한지의 비율이다. RagService evaluator는 이 계약을 따르며 사내 vLLM OpenAI-compatible endpoint만 호출한다.
vLLM 공식 문서는 /v1/chat/completions 호환 server와 JSON object/schema response format을 지원한다고 설명한다. RagService 평가 prompt는 temperature 0 및 JSON object response를 요구하고 parse/schema 오류를 score로 환산하지 않고 evaluation failure로 기록한다.