안녕하세요. 감병주 전문가입니다.
1. 오류 발생 시 자동 재시도(Exponential Backoff)
Rate Limit(429)이나 Timeout이 발생했을 때 바로 반복 요청하지 않고 base_delay × (2 ** attempt) 방식으로 2초 → 4초 → 8초처럼 대기시간을 늘려가며 재시도합니다. 여기에 약간의 랜덤 대기시간을 추가하면 요청이 한꺼번에 몰리는 것도 줄일 수 있습니다.
2. API 키 환경 변수(.env) 관리
API 키를 Python 코드에 직접 적지 말고 프로젝트 폴더의 .env에 GENERATIVE_AI_API_KEY=your_key_here 형태로 저장합니다. Python에서는 python-dotenv를 이용해 불러오고 Git을 사용한다면 .gitignore에 .env를 추가해서 API 키가 외부에 공개되지 않도록 해야 합니다.
3. 요청 상태 로깅(Logging)
단순히 print로 확인하기보다 Python의 logging 모듈을 사용하는 것이 좋습니다. 요청 시간, 성공 여부, 오류 종류, 재시도 횟수, 대기시간 등을 기록해 두면 나중에 봇에서 문제가 발생했을 때 원인을 훨씬 쉽게 찾을 수 있습니다.
이 세 가지를 함께 적용하면 일시적인 API 오류에는 자동으로 대응하면서 API 키는 안전하게 관리하고 문제가 생겼을 때 원인도 추적하기 쉬운 구조로 만들 수 있습니다.