개발자

자바스크립트 개발의 지형을 바꾸는 7가지 툴

Matthew Tyson | InfoWorld 2021.05.28


깃허브 수치는 별표 약 3만 8,000개, 주간 NPM 다운로드 횟수는 6만 4,000회다(주간 다운로드 횟수는 정체된 상태). 규모로 보면 중간 정도에 해당하는 옵션이다. 

참고로, HMR은 개발 런타임 시스템이 앱 전체를 다시 로드하지 않고 애플리케이션에서 상태가 변경된 부분만 업데이트할 수 있는 기능이다. 업데이트 간에 대부분의 애플리케이션 상태가 유지되고 완전한 재로드를 할 필요가 최소화되므로 업데이트 속도가 빠르고 개발 작업의 능률도 높아진다. 

pnpm

pnpm은 번들러나 빌드 툴은 아니고 NPM 종속성 툴을 대체하는 역할을 한다. 용도 측면에서 얀(Yarn)과 비슷하지만, 접근 방식은 다르다. 하드링크를 사용해 node_modules 트리를 평탄화하는 방식으로 종속성 관리를 간소화하고 중복 종속성을 방지한다. 

디스크 공간 절약 외에, 이 벤치마크에서 볼 수 있듯이 얼마간의 성능 개선도 가능하다. 벤치마크를 보면 pnpm이 대부분의 작업에서 다른 패키지 관리자보다 높은 성능을 낸다. pnpm에는 패키지를 실행하기 위한, npx와 비슷한 pnpx 툴도 포함된다.  

pnpm의 깃허브 별표 수는 약 1만 1,000개이며 주간 NPM 다운로드 횟수는 약 19만 1,000회다. 스벨트킷(SvelteKit)의 기본 패키지 관리자이며 사용량이 빠르게 느는 중이다. pnpm은 차기 사실상의 표준 종속성 관리자가 될 만한 후보로 꼽힌다. 
 

롤업(Rollup)

롤업은 모든 곳에 ESM 구문을 사용할 수 있게 해주는 번들러다. 일반적으로 사용되는 다양한 구문을 포괄하며(CJS, AMD, UMD, EMS 등), 코드를 바로 작동하는 구문으로 번들링한다. 롤업이 제공하는 또 다른 기능은 이른바 “나무 흔들기(tree shaking)”다. 나무 흔들기란 코드베이스를 분석해 사용되지 않는 가져오기를 제거하는 기능으로, 성능 측면에서 확실히 도움이 된다. 

esbuild를 비롯한 다른 번들러와 마찬가지로 NPM을 통해 package.json 및 node_modules와 연계된다. 

롤업을 사용할 때는 모듈 구문에 대해 잊고 ESM만 사용하면 된다. 롤업은 모든 것이 ESM으로 통합되는 미래 JS 개발 경험을 지금 제공하는 데 목적을 둔다. 

롤업의 작동은 웹팩과 상당히 비슷하지만, 웹팩과 달리 Node.js 출력을 지원한다. 또한 롤업을 사용할 때의 경험이 더 간편하고 매끄럽다는 개발자들도 있다. 롤업은 기본적으로는 빠른 모듈 교체를 지원하지 않는다. 

롤업 커뮤니티는 활발하고 플러그인 생태계도 풍부하다. 2021년 5월 현재 깃허브 별표 수는 약 2만 개, 주간 NPM 다운로드 횟수는 약 480만 회다. 
 

바이트(Vite)

바이트는 원래 뷰(Vue) 전용 빌트 툴이었지만 지금은 범용이다. 스벨트킷의 공식 빌드 솔루션인 만큼 폭넓은 분야에서 사용이 증가하는 중이다. 

바이트는 자바스크립트 개발 환경의 두 가지 요구사항인 dev 모드 실행과 프로덕션용 빌드에 초점을 둔다. 바이트는 번들러는 아니고 프로덕션의 번들링 작업을 롤업으로 전달한다. 

빠른 속도를 목표로 하는 바이트는(vite는 프랑스어로 빠르다는 뜻) 빠른 dev 서버 시작과 빠른 모듈 교체를 내세운다. 실제 사용 경험도 그 주장에 부합한다. 이와 같은 기능의 실행 속도는 웹팩 등과 비교할 때 훨씬 더 빠르다. 

높은 속도의 기반은 ESM 활용과 esbuild를 사용한 사전 번들링이다. ESM을 사용한다는 것은 개발 중에 번들링 작업 부하를 브라우저로 넘길 수 있고, 변경 중 제공된 파일을 확인할 때 더 높은 세분성을 달성할 수 있음을 의미한다. 

바이트는 현재 프로덕션 빌드에 롤업을 사용하지만(CSS 분할 등의 기능을 활용하기 위해) 향후 esbuild로 전환할 가능성이 있다. 

바이트는 개발 경험이 가장 큰 장점이다. 빠른 모듈 교체의 속도는 정말 빠르다. 현재 깃허브 별표 수는 약 2만 7,000개이며 주간 NPM 다운로드 횟수는 약 12만 4,000회다. 지난 2개월 사이 다운로드 횟수가 크게 늘었다. 
 

스노우팩(Snowpack)

스노우팩은 속도에 초점을 둔 또 하나의 번들러이자 dev 서버다. 장점으로 내세우는 특징은 빠른 서버 시작, 지능형 캐싱을 포함한 ESM 지원, 빠른 모듈 교체, 적은 구성을 통한 다양한 파일 형식 지원이다. 스노우팩은 롤업 및 파슬과 비슷한 철학을 공유한다. 

스노우팩은 자바스크립트, CSS 모듈 및 CSS에 대한 빠른 모듈 교체를 기본적으로 지원한다. 또한 활발한 플러그인 커뮤니티도 강점이다. 

깃허브 별표 수는 약 1만 8,000개, 주간 NPM 다운로드 횟수는 약 5만 5,000회다. 
 

자바스크립트 툴의 미래 

웹팩은 그동안 사실상의 표준으로서 그 역할을 충실히 해왔으나, 이제 노후의 조짐을 보이고 있다. 앞으로 더 새로운 환경을 염두에 둔 더 새로운 툴이 더 높은 성능과 향상된 개발자 환경을 제공할 것이다. 

자바스크립트는 여전히 빠르게 발전하는 활발한 개발 영역이다. 자바스크립트 개발자들의 작업 환경은 계속 더 좋아지고 있다. editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.