콘텐츠로 이동

App Backend

App Backend는 SOHRI의 REST API 전용 Java 25·Spring Boot 4 서비스입니다. 회원 인증, 워크스페이스 관리, 시나리오 저작, 대화·분석 결과 조회를 제공하며 PostgreSQL 16을 JPA/Hibernate로 사용합니다.

이 문서는 sohri-app-backend의 main 00fd523을 기준으로 작성했습니다. 물리 스키마의 정본은 이 저장소의 schema.sql 사본이 아니라 sohri-db입니다.

실시간 처리 서비스가 아닙니다

App Backend에는 WebSocket 엔드포인트와 음성 처리 파이프라인이 없습니다. Socket Backend가 실시간 대화와 분석 결과를 PostgreSQL에 기록하고, App Backend가 같은 DB에서 이를 REST로 조회합니다. 두 서비스 사이에 직접 HTTP 호출은 없습니다.

책임

  • 이메일·비밀번호 회원가입, 로그인, access/refresh JWT 발급과 refresh 회전
  • 워크스페이스 생성, 소속 조회, API key와 단기 client-secret 발급
  • 워크스페이스별 일반 시나리오와 이력 관리
  • 전역 시나리오 템플릿 등록 전 Graph Builder 검증
  • 대화 목록·상세·통계·분석 결과와 보관 음성 조회
  • 회원 프로필, 개인 TTS 음색 설정, 사용자 그룹 관리

중요한 경계

  • 로그인 JWT는 App Backend REST 인증용 HMAC 토큰입니다. Socket Backend가 이 토큰을 소비한다고 가정하지 마세요.
  • 실시간 접속용 client-secret은 별도 Ed25519 키로 서명합니다. 무상태이며 만료 전까지 재사용 가능한 토큰이지 일회용 토큰이 아닙니다.
  • App Backend가 Graph Builder를 호출하는 저장 경로는 POST /v1/scenario-templates의 사전 검증입니다. 배포·게시 호출은 없습니다.
  • 일반 POST /v1/scenarios는 Graph Builder 검증 없이 시나리오와 이력을 저장합니다.
  • voicePreset 계약은 프리셋 코드 하나입니다. provider, model, vendor parameter를 클라이언트 계약으로 복제하지 않습니다.

문서 안내

구현 상태 표기

이 문서에서 구현됨은 기준 커밋의 코드 경로가 존재한다는 뜻입니다. 미구현/현재 격차는 설정·인가·운영 통제가 아직 코드나 배포 템플릿에 완결되지 않았다는 뜻입니다. 특히 운영 투입 전에는 보안과 현재 격차를 먼저 확인하세요.