본문 바로가기

전체 글68

Node JS - 버퍼와 스트림 #버퍼 : 일정한 크기로 모아두는 데이터 - 일정한 크기가 되면 한 번에 처리 - 버퍼링: 버퍼에 데이터가 찰 때까지 모으는 작업 스트림: 데이터의 흐름 - 일정한 크기로 나눠서 여러 번에 걸쳐서 처리 - 버퍼의 크기를 작게 만들어서 주기적으로 데이터를 전달 - 스트리밍: 일정한 크기의 데이터를 지속적으로 전달하는 작업 #스트림방식 : 대용량 파일을 전송할 때 이점이 있음 const fs = require("fs"); const readStream = fs.createReadStream("./readme.txt", { highWaterMark: 16 }); //highWaterMark : 16바이트씩 전송한다는 의미 const data = []; readStream.on("data", (chunk) =>.. 2021. 12. 13.
Node JS - export module 이란? - 관련된 코드들을 하나의 코드 단위로 캡슐화 한 것 #추출하는법 1. 단일 객체만 하는 경우 function export { ~~ } module.exports = export; 2. 여러개의 객체를 하는 경우 const first = 'first'; const second = 'second'; exports.first = first; exports.second = second; const first = 'first'; const second = 'second'; module.exports = { first, second, } 위의 방법 둘다 가능하지만 주의 해야할점은 module.exports = first; 이렇게 할 경우 그뒤에 추출할때도 계속 이렇게 해야한다 아래의 modul.. 2021. 12. 13.
JS - 이벤트 루프 (Event Loop) - Heap Memory : 메모리 할당이 되는 곳 - Heap : 구조화되지 않은 넓은 메모리 영역 -> 객체(변수, 함수) 등이 담긴다 ​ - Call Stack (호출 스택) : 실행될 코드에 한 줄 단위로 할당되어 실행되는 자료구조 - Web API(노드에서는 백그라운드) : 비동기 처리 담당 - CallBack Queue : 비동기 처리가 끝난 후 실행되어야 할 콜백 함수가 차례로 할당된다 - Event Loop : Queue에 할당된 함수를 순서에 맞춰 Call Stack에 할당해준다 동기적인 코드 Call Stack function first() { second(); console.log("첫 번째"); } function second() { third(); console.log("두 번째".. 2021. 12. 9.
JS - 프로미스 (Promise) Promise 비동기 함수를 동기 처리하기 위해 고안한 객체 비동기 작업이 완료된 이후에 다음 작업을 연결시켜 진행할 수 있다. 작업 결과 따라 성공 또는 실패를 리턴하며 결괏값을 전달받을 수 있습니다. ​ * Promise 자체는 동기이다 하지만 그 뒤의 then이 비동기로 동작하기 때문에 비동기 취급 // callback 패턴 function delay(sec, callback) { setTimeout(() => { callback("callback 패턴 " + new Date()); }, sec * 1000); } delay(1, (result) => { console.log(1, result); console.log("============================================.. 2021. 12. 9.