Webpack 과 Babel 에 대해 정리하다보니 SWC
까지 오게 되었다.
아래의 내용은 SWC
가 무엇
인지에 대한 짧은 글이며
컴파일러와 번들러의 역할이 궁금하다면 위의 링크를 참고하시면 될 것 같다.
kakao FE 기술블로그 의 내용을 요약 및 보충했다.
SWC
는 컴파일과 번들링을 모두 처리할 수 있는 Rust
언어 기반의 빌드 툴이다.
기존의 트랜스파일링
을 수행했던 바벨과, 코드 경량화
를 수행했던 Terser 가 SWC로 대체되었다.
그 결과로, 트랜스파일링
의 속도는 17배가 빨라졌고 코드 경량화
작업은 7배가 빨라졌다고 한다.
월등하게 빨라진 이유는 Rust
프로그래밍 언어가 이벤트 루프 기반의 싱글 스레드 언어
인 자바스크립트와 다르게 병렬처리
가 가능하기 때문이다.
Babel의 모든 Plugin들이 SWC에서 호환되는 것이 아니기 때문에 적용에 있어 주의가 필요하다.