이전 글 [Node.js] Node.js의 가비지 컬렉션 (Garbage Collection, GC) 1 _ V8 엔진의 메모리 구조 (Stack과 Heep)사내 서비스 개선 보고서 중 Node.js 기반으로 구동하고 있는 애플리케이션의 안정화에 대한 내용을 보게 되었다. 해당 서비스는 끊김 현상이 지속적으로 있었고 이는 곧 연결 재시도 폭주로 인jangbageum.tistory.com 이전 글에서는 V8 엔진과 V8 엔진의 메모리 구조에 대해 간단하게 알아보았다.이러한 메모리 구조에서 동적인 데이터를 어떻게 관리하는지 가비지 컬렉션을 통해 알아보려고 한다. # 가지비 컬렉션이란가비지 컬렉션 (Garbage Collection, GC)은 자동 메모리 관리의 한 형태이다. 이는 Heap 영역에서 동적으로..
javascript
사내 서비스 개선 보고서 중 Node.js 기반으로 구동하고 있는 애플리케이션의 안정화에 대한 내용을 보게 되었다. 해당 서비스는 끊김 현상이 지속적으로 있었고 이는 곧 연결 재시도 폭주로 인해 장애 전파, 트래픽 유실 등의 문제를 야기하였다. 이 방법을 해결하기 위해서 스케일업, 스케일아웃을 진행하였으나 고질적인 프로세스 중단 문제는 해결되지 않았고 민감도를 낮추지 못했다.이 보고서에서는 Node.js 런타임 상의 메모리 사용에 대한 내용을 다루어 해결하려는 시도가 있었으며 이 과정에서 "--max-old-space-size 옵션"에 대한 내용이 등장한다. 단순히 "old space가 뭘까? 그럼 new space도 있나? 껄껄 (진짜 있었다.)" 하는 궁금증과 Node.js를 주로 다루고 있는 나로..
Node.js의 child_process 모듈을 사용하여 프로세스를 실행하고 결과를 받는 과정에서 콜백 형태가 아닌 더 깔끔한 방법으로 처리 가능할까 하고 찾아보다가 promisify()라는 함수를 알게 되었습니다. 나름 유용할 것 같아 소개 글을 작성해보려고 합니다. Node.js는 비동기적인 작업을 수행하는데 매우 유용한 프레임워크입니다. 그러나 Node.js에서는 대부분의 함수들이 콜백 패턴을 사용하며, 이는 비동기적인 작업을 수행할 때 중첩된 코드를 작성하게 만들어 코드의 가독성과 유지보수성을 낮추는 요인 중 하나입니다. 이러한 문제를 해결하기 위해 Node.js의 util 모듈에는 콜백 패턴을 사용하는 함수를 Promise 객체를 반환하는 함수로 변환해 주는 promisify() 함수가 있습니다..
[Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 jangbageum.tistory.com [Node.js] 스트림이란 (Stream) ② [Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 jangbageum.tistory.com 이전 포스트에서 Stream을 다룬 이유는 RxJS를 접하게 되면..
[Node.js] 스트림이란 (Stream) ① C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 jangbageum.tistory.com Node.js 스트림은 데이터 처리를 위한 강력한 기능입니다. 이전 포스팅에서는 스트림 개요, 스트림 API, 스트림 사용 예시 등에 대해 알아보았습니다. 이번 포스팅에서는 스트림 변환, 스트림의 한계, 스트림 활용 등에 대해 더 자세히 알아보도록 하겠습니다. 스트림 변환 스트림 변환은 데이터를 변환하여 스트림을 통해 전달하는 것을 의미합니다. 이를 통해 스트림을 통해 데이터를 처리하고 변환하는 ..
C++로 작성된 DLL을 이용해 Callback 데이터를 node.js기반의 프로그램으로 받아오는 작업을 진행하면서 rxjs라는 모듈을 사용해보았습니다. reactive의 필수 개념인 steam을 학습해보면서 공부한 내용을 기록해두려고 합니다. Node.js Streams는 많은 데이터를 다루는 경우, 빠르고 효율적인 방법으로 데이터를 처리할 수 있게 해주는 기능입니다. 이번 글에서는 Node.js Streams의 개요, API 및 사용 예시에 대해 알아보겠습니다. 스트림 개요 Node.js Streams는 "데이터 처리를 위한 추상 인터페이스"입니다. 이는 데이터 처리의 다양한 측면을 추상화하여 처리를 단순화합니다. 스트림은 데이터의 흐름을 의미하며, 처리해야 할 데이터를 스트림으로 바꾸어 처리하면 더..