Builder.shin
Node.js
165개의 게시물
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
5GB 크기의 CSV 파일을 메모리에 올리지 않고 처리해야 하는 상황이 생겼다. Node.js의 Stream API를 활용해 메모리 효율적으로 처리한 방법을 기록한다.
2018년 10월 19일
Node.js
Node.js API에서 BigInt 다루기 - MySQL BIGINT 변환 이슈
MySQL BIGINT 컬럼을 Node.js에서 조회할 때 JavaScript Number의 안전 범위를 벗어나는 문제가 발생했다. 이를 해결하기 위해 mysql2 드라이버의 supportBigNumbers 옵션을 적용했다.
2018년 9월 14일
Node.js
Node.js 8에서 10으로 마이그레이션하면서 겪은 문제들
회사 프로젝트를 Node.js 8에서 10 LTS로 업그레이드했다. 대부분 순조로웠지만 몇 가지 예상치 못한 문제가 있었고, 특히 네이티브 모듈과 OpenSSL 관련 이슈가 있었다.
2018년 8월 29일
Node.js
Node.js 멀티코어 활용을 위한 Cluster 모듈 도입기
API 서버의 CPU 사용률이 25%를 넘지 않는 문제를 발견했다. 4코어 서버에서 단일 프로세스만 동작하고 있었고, Cluster 모듈을 통해 멀티코어를 활용하도록 개선했다.
2018년 8월 16일
Node.js
Node.js 비동기 처리 중 발생한 메모리 누수 해결
대용량 CSV 파싱 API에서 메모리 사용량이 지속적으로 증가하는 문제를 겪었다. stream을 제대로 종료하지 않아 발생한 메모리 누수였고, 이를 해결한 과정을 기록한다.
2018년 6월 16일
Node.js
Node.js 비동기 에러 핸들링 - 놓치기 쉬운 Promise rejection
프로덕션에서 간헐적으로 발생하는 500 에러를 추적하다가 unhandledRejection 이벤트를 발견했다. Promise rejection을 제대로 처리하지 않으면 Node.js 프로세스가 조용히 종료될 수 있다는 사실을 배웠다.
2018년 5월 14일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
서비스에 업로드되는 CSV 파일 용량이 커지면서 메모리 부족 에러가 발생했다. Node.js 스트림을 활용해 메모리 사용량을 줄이고 안정적으로 처리할 수 있었다.
2018년 5월 10일
Node.js
Node.js 비동기 에러 처리에서 unhandledRejection 이벤트 활용하기
프로덕션 환경에서 Promise rejection이 처리되지 않아 앱이 조용히 실패하는 문제를 겪었다. unhandledRejection 이벤트 핸들러를 통해 이를 모니터링하고 로깅하는 방법을 정리했다.
2018년 4월 29일
Node.js
Node.js에서 Promise.all 대신 p-limit로 동시성 제어하기
수천 개의 API 요청을 처리하다가 서버가 죽는 문제를 겪었다. Promise.all의 무분별한 사용이 원인이었고, p-limit 라이브러리로 동시성을 제어해 해결했다.
2018년 3월 16일
Node.js
Node.js 비동기 처리 중 발생한 UnhandledPromiseRejection 디버깅
프로덕션 환경에서 간헐적으로 발생하던 UnhandledPromiseRejection 경고를 추적했다. Promise 체인에서 에러 핸들링을 누락한 부분을 찾아 해결한 과정을 기록한다.
2018년 2월 19일
Previous
1
More pages
11
12
13
14
15
More pages
17
Next
카테고리
Builder.shin