고양이와 코딩
[웹 풀사이클 데브코스 TIL] - 4주차 Day2 - Express.js 기반의 웹서버 구축 , 응용 본문
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 모듈명
이렇게 오늘도 열심히 따라하며 강의를 마쳤는데요,,
짧은 시간이지만 배워갈 수 있는게 많아서 좋습니다! + 오류들
오류를 접하면 화딱지가 나지만.. 그만큼 해결하면서 알아가는 것들이 있기에.. ㅎㅎ
'데브코스 TIL' 카테고리의 다른 글
[웹 풀사이클 데브코스 TIL] 4주차 Day 4 - Express 실습, REST API 구현 (1) | 2023.12.07 |
---|---|
[웹 풀사이클 데브코스 TIL] 4주차 Day 3 - Express.js 사용해서 웹 서버 구동 시켜보기 (1) | 2023.12.06 |
[웹 풀사이클 데브코스 TIL] 3주차 Day 1, 2 (0) | 2023.11.28 |
[웹 풀 사이클 데브코스 TIL] 2주차 Day 5 - 웹 생태계 전반에 대한 실습(2) (0) | 2023.11.24 |
[웹 풀사이클 데브코스 TIL] 2주차 Day 4 - 웹 생태계 전반에 대한 실습(1) (1) | 2023.11.23 |