HTTP 메소드
HTTP = 규약 = 정해둔 용어
- 생성(=등록) : POST
- 조회 : GET
- 수정 : PUT(덮어쓰기) / PATCH
- 삭제 : DELETE
- (데이터 외 설정) HEAD, OPTIONS, CONNECT, TRACE
cf. patch : 바뀐 값만 일부 변경. 부분 수정
ex. 마이페이지 : 연락처, 이메일, 집주소, 이름 중 특정 요소만 부분 수정
node.js
1) 백엔드에만 쓰이는 게 아니다
- node.js 기반 프론트엔드 : 리액트, 뷰 ...etc
- 활용 기업 : 넷플릭스, 에어비앤비, 링크드인, 우버, NASA
2) 우리나라에서도 node 시장이 커질까?
- 풀스택으로 한다면 경쟁력 있다
3) 자바스크립트는 웹 브라우저 밖에서도 사용 가능하도록 만들었다.
node.js 특징
1) 싱글 스레드
- 요리사가 한명. 주문이 계속 밀려들어와도 한명이 쳐낸다.
2) 이벤트 기반
- 주문이 들어와야 일을 한다.
3) 논블로킹 I/O
- 라면 물 끓이고 => 볶음밥 요리 => 라면 요리
- 순차적으로 일하지 않고, 비는 시간 있으면 다른 일을 한다.
cf. 스프링도 싱글스레드 기본 구조
논블로킹 실습, setTimeout
function first(){
console.log("첫 번째");
}
function second(){
console.log("두 번째");
}
function third(){
console.log("세 번째");
}
first();
// second 함수 2초 뒤 실행
setTimeout(second, 2000);
third();
※ vscode에서 자바스크립트 실행 :
- node.js 다운
- 확장 프로그램 코드러너 다운로드
모듈이란?
내가 만든 게 아니라, 선배 개발자들이 미리 만들어둔 코드 덩어리
모듈 = 라이브러리
- 내장모듈(표준모듈) : setTimeout 등
- 외부 모듈 사용 : npm 이용
라이브러리 vs 프레임워크
1) 라이브러리
- 장점 : 내가 원하는 걸 빌릴 수 있다
- 단점 : 고르기가 힘들고 찾는 시간 오래 걸린다.
2) 프레임워크 : 내가 만들고 싶은 서비스를 구현하는 데 필요한 모든 일을 틀 안에서 하는 것
(필요해보이는 라이브러리(모듈)를 미리 다 틀 안에 넣어뒀다.)
3) Node.js는 프레임워크가 아니다
- node.js가 vscode에서 javascript를 구동할 수 있게 해줌.
node.js로 자바스크립트 모듈을 만들고 사용할 수 있게 되었다.
npm 사용해보기 - figlet
- npm 모듈 참고 사이트 : npmjs.com
- figlet : 텍스트를 사용하여 그림처럼 표현하는 아스키 아트(ASCII Art)를 생성하는 프로그램 또는 모듈
- ascii art 검색 시 figlet 나옴
- 설치 : npm i figlet
콜백함수 확인하기
// figlet('출력하고 싶은 문자열',콜백함수[err, data])
// 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달
// == 콜백 함수
figlet("HELLO", function (err, data) {
// 익명의 함수를 쓰는 이유 = 이 함수를 쓸 일이 다른 데는 없어서
// figlet 만든 사람이, 매개 변수로 함수를 받기로 했기 때문
// 첫번째 매개변수 문자열 받아서,
// 아스키 아트를 만든 다음에
// 두번째 매개변수 function 함수를 실행 = 콜백
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});
http 모듈로 콜백 함수 확인
http.createServer(onRequest).listen(8888);
// http 모듈에 createServer 함수에서 할일을 다 한 후
// onRequest 콜백 함수를 실행시켜달라고 매개변수로 전달
let, const 값 변경 가능
- const는 초기화 이후 값 변경 불가
- let은 변경 가능
템플릿 문자열
`${변수}` 이용해 변수와 연산자 같이 쓰기
console.log(num1 + " x " + num2 + " = " + num3);
console.log(`${num1} x ${num2} = ${num3}`); // 템플릿 문자열
npm 좀 더 뜯어보기 - -g, uninstall, is odd 설치/제거, package.json 뜯어보기
npm install/uninstall 모듈명
해당 모듈을 설치/제거한다.
ex> isOdd 모듈


const isOdd = require('is-odd');
console.log(isOdd('8')); //=> true
console.log(isOdd('3')); //=> true
console.log(isOdd(7)); //=> false
console.log(isOdd(2)); //=> false
package.json
npm install을 하면 package.json dependancies 에 해당 모듈이 표시된다.
- dependancies = 의존성 = 사용할 것
-g : 글로벌, 전역
- 모든 컴퓨터에 설치하겠다.
- npm i -g figlet
- 가능한 한 사용하지 않는다.
npm
- 외부 모듈을 내 프로젝트에 설치할 수 있게 해준다
- npm이 저장소에 외부 모듈을 설치를 우리가 원하는 프로젝트에 자동으로 해준다.
= 설치 파일 다운로드 받아서 더블 클릭 (npm install 모듈)
(cf. npm은 빠르고 간편하게 삭제도 가능 = npm uninstall 모듈) - npm i 모듈명 -g : 내 컴퓨터에 있는 모든 프로젝트에 해당 모듈을 설치 / 비추천
'데브코스 웹풀스택 과정 > TIL' 카테고리의 다른 글
| [8기 9회차] 0917 Express - 파라미터, 쿼리 가져오기 / 객체,배열 비구조화 / map (1) | 2025.09.17 |
|---|---|
| [8기 9회차] 0915 백엔드 기초 - express와 REST API 실습 (0) | 2025.09.15 |
| [8기 9회차] 0911 백엔드 기초 - API와 REST API, HTTP와 URL 메소드 (0) | 2025.09.11 |
| [8기 9회차] 0909 웹 서비스의 이해 - Docker, mariaDB, Node.js에 DB연동 (0) | 2025.09.09 |
| [8기 9회차] 0908 웹 서비스의 이해 - 프론트, 벡엔드 Node.js서버 구현 (0) | 2025.09.08 |