[ solved.ac API ] → 문제 세트 구성
↓
[ Python 자동화 스크립트 ]
↓
[ Chrome (Selenium) ]
↓
[ 사이트 로그인 → 그룹 → 연습 생성 → 문제 입력 ]
↓
[ MongoDB 저장 (문제 세트 정보 + 메타데이터) ]
| 목적 | 도구/기술 |
|---|---|
| 브라우저 자동 조작 | Selenium + ChromeDriver |
| 로그인/연습 생성 자동화 | Python Selenium Script |
| 문제 선정 | solved.ac Open API |
| 데이터 저장 | MongoDB |
| 스케줄링 (주기적 실행) | cron / APScheduler / systemd timer |
| 비밀번호 저장 | .env |
solved.ac API 호출MongoDB에 저장할 항목:
{
"set_number": 17,
"title": "Problem Random Defense 17 (🥇Gold🥇)",
"problems": [1001, 1002, ...],
"start_date": "2025-06-01",
"end_date": "2025-06-14",
"created_at": "2025-05-30T04:00",
"practice_url": "<https://example.com/group/abc/practice/xyz>"
... (알아서 구성)
}