기초부터 완성까지 프론트엔드 - day6
Day 6
오늘 읽은 범위
- 11장 프론트엔드 개발 도구
- 12장 디버깅
책에서 기억하고 싶은 내용을 써보세요.
npm :
- Node.js의 패키지를 관리하는 도구,
npm CLI
를 사용하여 간편하게 설치할 수 있음 npm install <package>
: 패키지 설치npm install <package>@1.0.0
: 특정 버전으로 패키지 설치npm install
: 의존성 패키지 설치(node_modules)npm install -g
: 전역 설치npm uninstall <package>
,npm uninstall -g <package>
: 패키지 삭제npm install --save-dev <package>
,npm install -D <package>
: 개발 환경에서만 사용할 패키지 설치npm update <package>
: 특정 패키지 업데이트
package.json
- name: 프로젝트 이름
- version: 프로젝트 버전
- dependencies: 배포에서도 필요한 패키지
- devDependencies: 개발에만 필요한 패키지 (배포에서 필요 X)
- repository: 소스 코드가 저장된 레포지토리
- author: 개방자 정보 (회사이름, 팀이름, 이름)
- licenses: 라이선스
- main: 패키지를 설치하는 곳에서 진입점으로 사용할 파일
- files: npm 레포지토리에 배포할 때 포함해야 할 폴더나 파일을 정의
- types: 타입스크립트를 사용할 때 types 속성에 타입 정의 파일을 명시
- scripts: npm run 명령어로 정의된 명령어를 실행할 수 있음
yarn
- 페이스북에서 만든 Node.js 패키지 매니저
- 설치된 모든 패키지를 캐시하여, 병렬로 설치를 수행 (npm보다 성능이 좋음)
- yarn.lock 파일을 통해 일관성 있는 의존성 관리
- 보안이 npm 보다 우수함
webpack
- 가장 많이 사용되는 번들러
- CommonJS, AMD, ES2015 모듈 포맷을 모두 지원
- 기본적으로 자바스크립트 파일이나 JSON 파일만 이해함 →
Loader
를 통해 관리1 2 3 4 5
module.exports = { module: { rules: [{ test: /\.css$/, use: ["style-loader", "css-loader"] }] } };
plugin: 번들 파일이 생성되는 방식을 수정, 환경 변수 주입, 난독화 및 압축과 같은 작업 수행
1 2 3 4 5
const HtmlWebpackPlugin = require("html-webpack-plugin"); module.exports = { plugins: [new HtmlWebpackPlugin()] };
- devServer: 개발 서버 설정
- static: 정적 파일 제공 폴더 경로 (기본: public)
- port: 포트 번호 변경 (기본: 8080)
- https: 개발 환경에서 https 프로토콜을 사용해야하는 경우, https 옵션을 true로 변경
- host: 쿠키를 사용하거나 인증이 필요한 경우 동일한 도메인으로 맞추기 위해 사용
- mode: 개발 환경, 배포 환경에 맞춰 최적화를 위한 설정이나 plugin 옵션들이 자동으로 적용됨
babel
최신 문법을 구형 브라우저에서도 동작하는 코드로 트랜스파일해주는 개발 도구
npm i -D @babel/cli @babel/core @babel/preset-env
@babel/cli
: 트랜스파일을 위한 babel 명령어@babel/core
: 기존의 코드를 분석하고 변환하는 파싱 코드들이 포함@babel/preset-env
: 바벨의 공식 프리셋, 프로젝트 환경 설정에 맞게 트랜스파일에 필요한 플러그인 결정
- 바벨 설정 파일
babel.config.json
: 프로젝트 전체에 적용되는 파일.babelrc
: 현재 폴더에만 적용 (하위 프로젝트에서 독립적인 개별 설정을 위해 사용)
※ 번들러: 모듈 지원이 불가한 브라우저에서의 의존성 관리 문제를 해결해줌
Linter
소스 코드를 분석해 오류나 오타, 잠재적인 버그를 찾아주는 도구
- ESLint: 가장 많이 사용되는 자바스크립트 린터
npm i -D eslint
.eslintrc
,eslintrs.js
,eslintrc.yml
,eslintrc.json
파일 형태로 작성extends
설정 옵션을 사용해 이미 만들어진 규칙을 사용
Prettier: 코드 포맷터
- stylelink: css 린터
.stylelintrc.js
파일 형태로 작성rules
옵션에 객체 형태로 작성
디버깅
개발 단계에서 발생하는 버그의 원인을 찾아내고 수정하는 작업
잘못된 자바스크립트 로직을 찾거나 특정 CSS로 인한 레이아웃 틀어짐 현상 수정, 성능 저하 개선 등
요소에 등록한 이벤트 리스너가 제대로 동작하지 않을 땐?
개발자 도구 - event Listeners
요소에서 발생할 수 있는 모든 이벤트 종류와 정보를 보여줌
에러가 발생한 시점의 정보를 알아내려면?
개발자 도구 - sources
문제가 발생하는 시점의 콜 스택과 소스 정보를 라인별로 알려줌
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
번들러를 사용하는 이유를 알지 못했는데 책을 읽으며 번들러를 통해 커스텀할 수 있는 부분들에 대해 알게 되어 좋은 시간이었던 것 같다.
This post is licensed under CC BY 4.0 by the author.