본문 바로가기
nodejs

nodejs 교과서 챕터2 - 노드기본기능익히기

by 오늘의코더 2024. 6. 29.
반응형

REPL - Read, Evaluate, Print, Loop

 

cmd에서 node 실행할 수 있다

tab으로 자동완성사용

방향키로 전에 명령어 불러오기

경로

../ 부모

../../ 조부모

./현재 내폴더

 

commonjs 모듈

공통되는부분을 따로 빼주면 두번쓰지 않아도 됨 중복제거 가능

module.exports - 한가지

exports - 두가지 이상

 

전역스코프의 this는 module.exports다

func 안의 this는 global

 

require 

순환참조 피하자 서로 호출하는거

 

ES모듈

mjs 확장자

export 각각

import from -> 반드시 최상단

다이나믹 import() -> await

 

pakage.json에 type: module로 해도 작동함

top level await 가능함

 

__filename

__dirname

 

module, require등의 명령어를 선언없어도 쓸 수 있는 이유 - > 노드가 제공하는 내장객체이기 때문

global이란? 

브라우저에서는 window

globalThis

 

유용한 console 명령어

console.dir 객체

console.time

console.timeEnd -> 시간측정

console.trace 호출스택

console.table 테이블시각화

 

유용한 비동기 함수

setTimeout

setInterval

clearInterval

setImmediate

 

운영체제 접근

 process

__ double under score

 process.env 환경변수 시스템 환경변수임

 

process.nextTick ->  백그라운드에서 새치기

process.exit(0)

process.exit(1)

 

path

윈도우와 맥리눅스는 경로 표기방식이 다름

join - 절대경로무시

resolve - 절대경로를 따름

 

url

WHATWG 방식임

 

 

dns

A ip주소

MX 메일

CNAME 앞에 뭐 붙어도 같음

 

crpto

비밀번호 - 해시방식 단방향 (되돌릴 수 없음)

해시값을 가져가도 그걸로 비밀번호 알아낼 수 없음.

abcdefg - > 바보

유명한 암호알고리즘: sha512, bcrypt

 

대칭형 key

남이 만들거

AES

 

비대칭형

RSA

 

비밀번호 절대 .env git 에 올리지 말 것.

kms 

 

util

예전 코드 함부로 못지움. 참조한 프로그램 다 고장나서.

util.promisify: 콜백 -> promise (error, data) => {}

 

spwan

다른 언어도 실행가능( 그 언어가 설치 되어있을 때만)

 

fs모듈

파일에 접근하는 모듈

 

콜백 헬
프로미스랑 콜백 차이가 뭐냐?

callback을 사용하면 비동기 로직의 결과값을 처리하기 위해서는 callback안에서만 처리를 해야하고, 콜백 밖에서는 비동기에서 온 값을 알 수가 없습니다. 하지만 promise를 사용하면 비동기에에서 온 값이 promise 객체에 저장되기 때문에 코드 작성이 용이해집니다. -Aairon님 블로그

콜백, 프로미스 실행 랜덤으로 됨
비동기라서 백그라운드로 콜백함수 보냄

 

비동기유지하며 순서대로 실행하는법:

1. 콜백지옥 2.async await


버퍼와 스트림

버퍼: 데이터 모으다 일정량되면 전달
스트림: 받을때마다 바로바로 보내주는것
스트림 최소단위 64kb
노드 백그라운드는 4개 스레드로 돌아감
node 에러로 안멈추게할려면: process.on('Ugh Error', () => {})

 

 

 

 

반응형

댓글