[TIL] 패키지와 모듈, Express.js

최하온·2024년 2월 28일
0

TIL

목록 보기
41/71
post-thumbnail

📃What I learned new


package

모듈 : 재사용 가능한 코드 조각
패키지 : 모듈을 패키지화한 모듈의 모음
패키지 매니저 : 패키지의 설치, 업데이트, 삭제 등을 할 수있는 패키지 관리자. 다른 개발자들의 코드를 다운로드하거나 내 코드를 배포 할 수 있음.
npm : Node Package Manager의 약자로 노드에서 사용하는 대표적인 패키지 매니저
yarn : npm의 단점을 보안하여 나온 패키지 매니저. npm보다 보안성이 뛰어나지만 디스크 용량을 조금 더 사용함.

🤔npm과 yarn 중 어느 패키지 매니저를 사용해야할까?

=> 입맛대로 사용 하면 될 거 같다!

node_modules

📃package.json에 있는 모듈과, 그 모듈들이 의존하고 있는 모든 모듈들을 포함하고 있음.
🚨현재 환경에 맞게 설치되기 때문에 공유나 배포 시에는 제외하고 하기.
👌 대신 package.json 파일과 yarn.lock 파일을 이용하여 동일한 패키지 버전을 설치

package.json

📃프로젝트의 가장 핵심적인 파일로 프로젝트의 정보와 패키지들, 라이센스 정보 등 메타 데이터와 스크립트 실행 필드도 포함 되어 있음.
대략적인 의존성의 버전관리
"type": "module" 추가 시 모듈 시스템 사용 가능

package-lock.json

npm으로 패키지를 설치,수정, 삭제 시 패키지의 의존 관계를 package.-lock.json에 저장함.
구체적인 의존성의 버전관리
👌node_modules 없어도 lock.json만 있으면 다른 환경에서도 일관된 패키지 버전 보장.

yarn

npm install -g yarn : 글로벌 환경에서 yarn 설치
yarn -v : 버전 확인
yarn init : yarn 시작. 이 때 package.json 생성 됨.

Express.js

Node.js로 서버를 용이하게 만들 수 있게 도와주는 웹 프레임워크로 미들웨어를 지원함

미들웨어란?

  • 사용자의 요청과 응답 사이에 위치하며, 특정 기능을 수행하는 함수
  • req, res, next를 매개변수로 가진다.
  • 에러 처리 미들웨어는 err, req, res, next 네가지의 매개변수를 가짐.

yarn add express , npm install express : express 설치

Module

Javascript를 파일 단위로 분리된 코드 덩어리
Javascript 파일은 특정한 기능을 가진 여러 개의 함수와 변수들의 집합체.
코드의 재사용성을 높이고, 코드를 분리하여 관리할 수 있으므로 유지 보수하기 수월함

모듈 시스템

CJS(CommonJS)

Node.js 환경에서 기본적으로 사용되는 모듈 시스템
동적 로딩
폴더를 모듈로 지원함.
require() 로 가지고 옴

ESM(ECMA Script Module)

최신 JavaScript에서 지원하는 모듈 시스템
정적 로딩
경로를 파일까지 지정해주어야 함.
import로 가져옴

API

API(Application Programming Interface)

서로 다른 시스템 간의 통신을 연결해주는 매개체

REST API

REST(Representational State Transfer)

네트워크에서 통신을 구성할 때 이런 구조로 설계하라는 지침

REST API

네트워크 소프트 아키텍처를 지켜 설계하도록 한 API

REST API 구성 요소

1.자원(Resource) : URI

URI은 정보의 자원을 표현 해야함.

2.행위(Verb) : HTTP Method

자원에 대한 행위는 HTTP Method로 표현

HTTP Method를 CRUD의 관점으로 보았을 때

Create: 생성(POST);
Read: 조회(GET);
Update: 수정(PUT), PATCH;
Delete: 삭제(DELETE);

3.표현

Client와 Server가 데이터를 주고 받을 때 적절한 표현으로 응답. 보통 JSON, XML 같은 형식.

REST 원칙에 따라 구현이 잘 되었으면 RESTful 하다고 함

🤔Realization


아리까리 했던 node 입문 1주차를 들으면서 내용 정리를 해보았다. 기초 지식을 다지니까 코드 이해가 조금 더 되는 거 같다.

0개의 댓글