1. 웹 프레임워크의 일종이다. (프레임워크란 어떠한 틀 안에서 정해진 규칙에 따라 작업을 하는 것이다. 작업자에게 여러 가지를 제공하여 개발에 편의를 더해준다.)

 

2. 웹 서비스를 구성하기 위한 필수 구조 요소를 빠르게 제작 가능하다.

 

3. HTTP요청, 응답, HTML 템플릿 엔진, MVC 구조 제공

 

4. 프로젝트 구조를 설계하고 구성하는 것에 대한 부담을 줄이고 기능 개발에 집중을 할 수 있도록 도와준다. 

 

5. Express.js 생성

  • 아래의 명령어를 차례로 입력하여 express의 기본 구조를 형성한다.
  • npm install express-generator -g
  • express 7view=ejs myapp -> myapp의 이름은 원하는대로 설정하면 된다.
  • cd myapp
  • npm install
  • npm start

생성된 디렉토리 구조

 

6. 라우팅

  • HTTP 요청에 따라 알맞은 응답을 보내주는 경로를 설정해주는 일
  • router를 만들고 module.exports하는 것을 까먹지 말자

 

7. middleware

  • 미들웨어는 생각보다 복잡한 개념이 아니다. 요청에 대한 처리를 하는 함수를 의미한다.
  • app객체에서 app.use(middleware)로 사용하면 된다.
  • (req, res, next) => middleware가 가지는 인수이다.
  • (err, req, res, next) => 오류처리를 하는 middleware이다. 다른 middleware에서 next()안에 인자가 담겨오면 곧장 오류처리 middleware로 이동하여 로직이 처리된다. 

'Node.js' 카테고리의 다른 글

Node.js(3) - Module  (0) 2022.05.09
Node.js(2) - NPM  (0) 2022.05.09
Node.js(1) - Introduction  (0) 2022.05.09

1. Module의 기본 개념

1. 반복되는 코드를 따로 분리하여 하나의 파일로 작성하여 모듈화 하는 것이다.

 

2. npm package들이 모듈로 형성되어 있다.

 

3. 프로젝트가 커질 수록 반복되는 코드의 사용을 효율적으로 관리 가능 하게 한다.

 

4. ES6의 import, export문법과 유사한 사용법을 가지고 있다. 

 

2. 사용법

-cal.js

function add(a, b) {
    return a + b;
}

const sub = (a, b) => {
    return a - b;
}

const mul = (a, b) => {
    return a * b;
}

module.exports.add1 = add; //add함수를 모듈로 빼는데 그것을 add1라는 이름으로 뺀다.
module.exports.mul = mul;
module.exports.sub = sub;
module.exports = {
    add1: add,
    sub: sub,
    mul: mul
}
  • module을 내보낼때는 위와 같은 방식으로 내보낼 수 있다. 객체의 속성 형태로 내보내거나 혹은 객체의 key-value형태로 내보낼 수 있다.

 

-app.js

const cal = require("./cal"); //우리가 가져온 모듈을 cal이라는 객체로 할당하겠다!
console.log(cal.add1(5, 3));
console.log(cal.sub(5, 3));
console.log(cal.mul(5, 3));
  • module을 사용할 파일에 와서 require를 이용해 module의 경로를 삽입하여 가져온다.

'Node.js' 카테고리의 다른 글

Node.js(4) - Express.js  (0) 2022.05.09
Node.js(2) - NPM  (0) 2022.05.09
Node.js(1) - Introduction  (0) 2022.05.09

1. NPM이란?

1. Node Package Manager의 약자로 Node.js 프로젝트를 관리하는 필수적인 도구이다.

 

2. 이것은 온라인 저장소와 커맨드 라인 툴로 구성되어 있다.

  • 온라인  저장소: Node.js 개발을 위한 오픈소스 package(라이브러리) 저장소이다. 필요한 라이브러리를 검색, 설치 및 활용을 할 수 있다.
  • 커맨드 라인 툴: 프로젝트 관리를 위한 다양한 명령어를 제공한다.
    1. 저장소에서 라이브러리, 도구 설치
    2. 프로젝트 설정 관리
    3. 프로젝트 의존성 관리

3. npm 대표 명령어

명령어 npm init 프로젝트 생성(초기화)
npm install package 설치(의존성 추가)
npm remove package 삭제
npm start 프로젝트(스크립트) 실행
파일/디렉토리 node_modules 프로젝트 package 저장
package.json 프로젝트 관리(dependency 버전 등)
package-lock.json package(의존성, dependency, 관리)
의존성 버전 고정 역할담당

 

'Node.js' 카테고리의 다른 글

Node.js(4) - Express.js  (0) 2022.05.09
Node.js(3) - Module  (0) 2022.05.09
Node.js(1) - Introduction  (0) 2022.05.09

1. Node.js의 탄생

Browser에서 JavaScript코드가 실행할 수 있게 해주는 V8엔진이 있다면 Node.js는 Browser가 아닌 외부 환경에서도 JavaScript코드가 실행 가능하게 해주는 실행기이다.

 

2. Node.js의 특징

node.js의 특징을 한 줄로 요약한다면 싱글 스레드 - 비동기 - 이벤트 기반이라고 할 수 있다.

 

1. Thread란?

  • 명령을 실행하는 단위이다.
  • 한 개의 스레드는 한 번에 한 가지 동작만 실행 가능하다.

2. 비동기란?

  • 동작을 실행한 후 완료가 되길 기다리지 않는 방식이다.
  • 즉 동작을 실행시키는 데만 집중을 하고 완료에는 신경을 쓰지 않는다. 

3. 이벤트 기반이란?

  • 비동기 동작의 완료를 처리하는 방법이다.
  • 비동기 동작은 해당 동작을 실행 후 그 이후는 전혀 신경을 쓰지 않는다. 대신 해당 동작이 완료될 경우 실행할 함수를 미리 등록하여 비동기 동작이 완료되면 미리 등록된 함수가 실행된다.

4. 정리

  • 싱글 스레드 기반이기 때문에 멀티 스레드와 달리 JavaScript코드를 한 번에 한 가지 동작밖에 하지 못한다.
  • 그렇기 때문에 여러 동작을 처리하기 위해 비동기 동작이 필요하다.
  • 비동기 동작의 처리는 위해서 이벤트 기반으로 동작을 하게 된다.

 

3. Node.js의 구성

1. Browser에서 JavaScript코드를 실행 가능하게 해주는 V8엔진을 가져왔다.

2. 이벤트 루프의 일종인 libuv가 있다.

3. Browser에서 Web API역할을 하는 Node.js 기본 라이브러리들이 있다. 

'Node.js' 카테고리의 다른 글

Node.js(4) - Express.js  (0) 2022.05.09
Node.js(3) - Module  (0) 2022.05.09
Node.js(2) - NPM  (0) 2022.05.09

+ Recent posts