사소한 개발지식/로드맵(FE)

[로드맵] FrontEnd - Tools #3

2023. 3. 13. 19:23
목차
  1. 2. Package Manager
  2. 🔎 npm & yarn
  3. npm
  4. yarn
  5. npm vs yarn
  6. package.json
728x90
반응형

Front-end 로드맵 중 Tools 부분 - 드림코딩

https://www.youtube.com/watch?v=TTLHd3IyErM - 드림코딩 Front-end 로드맵 영상

Tools

2. Package Manager

🔎 npm & yarn

npm과 yarn은 Node.js 의 패키지 관리자로 전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스에 올리면 npm, yarn 과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다. 그리고 명령 줄 인터페이스(CLI)를 통해 패키지 설치 및 삭제뿐 아니라 패키지 버전 관리, 의존성 관리도 편리하게 할 수 있다.

 

npm

npm 은 Node Package Manager의 줄임말로 노드를 설치할 떄 자동으로 설치되는 기본 패키지 관리자. 사람들이 노드 패키지를 만들고, 업로드하고, 공유할 수 있는 공간으로 누구나 온라인 플랫폼에 개시된 패키지를 사용할 수 있으며 CLI를 통 해 패키지 설치 및 제거가 가능하다.

 

yarn

yarn은 2016년 페이스북에서 개발한 패키지 관리자입니다. React와 같은 프로젝트를 진행하며 겪었던 어려움을 해결하기 위해 개발되었으며, 속도나 안정성 측면에서 npm 보다 향상 되었다.

 

npm vs yarn

  • 속도
    npm과 yarn의 주요 차이점 중 하나는 패키지 설치 프로세스를 처리하는 방법이다. npm은 패키지를 한번에 하나씩 순차적으로 설치하는 반면 yarn은 여러 패키지를 동시에 가져와 설치하도록 최적화 되어 있어 패키지 설치 속도 측면에서 yarn이 npm 보다 빠르다.
  • 보안
    yarn은 보안 측면에서 npm보다 더 안전한 것으로 알려져 있다. npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행한다. 이로 인해 보안 시스템에 몇 가지 취약성이 발생하며 나중에 심각한 문제가 발생할 수 있다. 반면에 yarn은 yarn.lock 또는 package.json 파일에 있는 파일만을 설치하기 때문에 더 보안 측면에서 안전하다. 그러나 npm도 최신 업데이트에서 보안 업데이트도 크게 향상되었다.
  • 명령어
동작 npm yarn
dependencies 설치 npm install yarn
패키지 설치 npm install [패키지명] yarn add [패키지명]
dev 패키지 설치 npm install --save-dev [패키지명] yarn add --dev [패키지명]
글로벌 패키지 설치 npm install --global [패키지명] yarn global add [패키지명]
패키지 제거 npm uninstall [패키지명] yarn remove [패키지명]
dev 패키지 제거 npm uninstall --save-dev [패키지명] yarn remove [패키지명]
글로벌 패키지 제거 npm uninstall --global [패키지명] yarn global remove [패키지명]
업데이트 npm update yarn upgrade
패키지 업데이트 npm update [패키지명] yarn upgrade [패키지명]

 

package.json

Node.js 프로젝트에서 사용하는 많은 패키지의 의존성을 관리할 수 있는 파일로 이미 작성 된 package.json을 통해 동일한 개발 환경을 빠르게 구축할 수 있다.

{
  "name": "emoji",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "node-emoji": "^1.10.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}
Key Value
name 프로젝트 이름으로, version과 함께 필수 항목이다. url로 사용되고, 설치할 때 디렉토리 이름이 되기 떄문에 url이나 디렉터리에서 쓸 수 없는 이름은 사용이 불가능하며 node나 js도 사용 불가.
name은 214자보다 짧아야 하며 점(.)이나 밑줄(_)로 시작할 수 없다. 대문자를 포함해서는 안 되며, require() 함수의 인수로 사용되며 짧고 알기 쉬운 것으로 짓는것이 좋다.
version 프로젝트 버전을 정의한다. 3단계 버전을 사용하며, - 로 태그 이름을 적을 수 있다.
description 프로젝트 설명으로, 문자열로 기술한다. npm search로 검색된 리스트에 표시되기 때문에 사람들이 찾고 이해하는데 도움이 된다.
keywords 프로젝트를 검색할 때 참조되는 키워드로 npm search로 검색된 리스트에 표시된다.
homepage 프로젝트 홈페이지 주소로 url 항목과는 다르며, url을 설정하면 예상치 못한 움직임을 하게 되므로 주의가 필요하다.
author 프로젝트 작성자 정보로, 한 사람만을 지정한다.
contributors 프로젝트에 참여한 공헌자 정보로, 여러 사람을 배열로 지정할 수 있다.
repository 프로젝트의 소스 코드를 저장한 저장소의 정보로 소스 코드에 참여하고자 하는 사람들에게 도움이 될 수 있다. 프로젝트의 홈페이지 url을 명시해서는 안 된다.
scripts 프로젝트에서 자주 실행해야 하는 명령어를 scripts로 작성해두면 npm 명령어로 실행 가능하다.
config 소스 코드에서 config 필드에 있는 값을 환경 변수처럼 사용할 수 있다.
private 이 값을 true로 작성하면 중앙 저장소로 저장하지 않는다.
dependencies 서비스를 배포할 때 쓰이는 모듈을 관리하기 위한 부분. 일반적으로 package.json에서 가장 많은 정보가 입력되는 곳이다.
애플리케이션을 설치할 때 이 내용을 참조하여 필요한 확장 모듈을 자동으로 설치하고 때문에 개발한 애플리케이션이 특정한 확장 모듈을 사용한다면 여기에 꼭 명시 해줘야 한다.
devDependencies 개발할 때만 사용하는 확장 모듈을 관리한다.
engine 실행 가능한 노드 버전의 범위를 결정한다

 

참조
https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html
https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-노드-npmnode-package-manager
728x90
반응형
저작자표시 (새창열림)
  1. 2. Package Manager
  2. 🔎 npm & yarn
  3. npm
  4. yarn
  5. npm vs yarn
  6. package.json
'사소한 개발지식/로드맵(FE)' 카테고리의 다른 글
  • [로드맵] FrontEnd - Testing #2
  • [로드맵] FrontEnd - Testing #1
  • [로드맵] FrontEnd - Tools #2
  • [로드맵] FrontEnd - Tools #1
KimBY
KimBY
웹개발과 관련된 개발지식 모음
KimBY
B.Y Kim의 개발노트
KimBY
전체
오늘
어제
  • 분류 전체보기 (99)
    • 사소한 개발지식 (49)
      • PHP (2)
      • JavaScript (15)
      • NodeJS (0)
      • JAVA (2)
      • 잡?지식 (4)
      • 로드맵(FE) (22)
      • React (4)
    • 개발노트 (6)
      • 포트폴리오사이트 (6)
    • 프로그래머스 (33)
      • Level1(JS) (0)
      • Level2(JS) (33)
    • 백준알고리즘 (11)
      • 단계별로 풀어보기3(for문) (11)
    • 잡담 (0)

인기 글

최근 글

최근 댓글

태그

  • Level2
  • javascript
  • 프로그래머스
  • 백준알고리즘
  • FE로드맵
  • frontend
  • CSS
  • react
  • 단계별로풀어보기
  • 로드맵
hELLO · Designed By 정상우.
KimBY
[로드맵] FrontEnd - Tools #3
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.