본문 바로가기
Web/NPM Packages

Dayjs vs. Moment.js: Dayjs를 사용해야하는 이유

by @__100.s 2024. 2. 2.
반응형

 

 

 

 

 

프로젝트를 진행하다 보면 날짜와 관련된 여러가지 연산이 머리아프게 할 때가 많다. 물론 내가 아직 아기 개발자이기 때문이겠지만... 이런 상황에서 자주 사용되는 날짜 관련 라이브러리가 바로 dayjs와 momentjs인데, 각각의 프로젝트나 상황에 따라 선택되는 이유가 달라지게 된다. 이번 기회에 깔끔하게 정리해보려고 한다.

 

 

Dayjs vs Moment.js

 

Moment.js와 Dayjs는 JavaScript 기반의 날짜 및 시간 라이브러리로, 특히 Moment.js는 과거에 많이 사용되었다. 현재는 Moment.js의 유지보수가 중단되어, 새로운 프로젝트에는 사용이 권장되지 않지만 레거시 프로젝트에서 여전히 많이 사용되고 있다. 

Dayjs는 Moment.js 중단 이후 많은 개발자들 사이에서 주목받게 되었으며, Moment.js와 유사한 API를 제공하면서도 크기가 작아 더 가벼운 라이브러리로 평가받고 있다. 현대적이고 경량화된 대안으로, 새로운 프로젝트에서는 Dayjs를 사용하는 것이 일반적이다.

 

 

1. 크기와 성능 :  Moment.js의 부담과 Dayjs의 경량함

  • Moment.js: Moment.js는 매우 풍부한 기능을 제공하는 대신 크기가 큰 라이브러리이다. Date 객체에 대한 다양한 연산을 지원하기에 앱에서 실제 사용되지 않는 기능이 번들에 포함될 가능성이 높다. 이는 번들 크기에 부담을 줄 수 있고, 성능 손실이 발생하게 된다.
  • Dayjs: Dayjs는 Moment.js의 경량화 버전으로, 주로 개발자들이 자주 사용하는 기본 기능만을 제공하여 작은 크기에 중점을 둔 라이브러리이다. Moment.js와 거의 유사한 API를 제공하지만 크기가 훨씬 작아 초기 로딩 속도 및 앱 크기에 미치는 영향이 적다.

 

2. 모듈성과 번들 최적화 :  필요한 것만 가져오기

  • Moment.js: Moment.js는 모든 기능을 기본적으로 포함하고 있어 번들 최적화가 어렵다. 사용하지 않는 기능까지 모두 번들에 포함되므로 앱의 크기가 크게 늘어나게 된다.
  • Dayjs: Dayjs는 경량하게 설계되어 필요한 기능만 제공한다. 또한, 필요에 따라 플러그인을 통해 추가 기능을 확장할 수 있다. 필요한 모듈만 선택하여 사용하므로 불필요한 부분을 제거하여 번들 크기를 최소화할 수 있다.

 

3. 지속적인 개발과 업데이트

  • Moment.js: Moment.js는 2020년 이후에는 더 이상 업데이트되지 않는다. 따라서 새로운 기능이나 보안 업데이트를 받을 수 없다.
  • Dayjs: Dayjs는 여전히 활발하게 개발되어 새로운 기능 및 업데이트가 지속적으로 이루어진다.

 

결과적으로 새로운 프로젝트에서는 Dayjs를 사용하는 것이 옳다. 레거시 프로젝트의 경우에는 의존성 여부와 프로젝트 요구 사항을 고려하여 이미그레이션 여부를 결정하는게 좋을 듯 하다!

 


참고자료

반응형