HTTP에 담아보내는 나의 목적(= HTTP method)
- HTTP는 규약 -> 정해진 용어가 있음
- 생성(=등록) : POST
- 조회 : GET
- 수정 : PUT/PATCH
- 삭제 : DELETE
// HEAD, OPTIONS, CONNECT, TRACE ...
💡PATCH : 일부 변경? 부분 수정? ex. 마이 페이지 : 연락처, 이메일, 집주소, 이름 => 부분 수정
까다롭기때문에 잘 쓰지 않음
Node.js
: 웹브라우저 밖에서도 자바스크립트를 사용할 수 있게 해주는 운동장
백엔드에만 쓰이는 게 아님! ( 리액트, 뷰, ... 전부 Node.js기반 )
넷플, 에어비앤비, 링크드인, 우버, 나사 등이 사용 ..
- 특징
1️⃣ 싱글 스레드 : 주방에 요리사가 한명, 주문이 밀려들어와도 한명이 어떻게든 쳐냄
2️⃣ 이벤트 기반 : 주문이 들어와야만 일을 함, 주문이 없으면 일을 안함
3️⃣ 논블로킹 I/O : 라면 1개 (10분 중 물끓는 시간 5분: 요리사는 할일없음), 볶음밥(5분) -> 라면 끓여놓고 볶음밥 하고 다시 라면으로오자!
👉🏻 한 명이 일을 하는데, 요리를 순차적으로 X, 중간중간 비는 시간이 있으면 다른 요리를 함
논블로킹 실습
node 다운받았는지 확인

function first() {
console.log("첫 번쨰")
}
function second() {
console.log("두 번쨰")
}
function third() {
console.log("세 번쨰")
}
first();
setTimeout(second, 2000);
third();
setTimeout(second, 2000) : 2초 뒤에 second 함수 실행

second 기다리고 있을 때, 세 번째가 먼저 함! => 논블로킹
모듈이란?
내가 만든 게 아니라, 선배 개발자들이 미리 만들어둔 코드 덩어리
그럼, 선배들이 만들어둔 모듈을 가져다 쓰고 싶다면
1) 기본 내장 setTimeout() console.log() ...
2) 외부 모듈 어떻게 사용하지? => NPM!
라이브러리(=모듈) vs 프레임워크
🤔 도서관
: 분류 => 상세 주제의 한 권의 책을 골라냄! 기준 : "출판사, 작가, 내용 ..."
- 장점 : 내가 원하는 것 빌릴 수 있고
- 단점 : 너무 많아 고르기가 힘듦, 찾는 시간이 오래걸리고, 도서관 가는 시간...
🤔 프레임 워크
: 내가 만들고 싶은 서비스를 구현하는데 필요한 모든 일을 틀 안에서 하는 것
- (프레임 워크는, 필요해보이는 라이브러리(모듈)을 미리 다 틀안에 넣어둠)
- 원하는 라이브러리를 찾는 것보다, 프레임워크가 지원하는 라이브러리를 쓰게 됨
✨Node.js 덕분에 자바스크립트 모듈을 만들 수 있게 되었고, 사용도 할 수 있게 됨!✨
외부 모듈 실습
npm
: node를 사용하기 위해 필요한 패키지 관리자, 외부 모듈을 사용할 수 있게 해줌!
모듈을 찾을 수 있는 npm 사이트 : https://www.npmjs.com/
https://www.npmjs.com/package/figlet
이 모듈 가져와와보자!

사이트에 나와있는 데로 그대로 실행가능!

const figlet = require('figlet');
figlet("Hello World!!", function (err, data) {
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});
💡 콜백함수
: 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달
- 익명의 함수를 쓰는 이유 : 함수를 쓸 일이 다른 데는 없어서, Figlet 만든 사람이, 매개변수로 함수를 받기로 했기 때문
- 첫번째 매개변수 "Hello world"라는 문자열을 받아서, 아스키 아트를 만든 다음에 두번쨰 매개변수 function 함수를 실행 == ✨콜백함수
💡 블록 스코프
if(true){
var num1 = 7;
const num2 = 3; // 블록 {} 스코프, 초기화 이후 값을 못 바꾼다.
let num3 = 5; // 블록 {} 스코프, 초기화 이후 값 바꿀 수 있다.
}
console.log(num1)
//console.log(num2)
//console.log(num3)
- const, let은 블록 스코프(지역변수)이기 때문에, if 밖을 벗어나면 인식 되지 못함
- 다른 언어에서의 변수들은 보통 지역변수이기 때문에, var 사용을 지양하는 것이 좋음.
이전에 코드 뜯어보자
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 모듈에 creawteServer 함수에서 할일을 다 한 다음에
//onRequest 콜백 함수를 실행시켜달라고 매개변수로 던짐
http require .. .등등 전부 내장 모듈이구나!
템플릿 문자열
console.log(num1 + " X " + num2 + " = " + num3);
console.log(`${num1} X ${num2} = ${num3}`);
두 코드가 동일함
'Devcourse' 카테고리의 다른 글
| <프로그래머스 데브코스 풀스택>2026-01-19 TIL (0) | 2026.01.19 |
|---|---|
| [프로그래머스 데브코스 풀스택] 26-01-14 TIL(2) ERD설계 프로젝트 (0) | 2026.01.14 |
| <프로그래머스 데브코스 풀스택>2026-01-13 TIL (0) | 2026.01.13 |
| <프로그래머스 데브코스 풀스택> 2026-01-12 TIL Docker / MariaDB / SQL 기초 (1) | 2026.01.12 |
| <프로그래머스 데브코스 풀스택> 2026-01-10 TIL (0) | 2026.01.11 |