본문 바로가기

Life/TIL

20210817 TIL

Facts

  • 스피드퀴즈 같은 기술 면접을 봄
  • 백신예약 성공 
  • 면접때 대답하지 못한 부분들 다시 공부 

Feelings

  • 나는 작은 카페인에도 심장이 잘 뛴다. 근데 오늘은 카페인이 없어도 엄청 뛰었다. 그냥 계속 긴장상태를 유지하는 듯 하다. 긴장을 좀 풀고 싶은데 간절한 마음이 들어서일까 각성상태가 유지되고 있다. 최선을 다하고 내일은 맥주마시자.
  • 화상면접으로 보면서 라이브 코테(알고리즘) + 기술 면접을 봤는데 정말 정신없이 모든 걸 다 질문하는 스피드 퀴즈같은 면접이었다. 지난 면접들 에서 매끄럽게 말하지 못했던 부분은 더 보완됐고 그냥 다 모르는 부분도 있어서 대답하지 못한 부분도 또 있다. 역시 까도까도 또 나오는 개발 지식들이 놀랍다.  그리고 항상 아는데 대답 잘 못한게 항상 아쉽다. 지금 몰라서 대답 못한 부분은 무죄 매번 대답 못한 부분을 잘 짚고 넘어가자. 저번에도 못한 대답을 이번에도 못한다면 그건 유죄

Finding

웹팩

프론트엔트 프레임워크에서 제일 많이 사용되는 모듈번들러

모듈이란 웹 애플리케이션을 구성하는 자원들(프로그래밍 관점에서는 특정 기능을 갖는 작은 코드 단위, 웹팩에서는 모든 자원)로 모듈을 조합하여 병합된 하나의 파일로 만들어주는 것이 모들 번들러이다. 

 

웹팩이 필요한 이유

  • 자바스크립트 변수의 유효범위 문제를 해결하기 위해 
  • Html,css,js압축, css 전처리기 변환등을 자동화해주기 위해 
  • 서버로 요청하는 파일의 숫자를 줄여 로딩 속도를 높이기 위해
  • Code spliting 지원 -> 코드를 다양한 번들로 분할하고 리소스 우선순위를 제어하여원하는 타이밍에 로딩을 할 수 있다. (Dynamic import 인라인 함수호출을 통해 코드를 분할한다)

Entry: 

  • 웹팩에서 웹 자원을 변환하기 위해 필요한 최초 진입점, 자바스크립트 파일 경로 
  • 엔트리 속성에는 웹 애플리케이션의 전반적인 구조와 내용이 담겨야 한다. 
  • 디펜던시 그래프: 모듈간의 의존 관계가 생기는 구조
  • 엔트리 포인트는 여러개가 될 수 있다. 싱클 페이지가 아닌 특정 페이지로 진입했을 때의 해당 정보 경로를 담고 있다. 

Output:

  • 웹팩을 실행시키고 나온 결과물의 파일경로
  • filename: 웹팩으로 빌드한 파일의 이름
  • Path: 해당 파일의 경로
  • Path.resolve(): 인자로 넘어온 경로들을 조합하여 유효한 파일 경로를 만들어주는 api
  • [name]: 엔트리 속성 포함
  • [id]: 웹팩 내부적으로 사용하는 모듈 id 포함
  • [hash]: 빌드마다 고유한 해쉬값 포함
  • [chunkhash]: 모듈 내용을 기준으로 한 해시값 포함

Loader: 

  • 웹팩이 자바스크립트 파일이 아닌 웹 자원들을 변환할 수 있도록 도와주는 속성 
  • module 이라는 이름 사용함
  • test: 로더를 적용할 파일 유형(정규식으로)
  • use: 적용할 로더 (오른쪽에서 왼쪽으로 적용되기 ㄱ때문에 sㅅyle로더를 제일 앞에 넣어야 한다.)

Plugin:

  • 웹팩의 기본적인 동작에 추가적인 기능을 제공하는 속성, 변환과정 전반에 대한 제어권이 있다.
  • 결과물의 형태를 바꾸는 역할
  • 생성자 함수로 생성한 객체 인스턴스만 추가할 수 있다. 
  • HtmlWebpackPlugin : 웹팩으로 빌드한 결과물로 HTML 파일을 생성해주는 플러그인

 

웹팩 데브 서버 

  • 웹팩 빌드 대상 파일이 변경 됐을 때 저장만 하면 매번 명령어로 실행해주지 않아도  브라우저를 새로고침 해줌 ( 시간 절약 )
  • 데브서버를 실행해 빌드하는 경우 프로젝트 폴더에 빌드한 결과물이 생성되는 것이 아닌 메모리에 저장되어 확인 할 수 없다.
  • 프록시 설정: 데브 서버에서 발생하는  api 요청의 경로를 변경한다. (CORS 문제 해결)

핫 모듈 리플레이스먼트

  • 브라우저를 새로고침하지 않아도 실시간으로 빌드 결과물이 반영되는 것 (지금은 웹팩 기본으로 탑재되어 있다.)

 

소스맵

  • 빌드한 파일과 원본파일을 연결해주는 기능
  • 배포용 파일이 원본 소스의 어느부분인지 확인해 디버깅할 수 있다. 

`module.exports = {

  devtool: 'cheap-eval-source-map'

}`

 

 

웹팩 모드

None, development, production(기본값)

 

 

webpack.common.js

webpack.dev.js

webpack.prod.js

나누어 설정을 관리해 있다. 

Affirmation

  • 나는 할 수 있다.
  • 나는 탐나는 개발자다. 
  • 나는 최고다!!! 

'Life > TIL' 카테고리의 다른 글

20210819 TIL  (0) 2021.08.20
20210818 TIL  (0) 2021.08.19
20210816 TIL  (0) 2021.08.17
20210814 TIL  (0) 2021.08.15
20210813 TIL  (0) 2021.08.14