Builder.shin
Backend
426개의 게시물
Node.js
Node.js 스트림으로 대용량 CSV 파싱 최적화
매일 밤 10GB 이상의 CSV 파일을 처리하는 배치 작업에서 메모리 부족 에러가 발생했다. Node.js 스트림을 활용해 메모리 사용량을 1/10로 줄이고 처리 속도도 개선한 과정을 기록했다.
2018년 11월 16일
Python
Python asyncio로 API 호출 성능 개선하기
레거시 배치 작업에서 외부 API를 순차 호출하면서 발생한 성능 문제를 asyncio로 해결했다. 동기 방식 대비 약 10배 빠른 처리 속도를 확보할 수 있었다.
2018년 11월 10일
Golang
Go 채널을 활용한 워커 풀 패턴 구현
Node.js 백엔드에서 처리하던 이미지 리사이징 작업을 Go로 마이그레이션했다. 동시성 처리를 위해 채널 기반 워커 풀 패턴을 적용한 경험을 정리한다.
2018년 10월 28일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
5GB 크기의 CSV 파일을 메모리에 올리지 않고 처리해야 하는 상황이 생겼다. Node.js의 Stream API를 활용해 메모리 효율적으로 처리한 방법을 기록한다.
2018년 10월 19일
Python
Python 멀티프로세싱으로 대용량 이미지 처리 최적화하기
사용자 업로드 이미지를 여러 해상도로 리사이징하는 작업이 병목이 되어 멀티프로세싱을 도입했다. CPU 코어를 활용해 처리 속도를 3배 이상 개선한 과정을 정리했다.
2018년 10월 7일
Node.js
Node.js API에서 BigInt 다루기 - MySQL BIGINT 변환 이슈
MySQL BIGINT 컬럼을 Node.js에서 조회할 때 JavaScript Number의 안전 범위를 벗어나는 문제가 발생했다. 이를 해결하기 위해 mysql2 드라이버의 supportBigNumbers 옵션을 적용했다.
2018년 9월 14일
Python
Python asyncio로 API 병렬 호출 성능 개선
레거시 데이터 마이그레이션 스크립트에서 외부 API 호출이 병목이었다. asyncio를 도입해 순차 처리 대비 5배 성능 개선을 달성했다.
2018년 9월 5일
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일
Python
Python 딕셔너리 병합 시 성능 비교
레거시 API 응답을 병합하는 과정에서 딕셔너리 병합 방법별 성능 차이를 측정했다. Python 3.5+에서 사용 가능한 여러 방법을 비교하고 실무에 적용한 내용을 정리했다.
2018년 7월 17일
Previous
1
More pages
33
34
35
36
37
More pages
43
Next
카테고리
Builder.shin