Aug 2026 · 5 days
Discord Competition Bot
A personal Discord bot that returns unseen competition announcements, eligibility, application dates, and links via the /최신 command.
Overview
A personal bot that reduces repetitive visits to competition websites and the effort of distinguishing new announcements. The Discord /최신 command returns unseen announcements with open or upcoming applications, eligibility, dates, and detailed links.
- Period: August 2026 · 5 days
- Team: Solo project
- Role: Backend and infrastructure
Contributions
- Announcement collection and new-item detection, request validation, I/O optimization, and regression tests
- API Gateway and Lambda setup, AWS SAM deployment configuration, and CloudWatch logging
Fewer External Requests and Bounded Concurrency
Problem
Repeated detail requests for known announcements and individual database calls accumulated, taking roughly five minutes even when no new announcements existed.
Approach
Fetch the list, check known announcements with BatchGetItem, then retrieve and save details only for new items. Reduced external requests and applied bounded concurrency. Increased items per page from 100 to 1,000 and retried unprocessed keys.

| Stage | Action |
|---|---|
| List HTTP | Fetch announcement list |
| BatchGetItem | Check existing announcements in a batch |
| New announcements | Fetch details and persist |
| No new announcements | Update lookup state |
Results
- Worker execution time: 299.5s → 17.2s, approximately 94.2% lower
- List HTTP requests: 30 → 5
- DynamoDB writes in a run with no new announcements: 626 → 1