Builder.shin
Backend
426개의 게시물
Node.js
Node.js 스트림으로 대용량 CSV 파싱 최적화하기
500MB 이상의 CSV 파일을 처리하면서 메모리 부족 에러가 발생했다. 스트림 기반 파싱으로 전환해 메모리 사용량을 95% 줄인 과정을 기록했다.
2025년 1월 27일
Python
Python asyncio에서 blocking 코드 처리하기
FastAPI 프로젝트에서 sync 라이브러리를 사용하면서 이벤트 루프가 블로킹되는 문제를 겪었다. run_in_executor를 활용해 CPU 바운드 작업을 별도 스레드로 분리하여 해결했다.
2025년 1월 24일
Golang
Go 1.24에서 개선된 range-over-func로 iterator 패턴 구현하기
Go 1.24에서 정식 도입된 range-over-func 문법을 활용해 커스텀 iterator를 구현했다. 기존 채널 기반 방식보다 성능과 가독성 모두 개선되었다.
2025년 1월 16일
Node.js
Node.js 스트림 체이닝으로 대용량 CSV 파싱 최적화
10GB 규모의 CSV 파일을 메모리에 올리지 않고 처리해야 하는 요구사항이 생겼다. Stream API를 활용해 메모리 사용량을 98% 줄이고 처리 속도도 개선한 과정을 정리했다.
2025년 1월 11일
Rust
Rust로 CLI 도구 만들면서 배운 에러 처리 패턴
회사 내부용 배포 도구를 Rust로 마이그레이션하면서 Result와 anyhow를 활용한 에러 처리 패턴을 정리했다. Node.js 버전 대비 실행 속도와 배포 편의성이 크게 개선되었다.
2024년 11월 25일
Rust
Rust로 CLI 도구 만들며 배운 소유권 시스템
사내 배포 자동화를 위해 Rust로 CLI 도구를 작성했다. Python 스크립트를 대체하는 과정에서 소유권 시스템과 씨름한 기록이다.
2024년 11월 24일
Python
Python asyncio로 API 동시 호출 최적화하기
레거시 배치 작업에서 순차 API 호출로 인한 성능 문제를 asyncio와 aiohttp로 해결했다. 실행 시간을 80% 단축할 수 있었다.
2024년 11월 11일
Golang
Go 1.23의 Generic Iterator 패턴 적용기
Go 1.23에서 새롭게 도입된 range over function을 활용한 iterator 패턴을 기존 코드베이스에 적용했다. 특히 대용량 데이터 스트림 처리 시 메모리 효율이 크게 개선되었다.
2024년 11월 3일
Python
Python 비동기 작업에서 ThreadPoolExecutor vs ProcessPoolExecutor 선택 기준
CPU 바운드 작업 처리를 위해 멀티프로세싱을 도입하면서 ThreadPoolExecutor와 ProcessPoolExecutor의 성능 차이를 테스트했다. I/O 바운드와 CPU 바운드 작업의 특성에 따라 적절한 선택이 필요했다.
2024년 10월 30일
Golang
Go 1.23 제네릭을 활용한 공통 응답 래퍼 구현
API 서버 개발 중 반복되는 응답 구조 처리를 제네릭으로 개선했다. 타입 안정성을 확보하면서도 코드 중복을 크게 줄일 수 있었다.
2024년 10월 24일
Previous
1
2
3
4
5
6
More pages
43
Next
카테고리
Builder.shin