C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 기록해두려고 합니다. Node.js Streams는 많은 데이터를 다루는 경우, 빠르고 효율적인 방법으로 데이터를 처리할 수 있게 해주는 기능입니다. 이번 글에서는 Node.js Streams의 개요, API 및 사용 예시에 대해 알아보겠습니다. 스트림 개요 Node.js Streams는 "데이터 처리를 위한 추상 인터페이스"입니다. 이는 데이터 처리의 다양한 측면을 추상화하여 처리를 단순화합니다. 스트림은 데이터의 흐름을 의미하며, 처리해야 할 데이터를 스트림으로 바꾸어 처리하면 더..
Backend
Javascript에서 배열을 편면화하는 가장 효율적인 방법 spread operator (...)와 "reduce"를 이용하는 방법이다. let nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];let flattenedArray = nestedArray.reduce((acc, val) => [...acc, ...val], []);console.log(flattenedArray); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 예제에서 "reduce"는 배열의 누적기 "acc"와 현재 값 "val"를 가져오는 콜백 함수를 사용한다.spread operator는 "val" 의 값을 처음에는 빈 배열 []인 누적기 "acc"에 연결하는 데 사용된다.각 반복의 결과..
fp-ts? fp-ts Functional programming in TypeScript는 TypeScript의 함수형 프로그래밍을 위한 라이브러리이다. TypeScript 표준 라이브러리에 없는 일반적인 데이터 구조와 함수형 추상화 모음을 사용할 수 있도록 도와준다. fp-ts의 장점 fp-ts를 사용하는 주요 장점은 불변성, 합성, 고차 함수와 같은 함수형 프로그래밍 기술을 촉진하여 안전하고 유지 보수가 용이한 코드를 쉽게 작성할 수 있도록 해준다. 이에 더해 fp-ts는 TypeScript의 type 시스템을 활용하여 강력한 typing을 제공하고 특정 type의 런타임 오류를 방지한다. fp-ts에서 제공하는 주요 기능 부수효과 처리와 연산 체인을 위한 Monad 및 Monad Transforme..
이슈 사항 로그 파일이 쌓이다가 설정 용량에 도달하게 되면 새로운 로그 파일을 만들어서 기록. 이렇게 되면 계속 로그파일이 쌓이게 됨. 오래된 로그는 보관 필요가 없기에 한 파일 내에서 로그가 쌓이고 만약 최대 용량에 도달하면 오래된 로그부터 삭제하게 log rotaion이 필요. 해결 방법 stdout_logfile_maxbytes 을 0으로 변경 - 모든 로그가 하나의 로그 파일에 보관된다. stdout_logfile_backups 을 0으로 변경 - 로그 파일이 너무 크면 별도의 파일로 이동하지 않고 오래된 로그를 삭제한다. stdout_logfile_maxbytes이 0이면 max size가 없다고 생각할 수 있지만 기본값은 50MB로 설정 되어있다고 한다. 참고 Supervisord log fi..
이동 키 기능 w 단어 첫 글자 기준으로 다음으로 이동 W 공백 기준으로 다음(단어의 시작)으로 이동 b 단어 첫 글자 기준으로 이전으로 이동 B 공백 기준으로 이전으로 이동 e 단어 마지막 글자 기준으로 다음으로 이동 E 공백 기준으로 다음(단어의 끝)으로 이동 gg 문서 맨 앞으로 이동 G 문서 맨 아래로 이동 ^ 문장 맨 앞으로 이동 $ 문장 맨 뒤로 이동 찾기 /단어 - 문서에서 단어 찾기 n이나 N으로 다음/이전 찾기 * - 현재 단어를 포워드 방향으로 찾기 # - 현재 단어를 백워드 방향으로 찾기 삽입 키 기능 i 커서 위치에 Insert I 줄 맨 앞에서 Insert a 커서 다음에 Insert A 줄 맨 뒤에서 Insert o 커서 아래로 한 줄 띄우고 Insert O 커서 위로 한 줄 띄..
NPM (Node Package Manager)? npm (노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다. 명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다. 이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은 npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다. npm을 이용한 패키지 설치 $ npm install install 대신 i를 약어로 사용이 가능 → $ npm i 에는 설치할 패키지 명을 적는다. 만약 특정한 ..