Babel ? Babel은 javascript 코드를 최신 문법으로 변환해주는 도구이다..! 오래된 브라우저 및 환경에서 최신 javascript 문법을 지원하지 않을 때 사용된다. 따라서 개발자들이 최신 문법을 사용해서 Babel을 사용해서 오래된 버전의 문법을 사용하는 코드로 배포할 수 있다..! Babel에는 주로 두가지 기능이 있다 Transpiling(문법 변환): Babel은 최신 자바스크립트 문법(ECMAScript 2015+ 또는 ES6+)을 오래된 문법으로 변환한다. 이를 통해 최신 문법을 사용하여 코드를 작성할 수 있다. React 코드를 작성할 때 최신 문법을 사용할 수 있게 한다! React의 JSX 코드를 Javascript로 변환!! JSX 코드를 React.createEleme..
Loader webpack은 기본적으로 javascript와 JSON 파일만 이해할 수 있기 때문에 webpack이 css, jpg등 다른 형식의 파일을 이해할 수 있도록 처리한다. Loader는 test, use두가지 속성을 가지고있다. 아래에서 첫번째 rule을 살펴보면 sass, scss, css 파일을 sass-loader, css-loader를 사용하여 처리한다는 의미이다! import, require 문에서 sass, scss, css 파일이 발견되면 번들에 추가하기 전에 sass-loader, css-loader로 변환을 먼저해버려! sass-loader로 처리된 리소스가 css-loader로 전달됨! -> 역순으로 처리 module.exports = { entry: './src/index...
Entry webpack이 dependency 그래프를 생성하는 최초 진입점이며 파일 경로이다. 웹팩의 번들링이 시작되는 시작점 default 경로로는 ./src/index.js로 설정이 되어있다. // webpack.config.js // 웹팩을 실행하면 index.js부터 빌드를 수행한다! module.exports = { entry: './src/index.js' } entry에 들어가는 파일에는 웹 애플리케이션의 시작점과 구조 및 내용이 담긴다. 예를들어 react의 index.js파일을 살펴보면 app.js부터 렌더링을 한다는 것을 알 수 있다! //index.js import React from 'react'; import ReactDOM from 'react-dom'; import './in..
webpack?웹팩은 엄청 많이 쓰이는 오픈 소스 모듈 번들러 라이브러리이다.번들러(Bundler)?번들러는 여러 개로 나뉜 모듈을 하나로 묶어주는 도구이다.의존성이 있는 것들을 찾아서 그룹핑을 해주는 도구!웹팩은 IIFE를 사용해서 번들링을 해서 스코프 충돌에 대한 걱정 없이 안전하게 스크립트 파일들을 연결하거나 결합한다!dependency graph를 생성하여 빌드거대한 자바스크립트 소스코드와 대규모 의존성을 가지고 있는 대형 웹 애플리케이션이 등장함에 따라, 각각의 세분화된 모듈 파일이 무작위로 늘어나게 되었다.이 모듈 단위의 파일들을 호출하여 브라우저에 띄워야 하는데, 자바스크립트의 특성에 따라 발생하기 쉬운 각 변수들의 스코프 문제를 해결해야 하고, 각 자원을 호출할 때 생겨나는 네트워크 쪽의 ..
Pages Next.js에서 pages 디렉토리 아래 원하는 경로 명으로 디렉토리를 생성하고 index.js(jsx, ts, tsx) 파일을 생성하면 해당 경로로 진입할 때의 페이지를 구성할 수 있다. 아래 처럼 chicken 디렉토리를 만들고 index.tsx에 /chicken에 보여줄 컴포넌트를 작성할 수 있다. 또한 디렉토리 아래 [uri 파라미터 이름].js(jsx, ts, tsx)으로 파일을 성하면 dynamic routing을 할 수 있다 . 아래와 같이 디렉토리 구조를 잡는다면 /chicken 경로 뒤에 아무 이름이나 붙이면 [id].tsx가 렌더링된다 /chicken/123121312312, /chicken/gggg 는 모두 [id].tsx를 렌더링한다 Pre-rendering? Next...
Assets(img, Image) next.js의 가장 상위에 있는 public 디렉토리에 프로젝트에 쓰일 static 데이터를 넣을 수 있다. 만약 public 아래 있는 image 디렉토리에 뚱이.jpg라는 파일이 있다면 아래처럼 img 태그에 사용할 수 있다. Image Component img 태그 대신 next.js에서 제공하는 Image 컴포넌트를 이용할 수도 있다. lint를 사용하면 img 엘리먼트 대신 Image 컴포넌트를 이용하라고 경고가 뜸! Image 컴포넌트의 장점은 view port에 보일 때만 이미지를 불러오도록 lazy loading을 할 수 있고 이미지 용량의 최적화, placeholder 제공 등이 있다. Local Image 로컬에 있는 이미지를 import해서 사용하는..