Builder.shin
Backend
426개의 게시물
Python
Python 비동기 작업 큐에서 메모리 누수 추적하기
Celery로 구현한 이미지 처리 워커에서 메모리가 계속 증가하는 문제가 발생했다. tracemalloc과 objgraph를 활용해 원인을 찾고 해결한 과정을 기록했다.
2023년 7월 23일
Golang
Go 1.21 제네릭으로 타입 안전한 캐시 레이어 구현
사내 API 서버에서 반복되는 캐싱 로직을 제네릭으로 추상화했다. Go 1.18에서 도입된 제네릭을 실전에 적용하면서 배운 점들을 정리한다.
2023년 7월 18일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
5GB 크기의 CSV 파일을 메모리에 올리지 않고 처리해야 하는 요구사항이 생겼다. Node.js 스트림 API를 활용해 메모리 사용량을 95% 줄이고 안정적으로 처리한 과정을 정리했다.
2023년 7월 12일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 문제 해결
100MB 이상 CSV 파일 업로드 시 메모리 부족으로 서버가 죽는 문제가 발생했다. 스트림 기반 파싱으로 변경하여 메모리 사용량을 1/10로 줄였다.
2023년 7월 9일
Node.js
Node.js 스트림 파이프라인으로 대용량 CSV 처리 최적화
매일 밤 100MB 이상의 CSV 파일을 처리하는 배치 작업에서 메모리 부족 에러가 발생했다. Stream API와 pipeline을 활용해 메모리 사용량을 1/10로 줄이고 처리 속도도 개선한 과정을 기록한다.
2023년 7월 3일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
100만 행 규모의 CSV 파일을 처리하다가 메모리 부족 에러가 발생했다. 파일 전체를 메모리에 올리던 방식을 스트림 기반으로 변경해 문제를 해결한 과정을 정리했다.
2023년 6월 29일
Python
Python asyncio로 API 호출 속도 개선하기
레거시 배치 작업에서 순차적으로 처리하던 외부 API 호출을 asyncio로 전환했다. 실행 시간이 12분에서 2분으로 줄어들었고, 코드 구조도 깔끔해졌다.
2023년 6월 26일
Rust
Rust의 소유권 시스템으로 메모리 안전성 확보하기
Node.js 백엔드에서 성능 병목이 발생한 이미지 처리 작업을 Rust로 마이그레이션했다. 소유권 시스템 덕분에 메모리 누수 없이 안전하게 동시성을 구현할 수 있었다.
2023년 6월 24일
Python
Python 비동기 처리에서 asyncio.gather()와 as_completed() 선택 기준
API 크롤러 리팩토링 중 asyncio.gather()와 as_completed()의 차이를 정확히 파악하게 됐다. 결과 순서 보장 여부와 메모리 효율성 측면에서 명확한 차이가 있었고, 각 상황에 맞는 선택 기준을 정리했다.
2023년 6월 23일
Node.js
Node.js 스트림으로 대용량 CSV 처리 최적화
월간 정산 배치 작업에서 메모리 부족 에러가 발생했다. 5GB 크기의 CSV 파일을 스트림으로 처리하도록 리팩토링하여 메모리 사용량을 90% 줄였다.
2023년 6월 15일
Previous
1
More pages
8
9
10
11
12
More pages
43
Next
카테고리
Builder.shin