본문 바로가기

React/실험실

[React] day.js vs moment.js

얼마 전 day.js의 장점으로 isAfter, isBefore, isBetween에 대해서 이야기했다. 

그 후, moment.js를 살펴보니 moment.js에도 동일한 함수가 있었다. 

 

그렇게 생각하니 day.js와 moment.js는 어떤 부분이 다른지 궁금증이 생겼다. 

찾아보니 기능적인 차이점은 많이 없었다. 

 

1. 크기 

day.js는 moment.js보다 가벼운 라이브러리로 알려져 있다. 

라이브러리의 크기는 성능에 중요한 영향을 미치는데, day.js는 moment.js보다 훨씬 작다. 

 

moment.js는 압축하고 minify 했을 때 약 60KB인 반면, day.js는 압축하고 minify 했을 때 2KB이다. 

이것은 프론트엔드에서 매우 중요한데, 페이지 로드 시간에 영향을 줄 수 있다. 

 

2. 불변성 

moment.js의 일부 메서드는 원래의 날짜 객체를 변경하는 기능을 가지고 있다. 

이러한 기능은 예기치 않은 부작용을 일으킬 수 있다. 하지만 day.js는 항상 새로운 객체를 반환하므로 걱정하지 않아도

된다. 

 

3. 플러그인 시스템 

day.js는 플러그인 시스템을 제공하여 필요한 기능만 선택적으로 추가할 수 있다. 

이는 라이브러리의 크기를 최소한으로 유지하면서도 필요한 기능을 사용할 수 있게 한다. 

 

하지만 moment.js는 모든 기능이 기본적으로 포함되어 있다. 

 

4. 유지보수 

moment.js의 개발팀은 2020년 이후 새로운 기능을 추가하지 않기로 결정하였다. 

버그  수정 및 보안 패치는 여전히 제공하지만, 새로운 기능을 원하는 경우 day.js와 같은 대체품을 검토하는 것이 좋다. 

 

5. 지원하는 브자우저 

moment.js는 IE 8 이상의 브라우저를 지원하지만, day.js는 IE 10 이상의 브라우저를 지원한다. 

 

결과적으로 사용하는데는 day.js와 moment.js는 큰 차이가 없다. 

그말은 moment.js를 사용하다가 day.js로 넘어와도 크게 불편함이 없다는 것이다. 

 

moment.js보다 day.js가 찾아봤을 때 이득이 더 많았으므로 day.js를 앞으로 이용할 것 같다. 

반응형

'React > 실험실' 카테고리의 다른 글

[React] 빌어먹을 iOS - vh 편  (0) 2023.08.29
[React] 메일 템플릿 만들기  (1) 2023.08.07
[React] dayjs  (0) 2023.06.13
[React] MSW 잘 사용해보기  (0) 2023.06.08
[React] Cookie  (1) 2023.06.01