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`
npm | Home
Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java
www.npmjs.com
필요한 모듈이 있는 지 찾아볼 수 있는 공식사이트
figlet 모듈 사용해보기
아스키코드 art 아트
figlet
Creates ASCII Art from text. A full implementation of the FIGfont spec.. Latest version: 1.7.0, last published: 6 months ago. Start using figlet in your project by running `npm i figlet`. There are 10309 other projects in the npm registry using figlet.
www.npmjs.com
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 사용하기
문자열이 홀수인지 짝수인지 확인하는 모듈이다.
is-odd-num
a simple package to find a given number is odd or not. Latest version: 1.1.1, last published: 2 years ago. Start using is-odd-num in your project by running `npm i is-odd-num`. There is 1 other project in the npm registry using is-odd-num.
www.npmjs.com
📝 npm 정리
외부 모듈을 원하는 프로젝트에 설치할 수 있게(저장소) 해준다.
설치 : `npm install 모듈`
삭제 : `npm uninstall 모듈`
-g : 내 컴퓨터에 있는 모든 프로젝트에 해당 모듈을 설치하는 것이다. 추천하지 않는다.
☑️ 배운 점
node.js의 특징으로 싱글 스레드, 이벤트 기반, 논블로킹 I/O 에 대해 이해할 수 있었다.
이전에 개념이 어려웠던 콜 백 함수! 보다 쉽게 이해할 수 있었다. 본능적으로 쓰지말고, 이해하고 사용하자!