본문 바로가기

Programming

(477)
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 3 앞선 아티클에서 우리는 fs 메서드를 이용해 폴더 유무를 확인하고, 새롭게 생성하는 과정을 살펴보았습니다.     4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 2앞서 fs의 메서드를 사용한 예제를 살펴보았습니다.     { return " data-og-host="nozeroslope.tistory.com" data-og-source-url="https://nozeroslope.tistory.com/554" data-og-url="https://nozeroslope.tistory.com/554" data-og-image="https:/nozeroslope.tistory.com 이번에는 폴더 내용을 확인한 다음, 삭제하는 과정을 살펴보도록 하겠습니다. 우선 전제조건은 앞선 아티클의 예제를 통..
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 2 앞서 fs의 메서드를 사용한 예제를 살펴보았습니다.     { return " data-og-host="nozeroslope.tistory.com" data-og-source-url="https://nozeroslope.tistory.com/554" data-og-url="https://nozeroslope.tistory.com/554" data-og-image="https://blog.kakaocdn.net/dna/ds457z/hyWdgSMAqR/AAAAAAAAAAAAAAAAAAAAAPdcU922yQICaBE_oFUno47D_YUwCUfxhA6fvAdJaMKg/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1756652399&allow_ip=&allow_referer=&signature=JAp6ZXsWI6mAIo46ycDzW2DFOQw%3D
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 1 앞선 아티클에서 파일을 읽고 쓰는 메서드를 살펴보았습니다.  const fs = require('fs').promises;const constants = require('fs').constants;fs.access('./folder', constants.F_OK | constants.W_OK | constants.R_OK) .then( () => { return Promise.reject('이미 폴더가 존재함'); }) .catch( (err) => { if (err.code === 'ENOENT') { console.log('폴더가 없음'); return fs.mkdir('./folder'); } ..
4. Node 기능 살펴보기 (7) - 버퍼와 스트림 6 지금까지 크게 버퍼를 사용하는 방식과 스트림을 사용하는 방식을 살펴보았습니다. 이제, 이 두 방식을 통해 동일한 작업을 처리할 경우 어떤 차이가 있는지를 살펴보겠습니다. readFile과 createReadStream 메서드를 이용해서 1GB 수준의 크기의 파일을 만들때 시간 차이가 얼마나 발생할지 확인해보죠. 우선 createWriteStream( )을 이용해서 대용량 파일을 생성해 보겠습니다. 생각보다 시간이 꽤 걸립니다. const fs = require('fs');const file = fs.createWriteStream('./big.txt');for (let i = 0; i  일단, 이렇게 만들어진 [big.txt]는 무려 270MB 수준입니다.       ○ 버퍼로 복사하기(readFile)..
4. Node 기능 살펴보기 (7) - 버퍼와 스트림 5 앞선 아티클에서 readStream과 writeStream을 pipe를 사용해서 연결하는 방법까지 함께 살펴보았습니다.    4. Node 기능 살펴보기 (7) - 버퍼와 스트림 4앞선 아티클에서 우리는 읽기 스트림에 대해서 살펴보았습니다. 그렇다면, 이번에는 반대로 쓰는 기능도 있겠죠? wrtieStream에 대해서 살펴보고 예제를 작성해 보겠습니다.   const fs = require('fs');nozeroslope.tistory.com  이번 아티클에서는 이 pipe를 응용하여 좀 더 다양한 기능을 구현해 보겠습니다. 일단 pipe는 스트림 사이에 여러 번 연결이 가능합니다. 이 뜻이 예시가 없으면 잘 이해가 안 가실 텐데, 예제를 위해 zlib 모듈을 사용해 보겠습니다.  zlip은 노드에서 파..
4. Node 기능 살펴보기 (7) - 버퍼와 스트림 4 앞선 아티클에서 우리는 읽기 스트림에 대해서 살펴보았습니다. 그렇다면, 이번에는 반대로 쓰는 기능도 있겠죠? wrtieStream에 대해서 살펴보고 예제를 작성해 보겠습니다.   const fs = require('fs');const writeStream = fs.createWriteStream('./writeme2.txt');writeStream.on('finish', () => { console.log('파일 쓰기 작업 완료!');});writeStream.write('글을 작성한다.');writeStream.write('글을 다시 한번 작성한다.');writeStream.end();/* 출력파일 쓰기 작업 완료!*/   위의 실행 결과를 살펴보면, 우선 콘솔 창에서는 "파일 쓰기 작업 완료!"..
4. Node 기능 살펴보기 (7) - 버퍼와 스트림 3 앞선 아티클에서 버퍼에 대해서 살펴보고, 버퍼의 취약점과 이를 보강하기 위한 스트림 개념을 살펴보았습니다.    4. Node 기능 살펴보기 (7) - 버퍼와 스트림 2앞선 아티클에서 Buffer 클래스를 사용한 예제를 확인했습니다. 이제 Buffer 클래스의 사용법을 조금 더 자세히 살펴보도록 하겠습니다.  const buffer = Buffer.from('버퍼로 변환할 문자열입니다.');consolnozeroslope.tistory.com  const fs = require('fs');const readStream = fs.createReadStream('./readme3.txt', { highWaterMark: 16});const data = [];readStream.on('data', (chunk..
4. Node 기능 살펴보기 (7) - 버퍼와 스트림 2 앞선 아티클에서 Buffer 클래스를 사용한 예제를 확인했습니다. 이제 Buffer 클래스의 사용법을 조금 더 자세히 살펴보도록 하겠습니다.  const buffer = Buffer.from('버퍼로 변환할 문자열입니다.');console.log('from(): ', buffer);console.log('length: ', buffer.length);console.log('toString(): ', buffer.toString());const array = [Buffer.from('단어 ' ), Buffer.from('사이 '), Buffer.from('공백들')];const buffer2 = Buffer.concat(array);console.log('concat(): ', buffer2.toStrin..