일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- node.js
- Spring
- prisma
- 스트림
- node
- node stream
- jsp
- 스트리밍
- prisma 시간
- servlet
- nodejs
- javascript
- 자바스크립트 시간
- node js
- java
- 번역
- Stream
- 자바스크립트 시간 조절
- 구현
- javascsript
- tomcat
- Date
- 흐름 모드
- 동영상 스트리밍
- SESSION
- node 스트림
- 일시정지 모드
- 노드 스트림
- prisma timezone
- Today
- Total
목록-/node (7)
벤권의 개발자 이야기
이 포스팅은 3부에 이어서 작성되는 게시글이다. 스트림이 뭔지 잘 아직 모른다면 1부,2부를 먼저 보고 오는걸 매우 추천한다. Node.js Streams에 대하여 1부 2부 3부 오래만에 포스팅을 쓴다. 최근 공고가 많이 올라와서 준비하고 코딩테스트 준비하고 시험치고 하느라 못썼다. 최근에 Spring공부를 깊게 시작하려했는데 우선 쓰던 포스팅은 마무리 지으려고 이어서 4부를 먼저 작성하고 있다. 4부 지금까지 학습해온 스트림에 대해서 직접 구현해보는 내용이다. Writable Stream 구현 Writable stream을 구현하기 위해서는 stream모듈에서 Writable 생성자를 가져와서 사용해야한다. const { Writable } = require('stream'); Writable Str..

들어가기 전에 이전에 작성했던 포스팅에서 스트림을 다뤘는데 (아직 다 못썼다...시간 날 때 써야하는데 너무 길어서 읽어만 두었다.) 현재 진행하고 있는 개인 취미 프로젝트에서 비디오 스트리밍을 해야할 일이 생겼다. 말 그대로 비디오 스트리밍은 스트림을 이용해야한다. 물론 버퍼형식으로 비디오 전체를 다운로드해서 재생하는 방법도 있지만 매우 비효율적인건 안봐도 비디오이다. 이번 포스팅에서는 express를 이용한 웹 서버에서 Node JS 비디오 스트리밍 서버를 만들어보려고한다. 우선 비디오 스트리밍을 하기 위한 페이지가 필요하다. 코드는 아래와 같다. index.html Video Player 위 코드에서 video태그를 이용하여 source태그에 있는 src속성값으로 get 요청을 보내게 된다. 실제로..

이 포스팅은 2부에 이어서 작성되는 게시글이다. 스트림이 뭔지 잘 아직 모른다면 1부,2부를 먼저 보고 오는걸 매우 추천한다. Node.js Streams에 대하여 1부 2부 3부 Paused and Flowing Modes of Readable Streams Readable streams은 우리가 스트림을 사용하는데 있어서 2가지의 주요 모드가 있다. 일시 정지 (Paused) 모드 흐름 (Flowing) 모드 두 모드는 각각 pull and push 모드라고 불리기도 합니다. 모든 Readable stream은 기본적으로 일시 정지 모드로 시작하지만 언제든 흐름 모드와 일시 정지모드를 필요할 때마다 오갈 수 있다. 때때로 자동으로 모드가 바뀌기도 한다. readable stream이 일시 정지 모드일..

이 포스팅은 1부에 이어서 작성되는 게시글이다. 스트림이 뭔지 잘 아직 모른다면 1부를 먼저 보고 오는걸 매우 추천한다. Node.js Streams에 대하여 1부 2부 2부 시작 Streams 101 스트림에는 Readable, Writable, Duplex, Transform이렇게 4가지의 근본적인 타입이 있다. Readable 스트림은 소비될 수 있는 데이터의 출발지(source)를 추상화 한것이고, fs.createReadStream 메서드가 그 예시이다. Writable 스트림은 데이터가 써질 수 있는 목적지를 추상화 한 것이며 fr.createWriteStream메서드가 그 예이다. duplex stream은 읽기 쓰기가 둘다 가능하고 그 예가 TCP socket이다. transform str..

Node.js Streams에 대하여 1부 2부 1부 시작 왜 Stream에 대하여 알아보게 되었는가? 원하는 파일들을 하나의 zip파일에 옮겨넣어야 하는 개발을 하고있었다. 내가 원하는 이 기능이 adm-zip이라는 모듈에 그대로 구현되어 있어서 사용을 했는데 테스트 중에 큰 문제를 발견했다. adm-zip은 기본적으로 파일을 전부 읽어 버퍼에 담은 후 zip파일에 옮겼다. 만약 파일 용량이 크면 결국 메모리 사용량이 매우 커지고 결국 서버에 엄청난 과부하가 걸리게 된다. 그래서 Stream형식으로 파일을 읽어와서 파이프로 zip파일에 옮겨야겠다고 생각했고 노드로 이 작업을 어떻게 해야할지 스택오버플로우에 질문을 해보기도 하고(답변은 달리지 않았다..) 구글링을 엄청한 끝에 archiver라는 아카이브..

들어가기 전에 개발을 하다보면 멀티 쓰레드로 프로그래밍을 해야할 때가 있다. 노드는 기본적으로 싱글 쓰레드이다. 하지만 싱글 쓰레드가 기본인건 별개로 멀티 쓰레드를 지원하냐 안하냐는 매우 큰차이이다. nodejs 10.5.0 버전 이후에서 부터는 worker_threads가 제공됐고, 12 LTS 부터 stable하게 이용할 수 있게 되었다. 하지만 node에서의 멀티 쓰레드 프로그래밍은 타 언어를 통한 멀티 쓰레드 프로그래밍에 비해 효율적이지 못하고 한다. (아무래도 기본적으로 싱글 쓰레드이기 때문에) 그래서 노드 프로젝트 중 멀티 쓰레딩이 필요한 경우에 다른 언어로 멀티 쓰레딩을 구현해서 노드에서 실행시키는 경우가 많다. 이때를 위한 것이 child_process 모듈이다. 아래 사이트에 child_..

개인적으로 노드를 이용해서 개발을 하면서 Promise에 대해서 직접 사용할 일이 없었다. 여기서 직접이라고 한 이유는 필자는 프로미스를 지원하는 모듈들을 이용하여 async/await로만 Promise를 간접적으로 다뤄왔다. 직접 Promise객체를 생성하여 이용한 적이 드물다는 이야기이다. Promise에 대해서 좀 더 알아봐야겠다는 생각은 해왔지만 개발에 집중하여 자꾸 필요할 때만 구글링으로 이용하고 미루다가 최근에 정말 필요해져서 포스팅을 작성하려고한다. 왜 Promise객체를 직접 써야할까? 지금까지 개발해오면서 사용하던 fs모듈처럼 promise버전이 존재하면 Promise객체를 직접 사용해야 할 일이 없지만, child_process 모듈의 exec같은 경우 콜백이 있다. 즉 exec을 콜백..