번들러 (bundler)
의존성 있는 '모듈 코드/파일' 들을 하나로 묶어서 관리가 가능하다.
추가 개념
1. Babel
- Babel은 ES6이상 문법을 ES5문법으로 번역해 준다. 근데 ES5 자체에 존재하는 않는 함수들은 번역 자체가 불가능하니 이걸 메꾸기 위해 polyfill을 사용(Map, Promiss, Set 등을 사용 가능한 객체로 만든다.)
2. polyfill
- ES5 자체에 존재하지 않는 함수들, 브라우저에서 지원하지 않는 자바스크립트 코드를 지원 가능하도록 변환한 것이다.
- 하위 자바스크립트의 코드를 사용해 최신 기능과 똑같이 구현하는 방식을 뜻한다.
Bundler의 장점
1. 여러 이유가 있겠지만, HTTP는 단방향 통신이기에 요청 할 파일이 많으면 계속 요청을 해야하니 번들링하여 묶으면 요청 횟수가 적어져 리소스도 덜 차지하고, 속도가 개선된다. (합리적인 로딩시간 = 3초 이내)
2. 구형 브라우저(ES6 이전)에도 코드가 돌아가도록 polyfill을 작성해야하는데, Babel을 사용하면 코드를 변환할 수 있다(보통 해당 기능이 Bundler에 포함되어 있음, 이걸 번들러만의 장점으로 봐야할 진 모르겠네)
번들러는 어떻게 의존성이 있는 파일을 묶을까?
내부 로직은 자세히 모르겠다. 하지만 번들러들이 의존성을 분석하여 이 모든 것을 하나의 파일로 만들지에 대한 의존성 그래프를 생성한다. 사용자(우리)는 단지 진입점만 지정 해 놓으면 된다.
(추후에 한번 번들러를 만드는 실습을 가져보자)
대표적인 Bundler
1. Webpack
2. Rollup
3. Parcel
참고:
https://db2dev.tistory.com/entry/%ED%8F%B4%EB%A6%AC%ED%95%84Polyfill%EC%9D%B4%EB%9E%80
'개발 > 자바스크립트 및 프론트' 카테고리의 다른 글
VS code에 리액트 설치하기 (0) | 2022.04.04 |
---|---|
단방향 / 양방향 바인딩 (0) | 2022.01.24 |
div, span 태그 (0) | 2022.01.19 |
CSS 선택자 (0) | 2022.01.19 |
HTML 에서 빈도수가 가장 높은 태그 (0) | 2022.01.16 |
댓글