본문 바로가기
타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)/TIL

웹풀사이클 11일차

by 슈크림 붕어빵 2023. 12. 5.

HTTP 메소드

  • post
  • get
  • put
  • delete

Node.js

백엔드에만 사용하는 것이 아닌 리액트, 뷰 등에 많이 사용할 수 있다. 예) 넷플릭스, 에어비앤비, NASA 등

즉, 웹 브라우저 밖에서 javascript가 나올 수 있도록 해준 것이 node.js이다.

 

우리 나라는 정부가 표준으로 spring을 지정했기 때문에 spring의 비중이 높지만 스택오버플로우에서는 웹 프레임워크&테크놀로지 부문에서  node.js는 1위를 차지할 정도로 인기가 많다.

 

특징

  • 싱글스레드 - 하나의 스레드
  • 이벤트기반 - 이벤트가 발생하지 않으면 일하지 않는다
  • 논블로킹 I/O -  대기 시간이 있으면 다른 작업을 한다

논 블로킹 예시

function first() {
  console.log("1");
}
function second() {
  console.log("2");
}
function third() {
  console.log("3");
}

first();
setTimeout(second, 2000);
third();

 

출력

1

3

2

 

모듈

  1. 내장모듈 ex- setTimeout()
  2. 외부 모듈 - npm으로 찾을 수 있음

라이브러리 =  모듈

- 장점: 원하는 것을 찾고 빌릴 수 있음

- 단점: 방대한 양에 고르기 어려움, 물리적 시간

 

 

프레임워크

틀 안에서 일하는 것을 의미한다! 원하는 서비스를 구현하기 위한 모든 일을 수행하는 틀이다.

프레임워크는 필요해보이는 라이브러리(모듈)을 미리 다 틀에 넣어두었다.

 

node.js는 프레임워크가 아니다!

자바스크립트가 웹 브라우저가 아닌 vscode에서 이용할 수 있도록 하는 플랫폼인 것이다.

exports.route = route 이것이 모듈을 만드는 것이다. 즉, node.js덕분에 자바스크립트를 vscode로 돌릴 수 있게 되어서 모듈을 만들고 사용할 수 있게 된 것이다.

 

npm은 무엇인가?

npm은 외부 모듈을 내 프로젝트에 설치및 삭제 할 수 있도록 도와준다. 

 

외부 모듈 설치 삭제

설치

npm i figlet
  • package.json에서 figlet을 확인할 수 있다
  • global 설치 가능
  •  이번에도 npm i figlet을 하니 package.json이 생기지 않았다. 다음 방법으로 해결할수있다.

 

삭제

npm uninstall figlet

https://www.npmjs.com/

 

npm | Home

Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java

www.npmjs.com

=> 다양한 모듈

콜백함수

함수의 매개변수로 변수 또는 값이 아니라, 함수를 전달하는 것을 의미한다.

 

npm의 figlet모듈을 이용한 예)

//from figlet 공식문서

var figlet = require("figlet");

figlet("hi  suyeon", function (err, data) {
  if (err) {
    console.log("Something went wrong...");
    console.dir(err);
    return;
  }
  console.log(data);
});

=>익명함수 사용

익명의 함수를 이용하는 이유는?

주로 이 함수를 다른데서 쓸 일이 없기 때문이다.

var figlet = require("figlet");

function tmp(err, data) {
  if (err) {
    console.log("Something went wrong...");
    console.dir(err);
    return;
  }
  console.log(data);
}
figlet("hi  sungeun", tmp);

 

 

변수

  • const - 블록 {}스코프, 한번 정한 값을 바꿀 수 없음
  • let - 블록 {}스코프, 값을 바꿀 수 있다.
  • var 

 

문자열 나타내기

let num1 = 1;
let num2 = 2;
let num3 = 3;

console.log(`${num1} + ${num2} = ${num3}`);
console.log(num1 + " + " + num2 + " = " + num3);