파이썬 `datetime` 비교가 실패하는 이유 (Naive vs Aware) — 그리고 해결 방법
(dev.to)파이썬 datetime 객체 비교 시 발생하는 Naive와 Aware 타입 불일치 오류의 원인을 분석하고, 모든 시간 데이터를 UTC 기반의 Aware 객체로 통일하여 시스템의 치명적인 런타임 에러와 논리적 결함을 방지하는 해결책을 제시한다.
이 글의 핵심 포인트
- 1Naive(타임존 없음)와 Aware(타임존 있음) 객체 간의 비교는 TypeError를 발생시킴
- 2가장 권장되는 해결책은 모든 datetime 객체를 `timezone.utc`로 통일하는 것
- 3`utcnow()` 사용 시 에러 없이 잘못된 결과가 나오는 'Hidden Bug' 위험 존재