Skip to content

fix(bot): RSS 폴링 최적화 + pino Error 직렬화 수정#69

Merged
bbbang105 merged 1 commit intodevfrom
fix/rss-polling-optimization
Mar 26, 2026
Merged

fix(bot): RSS 폴링 최적화 + pino Error 직렬화 수정#69
bbbang105 merged 1 commit intodevfrom
fix/rss-polling-optimization

Conversation

@bbbang105
Copy link
Copy Markdown
Owner

@bbbang105 bbbang105 commented Mar 26, 2026

Summary

  • RSS 폴링 시 배치 URL 중복 체크로 DB 쿼리 대폭 감소 (~344개 → ~29개/cycle)
  • pino logger에 Error serializer 등록하여 error: {} 대신 구조화된 에러 출력
  • 에러 로깅 시 raw Error 전달로 스택 트레이스 보존

Changes

파일 변경 내용
packages/bot/src/services/post.service.ts getExistingUrls() 배치 메서드 추가 (IN 쿼리)
packages/bot/src/schedulers/rss-poller.ts pollMember()에서 배치 필터링 적용, 에러 로깅 개선
packages/bot/src/lib/logger.ts error/err 키에 pino.stdSerializers.err 등록

Design Decisions

결정 이유
URL 배치 IN 쿼리 개별 SELECT N개 → IN 쿼리 1개로 DB 부하 92% 감소
postService.create() 가드 유지 race condition 대비 write-time safety net
error + err 두 키 모두 serializer 등록 코드베이스에서 두 키 모두 사용 중

Context

  • pg-boss 커넥션 타임아웃 에러 발생 (Sentry JAVASCRIPT-NEXTJS-K)
  • 근본 원인: DATABASE_URL_DIRECT가 Supavisor pooler 주소 사용 (별도 env 수정 필요)
  • 이 PR은 DB 쿼리 부하 경감 + 로깅 품질 개선

Test Plan

  • 봇 로컬 실행 후 RSS 폴링 로그에서 totalNewItems가 실제 새 글 수만 표시되는지 확인
  • pino 에러 로그에서 error: { message, stack, type } 구조로 출력되는지 확인
  • EC2 DATABASE_URL_DIRECT를 직접 연결 URL로 변경 후 pg-boss 타임아웃 해소 확인

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

- RSS 폴링 시 멤버별 배치 URL 중복 체크 (IN query 1개로 변경)
  - 기존: 피드 아이템별 개별 SELECT (~344개/cycle)
  - 개선: 멤버당 1개 IN 쿼리 (29개/cycle)
- pino logger에 Error serializer 등록 (error: {} → 구조화된 출력)
- 에러 로깅 시 raw Error 객체 직접 전달 (스택 트레이스 보존)

Co-Authored-By: Claude <noreply@anthropic.com>
@bbbang105 bbbang105 requested a review from choihooo as a code owner March 26, 2026 09:31
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
study-admin-web Ready Ready Preview, Comment Mar 26, 2026 9:32am

@bbbang105 bbbang105 added the 🚨 fix 버그 수정 / 에러 해결 label Mar 26, 2026
@bbbang105 bbbang105 merged commit 603a5d0 into dev Mar 26, 2026
8 checks passed
@bbbang105 bbbang105 deleted the fix/rss-polling-optimization branch March 26, 2026 09:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚨 fix 버그 수정 / 에러 해결