Frolog는 독서 경험에 게이미피케이션을 적용한 플랫폼으로, 도메인 중심 설계를 기반으로 기능 단위 분리가 이루어진 백엔드 시스템입니다.
- 각 서비스는 독립적인 Node.js 기반 서비스입니다.
- 공통 API 스펙(@frolog/frolog-api)과 공통 유틸(@frolog/common-utils)을 공유합니다.
- Sequelize 기반 공통 모델 모듈(@frolog/models)을 통해 DB 모델 및 MySQL 커넥션을 일관되게 관리합니다.
- 서비스 간 통신은 SSC_TOKEN 기반 인증을 사용합니다.
- 역할: 인증·인가 및 토큰 라이프사이클 관리
- 기능: 이메일/구글 OAuth 로그인, JWT 발급·갱신·폐기, 이메일 인증, 비밀번호 재설정, 계정 탈퇴, 초기 설문조사
- Repo: https://github.com/Team-Frolog/auth-service
- 역할: 사용자 프로필 및 소셜·게이미피케이션 관리
- 기능: 프로필/이미지 CRUD, 팔로우·팔로워, 닉네임 관리, 개구리(뱃지) 시스템, 사용자 활동 피드 집계
- Repo: https://github.com/Team-Frolog/profile-service
- 역할: 도서 정보 검색·조회 및 메타데이터 관리
- 기능: Naver 도서 검색 API 연동, ISBN 정규화, 도서 메타데이터 보강(SEOJI), 사용자 도서 추가 요청, 관리자 배치 업데이트
- Repo: https://github.com/Team-Frolog/book-service
- 역할: 도서 메모·댓글·좋아요·이미지 관리
- 기능: 메모 CRUD, 대댓글 지원 댓글 시스템, 좋아요 추적, 이미지 WebP 변환 및 S3 저장, 공개/비공개 메모 관리
- Repo: https://github.com/Team-Frolog/memo-service
- 역할: 리뷰·메모 통합 커뮤니티 피드 제공
- 기능: 독서 활동 타임라인 제공, 좋아요·댓글 수 집계, 개인화된 좋아요 상태 반환, 관리자 피드 콘텐츠 등록
- Repo: https://github.com/Team-Frolog/feed-service
- 역할: 조건 기반 이벤트 트리거 및 보상 시스템
- 기능: JSON Rules Engine 기반 이벤트 정의, 포인트·아이템 보상, 이메일 발송, 이벤트 이력 기록, 캐스케이딩 이벤트 처리
- Repo: https://github.com/Team-Frolog/event-service
- 역할: 사용자 계정 기본 정보 관리
- 기능: 사용자 생성·조회, 계정 상태 관리, 관리자용 사용자 검색, 서비스 간 사용자 정보 제공
- Repo: https://github.com/Team-Frolog/user-service
- 역할: 도서 리뷰 및 평점 관리
- 기능: 리뷰 CRUD, 평점·태그 관리, 리뷰 통계 제공, 도서/피드 서비스 연동
- Repo: https://github.com/Team-Frolog/review-service
- 역할: 사용자 신고·검토·제재 및 기능 제안 관리
- 기능: 사용자 간 신고 접수, 관리자 신고 검토 및 승인/반려, 제재 기간 설정 및 자동 계정 정지 처리
- Repo: https://github.com/Team-Frolog/report-service
- 역할: 우물(독서 목표 집합)과 우물 아이템(책)을 관리
- 기능: 사용자 우물 아이템 관리, 최대 수량 제한, 이벤트·스토어 서비스 연동
- Repo: https://github.com/Team-Frolog/well-service
- 역할: 인앱 상점·아이템·지갑·포인트 관리
- 기능: 상점 아이템 CRUD, 개구리 수집품 지급, 포인트 기반 구매 시스템, 사용자 지갑 관리, 아이템 소유 추적
- Repo: https://github.com/Team-Frolog/store-service
-
@frolog/frolog-api
서비스 간 API 계약을 정의한 공통 스펙 -
@frolog/common-utils
로깅, 인증 토큰, 해싱, S3 유틸 등 공통 로직 -
@frolog/express-api-server
Express를 사용한 HTTP API 서버 모듈 -
@frolog/models
MySQL 등 DB와 연결되는 Sequelize 기반 공통 모델 모듈