Builder.shin
Backend
426개의 게시물
Python
Python 비동기 작업에서 asyncio.gather의 예외 처리
여러 API를 동시에 호출하는 배치 작업에서 일부 요청이 실패해도 전체가 중단되는 문제가 있었다. asyncio.gather의 return_exceptions 파라미터로 해결했다.
2023년 2월 14일
Node.js
Node.js 스트림 메모리 누수 디버깅
프로덕션 환경에서 발생한 메모리 누수 문제를 스트림 처리 미숙으로 인한 것으로 파악했다. readable 스트림의 이벤트 핸들러를 제대로 정리하지 않아 발생한 문제였다.
2023년 2월 4일
Python
Python 비동기 처리 시 동기 함수 호출 문제 해결
FastAPI 프로젝트에서 비동기 엔드포인트 내부에서 동기 I/O 함수를 호출하면서 성능 저하가 발생했다. asyncio.to_thread()와 run_in_executor()를 활용해 해결한 과정을 정리했다.
2023년 2월 1일
Golang
Go 1.20에서 추가된 에러 처리 개선 사항
Go 1.20이 릴리즈되면서 에러 처리 관련 표준 라이브러리에 유용한 개선이 있었다. 특히 errors.Join과 fmt.Errorf의 다중 에러 wrapping 지원이 눈에 띄었다.
2023년 1월 25일
Python
Python asyncio로 API 병렬 처리 성능 개선
외부 API를 순차 호출하던 배치 작업이 30분 이상 소요되어 asyncio로 전환했다. 동시성 제어와 에러 핸들링을 적용해 실행 시간을 5분 이내로 단축한 과정을 정리했다.
2023년 1월 23일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 이슈 해결
100만 건 이상의 CSV 데이터를 처리하는 배치 작업에서 메모리 부족 에러가 발생했다. 파일을 한 번에 읽지 않고 스트림 방식으로 처리하여 메모리 사용량을 1/10로 줄였다.
2023년 1월 21일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
100GB 규모의 CSV 파일을 메모리 오버플로우 없이 처리해야 하는 상황이 생겼다. fs.readFile 대신 스트림 API를 활용해 메모리 사용량을 98% 줄인 과정을 기록한다.
2023년 1월 15일
Node.js
Node.js 프로세스 메모리 누수 추적기
프로덕션 환경에서 Node.js 애플리케이션의 메모리가 지속적으로 증가하는 문제를 발견했다. heap snapshot과 Chrome DevTools를 활용해 메모리 누수 원인을 찾고 해결한 과정을 기록한다.
2023년 1월 2일
Rust
Rust로 CLI 도구 만들며 배운 것들
Node.js로 작성한 배포 스크립트를 Rust로 재작성했다. 속도 개선보다 소유권 시스템과 에러 처리를 배우는 게 목표였다. 실무에 바로 쓰긴 어렵지만 좋은 학습 경험이었다.
2023년 1월 1일
Node.js
Node.js 환경변수 관리 - dotenv-vault로 팀 전체 설정 동기화하기
프로젝트 규모가 커지면서 팀원마다 다른 .env 파일을 관리하는 게 불편해졌다. 누군가 새로운 환경변수를 추가하면 Slack으로 공유하고, 신규 팀원은 따로 설정 파일을 받아야 했다. dotenv-vault를 도입해서 이 문제를 해결한 과정을 기록한다.
2022년 12월 27일
Previous
1
More pages
10
11
12
13
14
More pages
43
Next
카테고리
Builder.shin