[JS] 날짜 라이브러리 비교
FE 개발을 할 때 빠질 수 없는 라이브러리가 바로 날짜 라이브러리입니다.
그렇기에 날짜 라이브러리의 대표 3 대장에 대해 알아보겠습니다.
표
Date-fns
Size : 中
러닝커브 : 높음
실행시간 : 빠름 (398.107 ms)
러닝커브가 높으며, 모듈화 된 접근 방식을 취합니다.
모듈화 된 접근 방식으로 사용하다 보니 최종적으로 번들의 크기가 줄어듭니다.
Date-fns의 함수는 특정 작업을 수행하기 위해 최적화되어 있습니다.
함수 하나가 하나의 작업만 수행하기 때문에, 불필요한 처리가 줄어들고 성능이 향상되지만,
함수 하나씩 계속 작업해야 되기에 불편할 수 도 있습니다.
국제화를 지원하지만, Day.js와 Moment.js에 비해 제한적입니다.
Moment.js
Size : 大
러닝커브 : Low
실행시간 : 느림 (1078.948 ms)
"We now generally consider Moment to be a legacy project in maintenance mode.
It is not dead, but it is indeed done."
2020년 9월, Moment 팀은 라이브러리를 더 이상 개발하지 않고 유지보수만 한다는 선언을 합니다.
큰 단점으로는 사이즈가 다른 날짜 라이브러리들에 비해 크고,
개발 팀에 의해 공식적으로 개발이 중지되었습니다.
현재 사용은 가능하나, 언제 사용이 중단될지 불투명합니다.
Day.js
Size : 小
러닝커브 : 낮음
실행시간 : 보통 (765.358 ms)
가장 큰 장점으로는 사이즈가 작습니다.
사이즈가 작으면 웹 페이지 로딩시간을 단축시키고, 사용자 경험을 향상시킬 수 있습니다.
Day.js의 API는 Moment.js와 유사하여, 러닝커브가 낮습니다.
강력한 국제화를 지원합니다.
성능은 Date-fns보단 낮지만 Moment.js보다는 좋은 성능을 보여주고 있습니다.
기존에는 Moment.js를 많이 사용하였으나,
개발 중단, 지원 중단 가능성, 사이즈 크기 등의 이슈로 인해 사용을 지양하고 있으며,
레거시 코드로 분류되어 대안으로 사용 방법이 거의 유사한 Day.js를 많이 사용하고 있습니다.