C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 기록해두려고 합니다. Node.js Streams는 많은 데이터를 다루는 경우, 빠르고 효율적인 방법으로 데이터를 처리할 수 있게 해주는 기능입니다. 이번 글에서는 Node.js Streams의 개요, API 및 사용 예시에 대해 알아보겠습니다. 스트림 개요 Node.js Streams는 "데이터 처리를 위한 추상 인터페이스"입니다. 이는 데이터 처리의 다양한 측면을 추상화하여 처리를 단순화합니다. 스트림은 데이터의 흐름을 의미하며, 처리해야 할 데이터를 스트림으로 바꾸어 처리하면 더..
nodeJS
NPM (Node Package Manager)? npm (노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다. 명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다. 이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은 npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다. npm을 이용한 패키지 설치 $ npm install install 대신 i를 약어로 사용이 가능 → $ npm i 에는 설치할 패키지 명을 적는다. 만약 특정한 ..
Bycrypt는 현업에서 가장 많이 사용한다고 한다. 나도 종종 사용했는데 많은 알고리즘 중에 이것이 선택되고 있는지 알아보고 기록해두려고 한다. bcrypt? 1999년 USENIX에서 발표한 Blowfish 암호를 기반으로 Niels Provos와 David Mazières가 설계한 단방향 해싱 함수라고 한다. 단방향 해시 함수? 해시 함수는 입력값을 문자와 숫자를 임의로 나열한 일정한 길이의 다이제스트(Digest) 형태로 변환시켜준다. 다이제스트란, 해시 함수를 통해 생성된 암호화된 메시지이다. 이를 단방향으로 암호화하고 복호화는 불가능해 원본을 알 수 없게 하는 것이 단방향 해시이다. 패스워드를 바로 데이터베이스에 저장하지 않고 다이제스트를 저장하는 것이 보편화되었다. salting과 키 스트레..
여태 express 길게 공부해왔다. 자유도는 정말 좋았지만 뭔가 딱딱함? 이 느껴지지 않았다. 그래서 NestJS라는 것을 알고 이를 공부해보려고 한다. 사실 TypeScript 공부도 이를 위한 빌드업이라고 할까...? 우선 NestJS란 뭔지 공식 사이트에서 간단하게 알아봤다.Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.이것은 알겠다. 큰 특징은 다음에 있다. - 프로그레시브 자바스크립트 사용- TypeScript로 빌드되고 완벽하게 지원- OOP (객체 지향 프로그래밍 Object Oriented Programming)- FP (함수형 프로그래밍 Functional Programming)- FRP (함수형 반응형 프로그래밍 ..
프로필 사진의 변경을 담당하는 API에서 이미지를 그대로 받아와 저장소에 저장하기에는 용량이 너무 크다는 무리가 있었고 가지각색의 용량을 가진 이미지들을 반환해주는데 속도를 보장할 수 없었다. 나는 프로필 이미지를 받으면 프로필 상에 작게 표시해주고 크게 보여줄 일은 없기 때문에 이미지를 압축해 저장소에 저장을 하는 방법을 생각해보았다. sharp는 이를 도와주는 라이브러리이다.나는 sharp로 이미지 크기를 줄인 후 multer로 저장소에 저장하는 방식으로 구현을 했다. sharp를 설치해준다.npm install sharp// 혹은 (yarn을 사용한다면)yarn add sharp다음은 sharp를 importconst sharp = require("sharp") 형식은 아래와 같이 사용해주면 된다...