프로젝트 개요
장편 창작자가 작품별 회차와 세계관을 관리하고 설정 오류 탐지 결과를 확인하는 서비스입니다. 로그인 프론트엔드·백엔드와 작품·회차 API를 개발하고 있습니다. AI 설정 오류 탐지 엔진은 제 담당 범위에 포함하지 않습니다.
주요 기능
- 작품과 회차 원고 관리
- 세계관과 설정 오류 탐지 결과 확인
- Google 로그인
담당 범위
- 로그인 화면과 반환 처리, 보호된 화면 접근 제어
- 토큰 발급·재발급, 쿠키 인증과 CSRF 처리
- 작품 생성·조회·제목 수정과 사용자별 접근 처리
- 회차 상태·원고 관리, 다운로드와 여러 회차 업로드
- Spring Boot
- OAuth2
- JPA
아키텍처
로그인·작품·회차의 구성
담당 · 청록색 테두리와 역할 레이블
- Next.js 프론트엔드와 Spring Boot 백엔드는 로그인·작품·회차 API로 연결됩니다.
- Spring Boot 백엔드와 PostgreSQL은 사용자·작품·회차 데이터를 주고받습니다.
- Spring Boot 백엔드와 Redis는 OAuth 요청·토큰 데이터를 주고받습니다.
- 프론트엔드는 로그인, 백엔드는 로그인·Work·Episode를 담당했습니다. 백엔드는 현재 계층형 MVP이며 도메인이 독립 서비스인 것은 아닙니다.
Next.js 프론트엔드와 Spring Boot API 서버를 연결합니다. PostgreSQL은 사용자·작품·회차 데이터를 저장하고, Redis는 OAuth 요청과 인증 토큰 데이터를 관리합니다.
현재 계층형 구조로 MVP를 먼저 구현하고 있습니다. 서비스 분리는 이후 계획이며, 지금 여러 도메인을 독립 서비스로 분리한 상태는 아닙니다.
문제 해결
브라우저와 서버의 로그인 상태 맞추기
- 구현 과제
- 로그인 반환 처리부터 보호된 화면 접근과 로그아웃까지, 브라우저 상태와 서버의 인증 처리를 함께 연결해야 했습니다.
- 구현
- 프론트엔드에서는 Google OAuth 로그인 화면과 반환 처리, 보호된 화면 접근 제어를 구현했습니다. 서버에서는 JWT 발급·재발급, Redis 기반 OAuth 요청과 리프레시 토큰 관리, 쿠키 인증과 CSRF 처리를 맡았습니다. 로그아웃 이후 브라우저 상태와 현재 사용자 정보도 함께 동기화했습니다.
작품 접근과 여러 회차 원고 처리
- 구현 과제
- 작품별 접근을 처리하고, 여러 회차의 원고 입력을 검증해 일괄 처리하는 기능이 필요했습니다.
- 구현
- Work에서 작품 생성·조회·제목 수정과 사용자별 접근 처리를 구현했습니다. Episode에서는 회차 상태, 원고 수정·조회, UTF-8 다운로드와 여러 회차 업로드의 입력 검증·일괄 처리를 구현했습니다.
결과
로그인 흐름 구현
로그인 프론트엔드·백엔드와 로그아웃 이후의 인증 상태 동기화를 구현했습니다.
작품·회차 API와 테스트 작성
Work·Episode API와 도메인 테스트를 작성했습니다. 프로젝트는 현재 개발 중입니다.
검증 범위
여기에는 구현과 테스트 작성까지 확인된 범위를 기록했습니다. 현재 전체 테스트 통과나 운영 성과를 의미하지 않습니다.
회고 — MVP 구현을 먼저 진행
ILOG에서 서비스 규모에 맞는 기술 선택의 중요성을 배운 뒤, Lorekeeper에서는 계층형 MVP를 먼저 구현하고 이후 서비스를 분리하는 순서로 바꿨습니다. 서비스 분리는 향후 계획입니다.