-
[데브코스] 16~18(예비군) 19일차 TILTIL/교육 내용 정리 2024. 4. 26. 15:46
HTTP에 담아 보내는 나의 목적(HTTP method)
- 여기서는 method 메소드
- HTTP = 규약 = 정해둔 용어가 있다.
- 생성(=등록) : POST
- 조회 : GET
- 수정 : PUT(덮어쓰기;) / PATCH(일부수정; 바뀐것만 수정.)
- 삭제 : DELETE
- 아래는 데이터 외의 것들을 설정하는 것들
- HEAD :
- OPTIONS :
- CONNECT :
- TRACE :
Node.js를 왜 알아야 할까?
다양하게 쓰이기 때문이다.
Node.js 는 백엔드에만 쓰이는 게 아니다.
: 리엑트, 뷰 들이 Node.js 기반이다.,…. 프론트엔드
Node.js 특징
- 싱글 스레드 : 컴퓨터 프로세스가 동시에 하나의 작업만 처리할 수 있는 것 ex) 주방에 요리사가 한명임 주문이 계속 밀려들어와도, 한명이 어떻게든 쳐내야 해요.
- 이벤트 기반 : ex) 주문이 없으면, 일을 안함. 주문이 들어와야만 일을 합니다.
- 논블로킹 I/O : 요리를 순차적으로 x 중간중간 비는 시간이 있으면, 다른요리를 해요.
→ 라면 1개 (물 끓는 시간 5분 : 요리사는 그 물만 쳐다봐요), 볶음밥(완성 5분) so 라면 물 → 볶음밥 →라면
cf. 스프링은요?
- node = JS기반, spring =Java
- spring = 프레임워크
// non-blocking-demo.js function first(){ console.log("첫 번째") } function second(){ console.log("두 번째") } function third(){ console.log("세 번째") } // 논블로킹 예시 first(); setTimeout(second,2000); // 2초 뒤에 second 함수를 실행합니다. // 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달하는 것. // == "콜백 함수" third();
// 논브로킹 예시 출력 결과 첫 번째 세 번째 두 번째
모듈이란?
내가 만든게 아니라, 선배 개발자들이 미리 만들어둔 코드 덩어리.
위 예시 코드처럼 setTimeout() : 기본적으로 제공하는 모듈 : 내장 모듈
❓외부 모듈은 어떻게 사용하지
- npm을 이용해서 외부 모듈을 사용
Node.js 는 JS를 다른 곳 (vscode)에서 돌릴 수 있는 환경을 구축을 해줌.
Node.js 덕분에 JS 모듈을 만들 수 있게 되었고, 사용도 할 수 있게 되었다.
라이브러리(feat.프레임워크)
도서관 : 분류 → 상세 주제(기준 : 출판사, 작가, 내용,…)
- 장점 : 내가 원하는 걸 빌릴 수 있다.
- 단점 : 너무 많아서 고르기 힘들고, 찾는 시간이 오래 걸릴 수 있음.
= 라이브러리 = 모듈
cf.프레임 워크 : 내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을 틀 안에서 하는 것.
(프레임 워크는, 필요해 보이는 라이브러리(모듈)를 미리 다 틀 안에 넣어뒀습니다.)
npm, figlet 사용해보기
- npm 사이트 접속
- 터미널에서 npm i figlet
- 코드 복사 붙여넣기 후 실행
var figlet = require("figlet"); figlet("Hey", function (err, data) { // 익명의 함수를 쓰는 이유 = 이 함수를 쓸 일이 다른 데는 없어서.. // figlet 만든 사람이, 매개변수로 함수를 받기로 했기 때문 // 첫 번째 매개변수 "Hey"라는 문자열을 받아서, // 아스키 아트를 만든 다음에 // 두 번째 매개변수 function 함수를 실행 = 콜 백 if (err) { console.log("Something went wrong..."); console.dir(err); return; } console.log(data); });
- require : 외부 모듈을 가져올 때, 쓰는 내장 모듈
http 모듈 뜯어보면서 콜백함수 다시 확인하기
(let, const 중괄호 스코프 포함)
// scope-demo.js if(true){ var num1 =7; const num2 =3; //블록 {} 스코프 let num3 = 5; //블록 {} 스코프 선언된 중괄호 밖에서는 사용 불가. } console.log(num1); console.log(num2); console.log(num3);
- let 과 const 는 블록{} 스코프 : 선언된 중괄호 밖에서 사용 불가. = ‘지역 변수’지 ‘전역 변수’가 아니다.
let, const 값 변경
if(true){ var num1 =7; const num2 =3; //블록 {} 스코프 초기화 이후 값 변경 x let num3 = 5; //블록 {} 스코프 선언된 중괄호 밖에서는 사용 불가. num2 = 10; num3 = 21; } console.log(num1); console.log(num2); console.log(num3);
- const는 한번 값을 넣으면 값을 변경할 수 없다.
템플릿 문자열
console.log(num1 + "X" + num2 + " = " + num3); console.log(`${num1}X${num2} = ${num3}`);
- 둘 다 가능.
// server-demo.js 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 콜백 함수를 실행시켜달라고 매개변수로 던진거다.
npm 좀 더 뜯어보기
// npm 삭제하기 npm install figlet
// package.json // dependencies : 사용할 것.
// -g 전역에 설치 하겠다. 추천하지 않는다. npm install -g figlet-cli
- npm은 외부 모듈을 내 프로젝트에 설치할 수 있게 도와주는 친구
- npm이 저장소에 ‘외부 모듈’을 설치를 우리가 원하는 프로젝트에 자동으로 해준다. = 프로그램설치 파일 다운로드 받아서 더블 클릭 = npm install 모듈
'TIL > 교육 내용 정리' 카테고리의 다른 글
[데브코스] 22일차 TIL (1) 2024.04.29 [데브코스] (20일차자체휴식)21일차 TIL (0) 2024.04.28 [데브코스] 13,14(주말) 15일차 교육내용 정리 (0) 2024.04.22 [데브코스]10,11,12일차 교육내용 정리 (1) 2024.04.19 [데브코스] 9일차 교육 내용정리 (0) 2024.04.16