본문 바로가기

🔥 🔥

webpack 이해하기

반응형

웹팩 webpack

- 웹팩모듈 번들러(module bendler)이다.

 

모듈 번들러 module bendler 란?

-  웹 페이지를 구성하는 html, css, js, images etc... 모두 각각 모듈로 보고 이를 조합해서 병합된 하나의 결과물을 만드는 도구

 

웹팩이 필요한 이유?

- 웹팩이 등장한 이유

1) 파일 단위의 자바스크립트 모듈관리 필요성

2) 웹 개발 작업 자동화 도구 (web task manager)

3) 웹 애플리케이션의 빠른 로딩 속도와 높은 성능

 

1) 파일 단위의 자바스크립트 모듈관리 필요성

- 자바스크립트의 변수는 기본적으로 전역범위를 갖는다. 넓은 변수 범위를 갖기 때문에 어디에서도 접근하기 편리. but, 자바스크립트를 파일 단위로 관리하려는 경우, 변수명이 중복되어 의도치 않은 값을 할당할 수 있다.

=> 이러한 점을 보완 필요 (webpack전에는 AMD, Common.js 사용)

 

2) 웹 개발 작업 자동화 도구 (web task manager)

- 코드 수정뒤 저장하고 브라우저에서 새로고침을 눌러야 변경된 내용 볼 수 있다.

- 웹 서비스를 개발하고 배포시 html, css, js 등 파일을 압축하거나 변환해야 했다.

=> 이러한 일을 자동화 해주는 도구 필요 (Grunt, Gulp 도구 등장)

 

3) 웹 애플리케이션의 빠른 로딩 속도와 높은 성능

- 웹 사이트 로딩 속도를 높이기 위해 파일을 압축하거나 병합 등 다양한 작업을 진행했다.

- 초기 페이지 로딩 속도를 높이기 위해 나중에 필요한 자원은 나중에 요청하는 레이지 로딩(Lazy Loading)이 등장했다.

=> 웹팩은 미리 로딩하지 않고 그때그때 필요한 자원을 요청한다.

 

웹팩을 사용하기 위해서는? => Node.js, NPM이 설치되어있어야 한다.

 

Node.js

-자바스크립트는 브라우저의 동작을 제어하고, 브라우저에서만 실행할 수 있었지만, Node.js는 자바스크립트를 브라우저 밖에서도 실행할 수 있는 환경이다.

*(node.js를 설치하면 npm은 같이 설치된다.)

 

NPM (node package manager)

- 명령어로 자바스크립트 라이브러리를 설치하고 관리할 수 있는 패키지 매니저이다.

 

- 명령어 사용해보기 / 흐름 이해하기

 

1. 새폴더를 만들고 해당 폴더에서 다음 명령어를 실행한다.

 

npm init -y

 

 

2. 명령어가 실행되면 `package.json` 파일이 생성된다. 

- 실제 애플리케이션을 만들때 아래와 같은 속성이 자주 사용된다.

(scripts, dependencies(배포용), devDependencies(개발용))

 

3. [npm 지역설치]

`package.json` 파일이 생성되면 이후 해당 프로젝트에서 사용할 자바스크립트 라이브러리를 설치하면 된다.

 

npm install jquery --save-prod 
= npm i jquery 
// 지역 명령어의 경우 --save-prod를 붙이지 않아도 된다.
// install 대신 i 사용 가능

 

3-1) 위 명령어로 라이브러리를 설치하면 해당 프로젝트에 `node_modules `폴더가 생긴다.

(폴더 하위에 해당 라이브러리 파일이 설치된 것을 확인 할 수 있다.)

3-2) `npm i jquery`는 `package.json`의 `dependencies`에 등록된다.

3-3) `npm i jquery -D`는 `package.json`의 `devDependencies`에 등록된다.

=> jquery와 같이 로직과 직접 관련된 라이브러리는 배포용(dependencies)으로 설치하는 것이 맞다.

 

4. [npm 전역설치]

npm 전역설치는 프로젝트에서 사용할 라이브러리가 아닌, 시스템 레벨에서 사용할 라이브러리를 설치할 때 사용한다.

 

npm install gulp --global 
//--global 대신 -g 사용 가능

 

- 라이브러리가 설치되고 나면 실행창에 해당 라이브러리 이름 입력시 명령어를 인식한다. (gulp)

 

5. 이렇게 설치된 배포용 라이브러리는 `npm run build` 명령어로 빌드하면 최종 애플리케이션 코드 안에 포함 된다.

(-D 옵션으로 설치한 라이브러리는 빌드 후 배포시 애플리케이션 코드에서 빠지게 되므로, 최종 애플리케이션에 포함되어야하는 라이브러리는 -D(개발용)으로 설치하면 안된다.)

+) -D (개발용) 으로 설치해도 되는 라이브러리 => webpack(빌드도구), eslint(코드 문법검사), imagemin(이미지압축)

 

 


 

 

웹팩이란? | 웹팩 핸드북

웹팩이란? 웹팩이란 최신 프런트엔드 프레임워크에서 가장 많이 사용되는 모듈 번들러(Module Bundler)입니다. 모듈 번들러란 웹 애플리케이션을 구성하는 자원(HTML, CSS, Javscript, Images 등)을 모두 각

joshua1988.github.io

`캡틴판교`님 글을 읽고 정리한 글입니다. 👍

'🔥 🔥' 카테고리의 다른 글

Call Stack  (0) 2020.12.17
CORS란?  (0) 2020.12.15
LocalStorage, SessionStorage, Cookie  (0) 2020.12.11
네트워크 기본 지식  (0) 2020.12.09
SSR, CSR과 SPA의 등장배경  (0) 2020.12.09