HTML 메소드
HTTP에 담아 보내는 나의 목적 = HTTP method
- 생성 : POST
- 조회 : GET
- 수정 : PUT(덮어쓰기) / PATCH
- 삭제 : DELETE
- HEAD, OPTIONS, CONNECT, TRACE : 많이 사용하지 않는다.
* PATCH : 일부, 부분 수정. put 보다 조금 까다로운 편! ex) 마이페이지 : 연락처, 이메일, 집주소, 이름 중 `부분 수정`
Node.js
백엔드에만 사용하는게 아니다!
페이팔, 이베이... 결제 시스템에서도 사용한다.
+ 리액트, 뷰 등 프론트엔드 프레임워크 기술에서도 사용된다!
웹 밖에서도 JavaScript를 사용할 수 있게 하는 플랫폼이 Node.js
특징
- 싱글 스레드 : 동작이 계속 밀려들어와도, 혼자서 어떻게든 작동시켜야 한다
- 이벤트 기반 : 주문이 없으면 일을 안한다.
- 논블로킹 I/O : 대기시간동안 다른 작업을 한다
*스프링?
논블로킹 I/O 코드
`setTimeout(함수, 2000);` : 2초 뒤에 함수 실행한다
function first(){
console.log("첫 번째");
}
function second(){
console.log("두 번째");
}
function third(){
console.log("세 번째");
}
first();
setTimeout(second, 2000);
third();
setTimeout 걸린다고 한다. 다른거 먼저 하다가, 시간이 되면 작동하는 내장 메소드!
모듈
이미 만들어져 있는 코드 덩어리
js 파일 내에서 기본으로 있는것! 내장 모듈 `setTimeout()`
내장되지 않는 외부 모듈도 사용할 수 있다.
모듈(JS) = 라이브러리
라이브러리 VS 프레임워크
라이브러리(모듈) : 도서관에서 분류된 것 중, 원하는 상세주제로 선택한다.(출판사, 작가, 내용, 형식 등등)
장점 : 원하는것 빌릴 수 있다.
단점 : 너무 많아서 고르기 힘들고, 찾는시간 오래걸린다.
즉, 모듈과 같은 개념을 가진다
프레임워크 : 구현하는데 필요한 모든 일을 틀 안에서 하는 것이다. 구조와 틀 을 제공한다.
이때, 필요해보이는 라이브러리(모듈)을 미리 다 프레임워크 안에 넣어두었다.
node.js는 프레임워크가 아니다! 자바스크립트가 구동될 수 있는 환경을 구축해주는, 런타임 프로그램
Node.js 덕분에 JS 모듈(exports)를 만들 수도 있고, 사용도 할 수 있다!
외부모듈 사용하기 npm
내부모듈 : node_modules 파일에 내장되어있다~
외부모듈 설치 돕는 `npm` : node를 사용하기 위한 패키지 관리자 `npm -v`
필요한 모듈이 있는 지 찾아볼 수 있는 공식사이트
figlet 모듈 사용해보기
아스키코드 art 아트
var figlet = require("figlet");
figlet("datdaradanadat", function (err, data) {
if (err) {
console.log("Something went wrong...");
console.dir(err);
return;
}
console.log(data);
});
figlet 외부모듈 가져온다.
figlet 매개변수 () 안에 출력할 문자열과 함수를 모두 작성한다.
- 콜 백 함수 : 함수의 매개변수로 변수 또는 값을 전달하는 것이 아니라, 함수를 전달하는 것
fuction 함수 이름 없이, 콜백함수 사용한다. : 익명 쓰는 이유? 함수를 쓸 일이 다른 데에는 없어서..
에러메시지
data 값 출력한다
- 첫번째 매개변수 "datdaradanadat" 문자열을 받아서,
- 아스키 아트를 만든 다음에
- 두번째 매개변수 fuction 함수를 실행한다 = 콜 백
HTTP 모듈
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` , `listen` 내장 모듈!
- http 모듈에 createServer 함수에서 할 일을 다 한 다음에
- onRequest 콜백 함수를 실행시켜달라고 매개변수로 던진 것이다.
최신 트렌드에서 HTTP 모듈보다, express 모듈 사용해서 많이 개발한다!
js 문자열 표시
console.log(n1 + "X" + n2 + "=" + n3);
console.log(`${n1} X ${n2} = ${n3}`);
+로 연결하는 방법 1
백틱으로 연결하는 방법 2 (2015년 이후 권장됨) : `템플릿 문자열`
모듈 삭제
`npm uninstall figlet`
package.json( 키-값 문서 )파일에서 모듈 설치 버전을 관리한다.
-g 전역. 모든 프로젝트에 설치한다. 사용지양
is-odd-num 사용하기
문자열이 홀수인지 짝수인지 확인하는 모듈이다.
📝 npm 정리
외부 모듈을 원하는 프로젝트에 설치할 수 있게(저장소) 해준다.
설치 : `npm install 모듈`
삭제 : `npm uninstall 모듈`
-g : 내 컴퓨터에 있는 모든 프로젝트에 해당 모듈을 설치하는 것이다. 추천하지 않는다.
☑️ 배운 점
node.js의 특징으로 싱글 스레드, 이벤트 기반, 논블로킹 I/O 에 대해 이해할 수 있었다.
이전에 개념이 어려웠던 콜 백 함수! 보다 쉽게 이해할 수 있었다. 본능적으로 쓰지말고, 이해하고 사용하자!