'Node.js 교과서'라는 책을 통하여 공부.
22.01.06(목) ~ 22.01.08(토)까지 공부한 내용을 기록.
1p ~ 168p
#1장 - 노드시작하기
## node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임입니다.
노드라는 이름말 알던 시절은 아무리 노드를 설명해줘도 노드가 뭔지 정말 몰랐다. 노드는 서버?인가 생각했지만, 공식문서에 의하면 JS런타임으로 소개한다. 엄밀히 말하면 그것을 통하여 서버를 구축한다는 말이었다. 런타임이라는걸 확실히 느낀건, 일단 내가 ###.js파일을 만들고 이걸 실행하려고 했더니, 지금까지는 브라우저 개발자도구나, HTML와 연결 시켜서 사용했었다는걸 알았다. 터미널에서 node ###.js하면 js가 실행된다.
## 이벤트 기반
어떠한 이벤트가 발생하면 정해진 순서에 의하여 이벤트 루프를 돈다. 이벤트 루프는 호출 스택, 백그라운드, 테스트 큐 세가지로 구분된다. setTimeout, setInterval과 같은 비동기 함수들은 백그라운드에 들어간 후, 테스트 큐로 이동 그리고 다시 호출 스택으로 이동하여 콜백함수를 실행한다. 이 과정이 있기 때문에 비동기적으로 실행 할 수 있는 것이며, 오래걸리는 작업을 뒤로 미뤄놓는 다는 개념을 이해 할 수 있었다.
## 싱글스레드
노드는 싱글스레드이다. 엄밀히 말하면 우리가 다룰 수 있는 것은 한개의 스레드이다. 그러니 스레드가 뻗으면 서버가 뻗어버린다. 그렇게 하지 않기 위해서 에러처리를 잘해야하고 뻗지 않게 주의해야 한다.
블로킹 - 논블로킹 / 동기 - 비동기 개념 설명
#2장 - 알아두어야할 자바스크립트
## ES2015+
해당 단원에서는 ES2015+의 내용을 담았는데 어떤 것 만 있는지 적어놓고 생략하도록 하겠다. 워낙 구글에 자료가 많기 때문에 궁금하면 그런 것을 참고하겠다!
- const,let
- 템플릿 문자열
- 객체 리터럴
- 화살표 함수
- 구조분해 할당
- 클래스
- 프로미스
- async/ await
## 프런트엔드 자바스크립트
- AJAX : 페이지 전환 없이 비동기적으로 데이터를 불러오도록하는 기법.
- FormData :
#3장 - 노드 기능 알아보기
## REPL 사용하기
자바스크립트는 스크립트 언어이기 때문에 즉석에서 코드를 실행할 수 있다. READ(읽기) EVAL(해석) PRINT(반환) LOOP (반복) 을 줄여 REPL이라고 부른다. 콘솔에서 node를 실행하고 코드를 입력하면 코드가 출력되고 입력을 기다린다. 이 과정이 REPL이라고 할 수 있다.
.exit or ctrl + c 로 node의 REPL를 종료할 수 있다.
## 모듈로 만들기
//var.js
const first = "첫번째입니다";
const second = "두번째입니다";
module.exports = {
first,
second
}
//my
const { first, second } = require('./var');
const myfunc = () => {
return "함수입니다";
}
module.exports = myfunc;
module.exports 에는 객체뿐 아니라 변수, 함수를 대입해도 된다.
## 노드 내장객체 알아보기
global객체는 브라우저의 window와 같은 전역 객체이다. 이 안에 사실 global.require() 인데 global을 생략한 것이다.
전역 객체이기 때문에 A에서 저장시킨 값을 B에서 불러와 사용 할 수 있다. 그러나 지양해라!
process에서는 환경변수를 등록할 수 있다. js파일에 암호나 유출되서는 안되는 코드가 또는 해시키값이 포함된다면 이 정보는 숨겨야 한다. 그렇기 때문에 process.env에 숨겨서 저장시킬 수 있다.
## 암호화
- 단방향 암호화 : 복호화 할 필요가 없는 것이다. 사실 비밀번호는 단방향 암호화라고 했다. sha512 를 사용해라!
- 양방향 암호화 : 복호화 할 필요가 있는 것이다. hash함수를 이용하고 key값을 통하여 복구하는데 키값을 잘 보관시켜야 하고, 기업에서 높은 직급이 이직할때 키값을 알고 이직하는 경우가 있는데 이럴 경우 전체 키값을 바꿔줘야하기때문에 그런 것을 항상 고려하면서 보안에 신경을 써야한다.
## util
deprecated를 사용하여 더이상 사용하지 않는 함수를 정의시킬 수 있다.
## 버퍼와 스트림에 대한 이해
다음 4장 부터는 본격적으로 코드를 작성해가며 서버를 만든다고 한다! 기대된다.
'• 개발 > node.js' 카테고리의 다른 글
[node.js] Passport를 이용한 local-login 전략 (0) | 2022.01.23 |
---|---|
[node.js] 익스프레스(express) 사용하기, 미들웨어란, 미들웨어 순서 (0) | 2022.01.17 |
[node.js] npm 기본개념 및 package.json 과 package-lock.json에 대해서 (0) | 2022.01.14 |
[node.js] http모듈을 이용해 서버를 시작해 보기, Cookie와 Session알아보기 (0) | 2022.01.12 |
[node.js] 공부 시작에 앞서 (0) | 2022.01.09 |