본문 바로가기
Programing/Web

[Web] Framework Build Tool

by 꾸압 2022. 9. 2.

 

<설명>

  - 빌드 관리 도구

  - Source code를 실행시키는 application의 Building 프로세스를 자동케하는 program.

    ==> source code를 compile, test, code review 하여 실행가능한 app 으로 build.

  - 이 process는 compiling, linking, 실행가능한 형태로 code 를 packaging 하는 등의 작업을 행함.

  - Project 정보 관리, Test Build, 배포 등의 작업을 진행.

  - 외부 library를 참조하여 자동으로 다운로드 및 업데이트 관리.

  - Website의 복잡성이 늘어나며 따라오는 사이트의 size, 속도, 3rd party 의존성 관리 streamline 등을 Build Tool이 최적시킴.

 


 

<언어별 build tool>

[Java]

  1) Maven

    - 특징

      * Java의 대표 build tool이었던 Ant를 대체하기 위해 개발.

      * Project 외부 library를 더 쉽게 참조하도록 pom.xml 파일로 명시하여 dependency 관리

      * 참조한 외부 library와 관련한 다른 library로 자동으로 관리.

      * Ant에는 없던 Life Cycle 도입

 

  2) Gradle

    - 특징

      * Andrid Project의 표준 build system

      * Multi-Project build에 최적하여 설계

      * Maven에 비해 더 빠른 처리 속도

      * Maven에 비해 더 간결한 구성

      * Maven에 비해 대규모 Project 작업시 성능이 더 좋음

      * 설치 없이 사용 가능 (Gradle Wrapper)

 


 

[JavaScript]

  1) Webpack

    - 특징

      * ES module, Common JS, AMD module 을 bundle 시킴 (combined 상태에서도 가능)

      * runtime 으로 load 된 것으로 single bundle 이든 mutiple chunk 로든 생성 가능

      * Complie 과정에서 runtime 을 줄이는데 Dependency를 이용.

      * Compile하는 동안 Loader는 파일을 preprocess 가능.

      * Application 에 필요한건 뭐든지 하는 Highly Modular Plugin System

 

  2) Parcel

    - 특징

      * Bundle 시간이 매우 빠름 - Multicore 컴파일링, 빠른 rebuild 를 위한 Filesystem Cache 등

      * plugin 설치가 필요 없음

      * 자동으로 module을 변환함. 심지어 node_module 이여도!

      * Dynamic import() 를 이용하여, 환경설정 없이 code 분할

      * Hot Module 대체안을 위한 Build-in Support

      * 친화적인 Error Logging experience - 문제가 있는 code를 표시

   

  3) Esbuild

    - 특징

      * cache 없이도 매우 빠름. Webpack이 15s 나올 때, Esbuild는 0.63s

      * ES6, common JS modules

      * ES6 module 의 Tree shaking

      * JS 와 Go 를 위한 API

      *TypeScript, JSX 의 syntax

      * Source maps : source code 의 디버깅을 더 쉽게 함.

      * Minification : 압축. code의 기능을 변경하지 않고 source code에서 불필요한 문자를 모두 제거.

      * Plugins : build process의 다양한 부분에 code injection을 가능케 함.

 

    - JS 최고의 build tool 로 쓰이는 이유

      * 극단적으로 빠른 build

      * TypeScript, JS, JSON 의 Loader

      * Minification

      * Code-splitting 지원

      * Bundling

      * CJS, IIFE, ESM 등 다양한 output format 지원

      * Source map generation

      * JSX 의 Transpilation, 새로운 JS syntax를 ES6 로 맞춤.

       ==> Transpile : 한 언어로 쓰인 code를 비슷한 추상 level의 다른 언어로 쓰인 code 로 변환.

 


 

<출처 1> https://themeselection.com/javascript-build-tools/

<출처 2> https://www.youtube.com/watch?v=3Jp9kGDb01g

<출처 3>

 

 

'Programing > Web' 카테고리의 다른 글

[Web] HTTP 상태 코드&요청 메소드 종류  (0) 2022.10.22
[Web] HTTP Life Cycle  (0) 2022.09.07
[Web] Session (세션)  (0) 2022.08.24
[Web] Cookies (쿠키)  (0) 2022.08.23

댓글