dateutil 대신 표준 라이브러리로 시간 계산하기!
dateutil 라이브러리는 강력하지만, Python 2.7 지원을 위해 six에 의존하여 설치 시 오버헤드가 발생함
relativedelta를 사용한 시간 계산을 datetime.timedelta 및 calendar.monthrange를 활용하여 대체함
표준 라이브러리 사용으로 설치 시간, import 시간, 런타임 시간을 개선하고, 코드 가독성을 높임
dateutil 라이브러리 사용의 문제점
dateutil 라이브러리는 relativedelta를 통해 유연한 날짜 및 시간 계산을 제공하지만, six에 대한 의존성으로 인해 불필요한 라이브러리 설치가 발생한다. 구체적으로, Python 3.10 이상 버전에서는 six가 필요하지 않음에도 불구하고 의존성을 갖게 되어 설치 속도를 저하시킨다. 따라서, 프로젝트의 빌드 시간과 의존성 관리 측면에서 개선의 여지가 있다.
표준 라이브러리 활용을 통한 개선
표준 라이브러리인 datetime.timedelta와 calendar.monthrange를 사용하여 dateutil의 기능을 대체할 수 있다. 구체적으로, 6개월 후의 날짜 계산은 timedelta(days=180)으로, 월의 마지막 날짜 계산은 calendar.monthrange를 활용하여 구현한다. 반면, 복잡한 날짜 계산 로직은 코드 가독성을 해칠 수 있으므로, 적절한 주석과 함께 사용해야 한다.
실제 적용 가이드 및 추가 팁
dateutil을 제거하고 표준 라이브러리로 대체함으로써 설치 시간, import 시간, 런타임 시간을 개선할 수 있다. 따라서, 프로젝트에서 dateutil의 사용 여부를 확인하고, 대체 가능한 부분을 찾아 리팩토링하는 것이 좋다. 또한, datetime 모듈을 dt로 import하여 모듈과 클래스 간의 모호성을 줄이는 Adam Johnson의 팁을 활용하는 것도 좋은 방법이다.