HTTP method
- POST: 생성, 등록
- GET: 조회
- PUT: 덮어쓰기, 값이 있든 없든 새걸로 덮어쓰기
- PATCH: 일부 수정, 바뀐거만. 사용하기 까다로워서 잘 안씀
- DELETE: 삭제
- HEAD, OPTIONS, CONNECT, TRACE: 데이터 외의 것들에 대해 설정, 잘 몰라도됨
Node.js
- 노드는 백엔드에서만 사용되지 않음.
- 리액트, 뷰 등 프론트엔드 프레임워크도 노드 기반임.
- 노드는 자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼. 즉 웹 브라우저 밖에서도 자바스크립트를 사용할 수 있게 해준다.
Node.js의 특징
- 싱글스레드: 한개의 스레드로 동작한다
- 이벤트 기반: 요청이 들어와야만 일을 한다
- 논블로킹 I/O: I/O 작업이 진행되는 동안 프로세스의 작업을 중단하지 않는다.
Non-Blocking
function first(){
console.log("첫 번째")
}
function second(){
console.log("두 번째")
}
function third(){
console.log("세 번째")
}
first();
setTimeout(second, 2000);
third();
위 코드를 실행해보자 절차지향적인 프로그래밍 언어에서는 "첫번째" 가 출력되고 2초 있다가 "두번째"가 출력될 것이라 생각할 것이다. 하지만 자바스크립트는 논 블로킹이라는 특징을 가지고 있고
"첫번째"
"세번째"
(2초 대기)
"두번째"
와 같은 식으로 출력된다.
모듈
이미 만들어져 있는 코드 덩어리. 어느만큼이 하나의 모듈일지는 자기 마음.
- 내장 모듈: 기본으로 내장된 모듈. 그냥 사용할 수 있다.
- 외부 모듈: 외부에서 가져와야 하는 모듈.
라이브러리 vs 프레임워크
라이브러리
- 모듈이랑 같은 의미
- 원하는 기능을 직접 찾아야함
- Node.js 덕분에 자바스크립트 모듈을 만들고 사용할 수 있다.
프레임워크
- 틀 안에서 일하는 것
- 원하는 서비스를 만드는데 필요한 일을 틀 안에서 함
- 프레임워크는 필요해보이는 라이브러리들을 미리 틀 안에 넣어둠
NPM
- node를 사용하기 위해 필요한 패키지 관리자
- 외부 모듈을 사용할 수 있게 해줌
- 자바스크립트 모듈을 모아두고 제공함
사용법
- npm i(install) {패키지 이름}
- npm uninstall {패키지 이름}
- npm install {패키지 이름} -g -> 컴퓨터의 모든 프로젝트에 전역적으로 설치한다. 추천하지 않음.
Figlet
- ASCII ART 를 제공하는 모듈
콜백함수
- 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달하는 것
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를 전달한다. 즉, 콜백함수이다.
템플릿 문자열
자바스크립트 ES6에서 업데이트로 나온 기능으로 문자열에서 변수명을 사용할 수 있다.
console.log(num1 + " x " + num2 + " = " + num3);
console.log(`${num1} x ${num2} = ${num3}`);
위 두 문장은 같은 결과를 출력하게 된다.
package.json
- dependencies: 의존성, 사용할 것
- package.json-lock: 모듈에 대한 더 자세한 정보가 적혀있음
후기
node.js의 특징과 패키지 관리자인 npm에 대해서 학습하였다. 또 모듈이 무엇인지, 라이브러리와 프레임워크의 차이가 무엇인지에 대해서도 학습하였다.
키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프
'프로그래머스 풀스택 데브코스 > 데브코스 TIL' 카테고리의 다른 글
웹 풀사이클 데브코스 TIL 15일차 (2) | 2023.12.07 |
---|---|
웹 풀사이클 데브코스 TIL 14일차 (1) | 2023.12.06 |
웹 풀사이클 데브코스 TIL 12일차 (0) | 2023.12.04 |
웹 풀사이클 데브코스 TIL 11일차 (0) | 2023.11.29 |
웹 풀사이클 데브코스 TIL 10일차 (0) | 2023.11.28 |