몽땅뚝딱 개발자

[Vue.js] 웹팩 본문

Development/Vue.js

[Vue.js] 웹팩

레오나르도 다빈츠 2021. 7. 12. 13:21

출처

 

프론트엔드 개발자를 위한 웹팩 - 인프런 | 강의

1000명이 선택한 웹팩 강의. 새롭게 나온 웹팩 버전에 맞춰 리뉴얼된 강좌입니다. 실습 중심으로 더 쉽게 웹팩을 배워보세요 :), 약 1000명이 선택한 쉽게 배우는 웹팩의 리뉴얼 강좌입니다. 더 쉽

www.inflearn.com

 

webpack

webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.

webpack.js.org

 


 

 

◽ 웹팩이란?

모듈 번들러(Module Bundler)이다.

 

 

◽ 모듈

1) 자바스크립트의 관점

프로그래밍 관점에서 특정 기능을 갖는 작은 코드 단위이다.

ex) math.js => 더하기, 빼기, 곱하기를 하는 3가지 메소드를 가진 js 모듈

 

2) 웹팩의 관점

JS 모듈에 국한되지 않고 웹 어플리케이션을 구성하는 모든 자원을 의미한다.

css, Images, Font, Html 등등의 모든 파일이 하나의 모듈이 될 수 있다.

 

 

 

◽ 모듈 번들링(Module Bundling)이란?

웹서비스를 구성하는 많은 자원들을 하나의 파일로 병합/압축하는 것을 모듈 번들링이라고 한다.

웹팩은 파일들간의 연관관계를 파악하여 하나로 변환하고 최적화한다. (=하나로 합친다는 관점)

 

 

 

◽ 웹팩 관리 방법 2가지

- [package.json]으로 관리하기

"scripts": {
	// --mode=none을 추가하는 형식으로 계속 추가하여 관리한다.
	"build": "webpack --mode=none"
}

 

- config 파일로 관리하기

var path = require('path');

module.exports = {
  mode: 'none',
  entry: './src/index.js',
  output: {
    filename: 'main.js',
    path: path.resolve(__dirname, 'dist')
  }
};

 

 

 

◽ 웹팩을 사용하는 이유

1) Grunt나 Gulp 같은 도구들이 수행하는 일

- HTML, CSS, JS 압축

- 이미지 압축

- CSS 전처리기 변환

- 새로 고침 없이 화면 반영

 

2) 속도 개선

웹팩은 기본적으로 필요한 자원은 미리 로딩하는게 아니라

그때 그때 요청하자는 철학을 갖고 있다.

 

 

 

◽ 웹팩으로 해결하려는 문제

1) 브라우저 별 HTTP 요청 숫자의 제약의 해결

TCP 스펙에 따라 브라우저 별로 한번에 서버로 보낼 수 있는 HTTP 요청 숫자는 제약되어 있다.

그 요청 숫자를 줄이는 것이 어플리케이션의 성능을 높여준다고 할 수 있다.

웹팩은 여러개의 파일을 하나로 합치는 역할을 하기때문에 숫자 제약을 피할 수 있다.

 

2) 원하는 순간에 모듈 로딩 가능

웹팩으로 원하는 타이밍에 모듈 로딩이 가능하다.

 

3) 자바스크립트 변수 유효 범위

ES6의 Modules 문법과 웹팩의 모듈 번들링으로 해결한다.

 

 


 

◽ 라이브러리 종류

- Minifiers: 속도 개선

- Linters: 문법 검사, 에러 검사

- Gulp: 웹 자동화 도구, 웹 스크립트 매니저

 

 

Comments