엘리스 SW 엔지니어 트랙

[엘리스 SW 엔지니어 트랙 2기 / TIL] Week 06 - NPM, Node.js, express

wookhyung 2022. 5. 18. 22:49
728x90

1. 오늘 공부한 내용  📝

NPM이란?

Node Package Manager

  • 패키지 관리 도구이자 공유를 위한 온라인 패키지 저장소의 이름
  • 엄청난 양의 오픈소스 패키지가 저장되어 있음
  • 엄청난 양의 오픈소스 패키지가 저장되어 있음

package.json

dependencies :

  • 프로젝트의 의존성 패키지 목록 및 버전을 명ㄱ시
  • npm install 혹은 npm install —save 실행 시 여기에 추가

 

devDependencies :

  • 개발 및 테스트에만 필요한 의존성 패키지 목록 및 버전을 명시
  • npm install —save-dev 실행 시 여기에 추가

 

package-lock.json

  • npm 사용해서 package.json을 수정하면 자동으로 생성되는 파일
  • 의존성 트리에 대한 정보를 가지고 있음
  • 명확한 버전을 명시하여 버전간 충돌을 방지
  • git에 업로드 시 같이 올려야 함

 

package.json : script

  • npm run 명령어를 실행할 스크립트 작성
    • 주로 자주 반복되는 실행 코드, 빌드, 테스트에 많이 사용
    • 다양한 옵션을 주는 경우, 미리 세팅되어 편리함
    • 처음 보는 사람도 사용할 수 있도록 만들어줌
> npm set-script hi "echoi 'Hello'"
> cat package.json

{
	...
	"scripts": {
		"hi": echo 'Hello'"
	},
...
}

> npm run hi
Hello
  • 저장된 패키지의 명령어를 사용할 수 있음
  • : node_modules/.bin 내 명령어 호출
  • start, test 같은 경우는 예외적으로 run을 생략하고 호출 가능 (ex. npm start)

NPX 사용법

  • 패키지를 손 쉽게 실행하기 위한 명령어
    • NPM 5.2.0 버전 이상부터 포함됨
    • 만약 없다면 npm install -g npx 실행
    • react 공식 문서에도 사용중 (npx create-react-app my-app)
npx cowsay Helloooo~ --no-install

모듈

  • 어플리케이션을 구성하는 개별적 요소
    • 보통 파일 단위로 분리
    • 필요에 따라 명시적으로 로드
    • 기능 별로 분리하여, 개발 효율과 유지 보수에 탁월
  • SSR, CSR 비교

  • 라우팅(Routing)이란?
    • 클라이언트가 요청한 엔드포인트(URI)에 따라 응답을 매칭 시켜주는 것
  • 프레임워크
    • 프레임워크는 자동차의 뼈대(프레임)을 의미
    • 라이브러리는 자동차의 부품(바퀴 등)을 의미

프로젝트의 전체적인 틀을 제공 받을 수 있음

  • 빠른 개발을 위해서 이제는 거의 필수 요소!

2. 어려웠던 내용  🤯

3. 궁금한 내용 / 부족했던 내용  🧐

4. 느낀 점 🤔