고양이와 코딩

[웹 풀사이클 데브코스 TIL] - 4주차 Day2 - Express.js 기반의 웹서버 구축 , 응용 본문

데브코스 TIL

[웹 풀사이클 데브코스 TIL] - 4주차 Day2 - Express.js 기반의 웹서버 구축 , 응용

ovovvvvv 2023. 12. 5. 17:17
728x90

Method생성(=등록) : POST

  • 조회 : GET
  • 수정 : PUT / PATCH
  • 삭제 : DELETE

그 외 // HEAD, OPTIONS, CONNECT, TRACE

PATCH : 수정되었다면, 바뀐 값만 바꿔주는것!! (일부 변경)

PATCH 를 사용하는 예로 마이페이지 (연락처, 이메일, 집주소, 이름 ... ) 중 하나만 변경할 때 사용할 수 있습니다

✨ 그러나! 사용하는 조건이 까다로워서 보통은 PUT 을 사용한다고 하네요

 

Node.js 란? (스크립트 언어 이상으로 자바스크립트의 역할을 확장시켜줌 )

노드라고 하면 당연히 백엔드라고 생각했고, 백엔드에만 사용되는거라고 생각했어요,
하지만 노드는 Node.js기반 리액트, 뷰 , ... 등등 프론트엔드에서도 사용이 되고 있습니다!

 

노드로 넷플릭스, 에어비앤비, 링크드인, 우버, NASA... 를 만들었다니..

궁금하다.. 나도 참여시켜줬으면 좋겠다.. 

 

Node.js의 특징

  • 싱글 스레드
  • 이벤트 기반
  • 논블로킹 I/O

이 내용을 요리사에 빗대어 설명해주셨는데, 제가 이해한 대로 풀어서 써볼게요
요리사가 한명이라면 !! 주문이 계속 들어와도 한명이 요리를 해내야합니다 => 싱글스레드

 

주문이 들어올때만 요리사가 일합니다! => 이벤트 기반

 

라면 물 끓이는 시간이 5분.. 조리하는시간이 5분 총 10분동안 라면요리를 해야한다면, 물 끓는 시간동안
요리사는 물만 쳐다보고 있어야하죠 ,,,, 하지만 만약 볶음밥 주문이 들어왔고, 볶음밥 요리 시간이 5분이라면

라면 물을 끓이면서 볶음밥을 만들고, 그 후에 라면을 조리하면 되겠죠 ?? => 논 블로킹 I/O

function first() {
  console.log("첫 번째");
}

function second() {
  console.log("두 번째");
}

function third() {
  console.log("세 번쨰");
}

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

이런 코드를 예시로 들 수 있습니다

출력은 첫 번째, 세 번째, 두 번째 순이 되겠죵 ㅎㅎ 

 

모듈

:  남이 미리 만들어 놓은 코드 덩어리

vscode에서 set이라고 입력하면 아래로 주르륵 뜨는 것들이 전부 내장모듈(기본적으로 내장된 모듈)입니다!

 

모듈 = 라이브러리 ?

저는 정말 라이브러리와 프레임워크.. 모듈.. 이것들의 정의를 머릿속에서 확실하게 내리지 못해서 헷갈리는 상태였는데요

 

<프레임워크는 필요해 보이는 라이브러리(모듈)을 미리 다 틀 안에 넣어뒀습니다 !>

이렇게 하니까 한번에 이해가 되더라구요 (੭•̀ᵕ•̀)੭

 

외부모듈은 NPM으로 사용할 수 있습니다!

저는 오류를그냥 지나치지 못하는 사람인데요.. 오늘도 또!! 의존성 오류가 발생했습니다 ㅎㅎ

--force 명령어도 써보고.. 강의랑 npm 버전도 맞춰보고.. 별 짓 다했는데도 설치가 안되다가 npm 을 지우고 다시 최신 버전으로 설치 한 뒤 npm init을 하니 node_modules.. package.json .. 이것저것 생기더니 그 안에 figlet이 설치 된게 확인이 되었어요.
이유는.. 모름;;

축하 세레머니로 저희집 고양이 이름을 찍어보았읍니다.

 

함수의 매개변수로 함수를 전달한다면! 그 함수를 "콜 백 함수" 라고 부릅니다 

 

이렇게 함수 이름 없이 매개변수로만 함수를 찍는것을 익명함수 라고 합니다 ㅎㅎ

 

 

콜백 함수에 대해 더 자세한 설명을 해주셨어요

let http = require("http");

function onRequest(request, response) {
  response.writeHead(200, { "Content-Type": "text/html" });
  response.write("Hello Node.js");
  response.end();
}

http.createServer(onRequest).listen(8888);
// http 모듈에 createServer 함수에서 할일을 다 한 다음에
// onRequest 콜백 함수를 실행시켜달라고 매개변수로 던진 것

주석에서 콜백 함수를 실행하는 과정에 대해 말씀 해 주셨는데, 코드만 볼땐 애매모호 하던 개념이 잡힌 것 같습니닿

 

let, const, var ...

if (true){
	var num1 = 7;
    const num2 = 3; //블록 {} 스코프
    let num3 = 5;	//블록 {} 스코프
}

console.log(num1)
//console.log(num2)
//console.log(num3)

const와 let은 블록 스코프로 {} 밖에서는 작동하지 않습니다 !

+ const는 값을 못바꿉니다 ! ( 초기화 이후에는 )

 

템플릿 문자열!

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

 

안쓰는 모듈을 삭제하는 방법

npm uninstall 모듈명

 

 

 

 

이렇게 오늘도 열심히 따라하며 강의를 마쳤는데요,, 
짧은 시간이지만 배워갈 수 있는게 많아서 좋습니다! + 오류들
오류를 접하면 화딱지가 나지만.. 그만큼 해결하면서 알아가는 것들이 있기에.. ㅎㅎ