독서 활동(리뷰·메모)을 시간순으로 통합 제공하는 독서 게이미피케이션 플랫폼 Frolog의 커뮤니티 피드 도메인 서비스입니다.
사용자 리뷰와 메모를 하나의 타임라인으로 조회하고, 좋아요·댓글 상태를 집계하며, 관리자가 피드 콘텐츠 를 등록합니다.
- 리뷰·메모 통합 피드 조회 (시간순 정렬)
- 페이지네이션 (limit: 1-100, 기본값 10)
- 특정 시간 이후 콘텐츠 필터링 (ref_time)
- 사용자별 좋아요 상태 포함 (인증 시)
- 콘텐츠별 좋아요 수·댓글 수 집계
- 공개/비공개 메모 필터링
- 관리자 전용 피드 콘텐츠 등록
- Node.js (ESM), Express 기반
@frolog/express-api-server - ORM: Sequelize (
@frolog/models) - 공통 유틸:
@frolog/common-utils(HashId 인코딩/디코딩 등) - API 계약:
@frolog/frolog-api - Lint/Format: ESLint, Prettier
npm install
npm run dev # 개발 (nodemon)
npm start # 프로덕션
npm run lint # 코드 규칙 검사
npm run doc # JSDoc 생성src/
index.js # API 서버 부트스트랩 및 라우팅
services/
getFeed.js # 피드 조회 (리뷰+메모 통합, 페이지네이션, 좋아요/댓글 집계)
postFeedContent.js # 피드 콘텐츠 등록 (관리자 전용)src/index.js에서 @frolog/frolog-api 스펙과 서비스 로직을 매핑합니다.
- GET: GetFeed (피드 조회, 공개 엔드포인트)
- POST: PostFeedContent (피드 콘텐츠 등록, 관리자 전용)
없음. 모든 작업은 HTTP 요청 기반으로 처리됩니다.
- GetFeed: 공개 API (인증 불필요). 인증 시 개인화된 좋아요 상태 제공, 미인증 시 null 반환.
- PostFeedContent: 관리자 전용 (is_admin=true 필수). 권한 없을 시 403 Forbidden 반환.
- HashId 기반 ID 인코딩/디코딩으로 내부 정수 ID를 외부에 노출하지 않습니다.