[node.js] Buffer 란?
·
node.js
최근 node.js 프로젝트를 하면서 node.js의 buffer를 많이 다루었습니다.특히 파일을 읽을 때나 새로운 파일을 만들 때 사용했는데,node.js의 buffer에 대해 정확히 파악하지 못하고 사용하는 것 같아 조사해 봤습니다.Buffer 란?컴퓨터 과학에서 Buffer는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 데이터를 보관하는 메모리 영역입니다.Buffer는 네트워크 상에서 자료를 주고받을 때, 디스크 드라이브 같은 하드웨어의 입출력을 결합하는데 자주 이용됩니다.node.js에서 Buffer는?node.js에서도 네트워크에서 자료를 주고받거나 파일 등 원시 바이너리 데이터를 읽고 쓸 수 있도록 Buffer라는 특별한 객체를 구현해 놨습니다. node.js의 공식문서에 나와..
[node.js] node:path
·
node.js
path modulepath 모듈은 파일과 디렉터리 경로 작업을 위한 유틸리티를 제공합니다. path 모듈은 node.js가 실행되는 운영체제에 따라 기본 동작이 달라집니다.예를 들어, Windows 운영체제에서 path 모듈은 Windows 스타일 경로가 사용되고 있다고 가정합니다. 따라서 path.basename()의 실행 결과는 POSIX와 WIndows에서 다르게 나타납니다.POSIXpath.basename('C:\\temp\\myfile.html');// Returns: 'C:\\temp\\myfile.html'Windowspath.basename('C:\\temp\\myfile.html');// Returns: 'myfile.html' 모든 운영 체제에서 Windows 파일 경로를 사용할 때 ..
[node.js] node:fs
·
node.js
fs modulenode.js에서 파일 시스템에 접근할 수 있는 방법은 2가지입니다.promise-based API인 node:fs/promisescallback 및 sync API인 node:fs모든 파일 시스템 작업은 동기식, 콜백 방식, 프로미스 기반 형태로 제공되며, CommonJS 구문과 ES6 모듈(ESM)을 모두 사용하여 접근할 수 있습니다. Promise Examplenode:fs/promises 모듈을 사용하여 비동기 작업을 처리할 때는 다음과 같이 사용할 수 있습니다.const { unlink } = require('node:fs/promises');(async function(path) { try { await unlink(path); console.log(`success..
[압축 알고리즘] LZ77 구현
·
개발
압축 알고리즘을 Node.js로 구현해 봤습니다.Node.js의 Buffer와 LCS알고리즘을 사용하여 구현했습니다. LZ77 구현Search buffer size와 Look ahead buffer size는 임의의 값이 아닌 Deflate 알고리즘의 Spec인 32KB와 258을 사용했습니다. 소스코드는 다음과 같습니다.const KILO_BYTE = 1024;const SEARCH_BUFFER_SIZE = KILO_BYTE * 32;const LOOK_AHEAD_BUFFER_SIZE = 258;class LZ77 { private searchBufferSize; private lookAheadBufferSize; constructor( searchBufferSize = SEARCH_BUFF..