최근 사업건 회고
최근 들어온 사업 중에 어드민 모듈을 맡게 되었습니다.
기존에 webpack으로 구성하던 프로젝트들과 별개로 The State of JS에서 봐왔던 vite라는 번들러의 esbuild 에 대해 경험해보자라는 의견을 내게 되었고 vite 환경으로 구성하게 되었습니다.
사실 많은 글들에서도 보았듯이 vite 프로젝트를 구성하기에는 cra 만큼이나 명령어만으로도 쉽게 구성할 수 있었습니다. (생략)
[장점]
[단점]
위의 경험으로 느꼈던 vite를 현재 운영하고 있는 캘린더 프로젝트에도 적용을 해보면 어떨까라는 생각을 갖게 되었습니다. 지난 포스트에서도 몇번 적은적이 있었지만, webpack과 rollup의 환경으로 캘린더 앱 자체를 빌드하거나, 캘린더 앱의 위젯 컴포넌트를 배포하거나의 환경으로 구성되어 있습니다.
webpack의 devServer를 사용하다 보니 코드 변경이 일어날 때 3초에서 최대 5초까지 reload 되면서 생산성이 많이 떨어진다고 생각하였고, vite 를 사용하면서 얻게 된 장점을 적용해보면 어떨까하는 마음에 적용하게 되었습니다.
먼저 적용하기에 앞서 기존 webpack 으로 구성된 프로젝트에 esbuild를 어떻게 적용하는지 살펴보았습니다.
생각보다 적용법은 되게 간단하였습니다.
기존에 적용하였던 babel-loader 와 ts-loader를 대체하는 것이었습니다. 또한 esbuild-loader 에서 제공하는 EsbuildPlugin을 사용하여 minimizer를 적용하였습니다.
63868ms 에서 17906ms로 약 71.94% 정도 개선되었습니다.
또한 assets 빌드시간도 3204ms 에서 502ms 로 약 82% 정도 개선 된 것으로 보여지게 되었습니다.
급하게 정해보다보니 많은 테스트를 못해보기도 했고, 또한 더 최적화 및 고도화를 진행해보진 못했지만 프로젝트를 운용하면서 점차 개선된 부분이 있다면 추가적인 글을 기술 하겠습니다.
좀 더 나은 의견이나 좋은 사례들 있으면 공유 주시면 더욱 적용해서 발전시키고 싶습니다.
공감하며 읽었습니다. 좋은 글 감사드립니다.