Builder.shin
Backend
426개의 게시물
Rust
Rust 소유권 시스템과 메모리 안전성
Node.js 서버의 성능 병목 구간을 개선하면서 Rust를 처음 접했다. GC 없이 메모리 안전성을 보장하는 소유권 시스템이 인상적이었고, 실제로 C++ 대비 훨씬 안전한 코드를 작성할 수 있었다.
2019년 9월 15일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
사용자 데이터 마이그레이션 작업 중 10GB 크기의 CSV 파일을 메모리 오버플로우 없이 처리해야 했다. Node.js 스트림을 활용해 일정 메모리 내에서 안정적으로 처리한 경험을 정리했다.
2019년 8월 31일
Golang
Go에서 context를 활용한 타임아웃 처리
외부 API 호출 시 응답 지연으로 인한 장애를 겪었다. Go의 context 패키지를 활용해 타임아웃을 적용하고 안정성을 개선한 과정을 정리했다.
2019년 8월 23일
Golang
Go 에러 핸들링 패턴 정리
Node.js 백엔드를 Go로 마이그레이션하면서 가장 많이 고민했던 부분이 에러 핸들링이었다. try-catch에 익숙한 상태에서 Go의 명시적 에러 처리 방식을 정리했다.
2019년 8월 6일
Node.js
Node.js 프로세스 메모리 누수 추적기
프로덕션 환경에서 Node.js 서버의 메모리 사용량이 지속적으로 증가하는 문제를 겪었다. heapdump와 Chrome DevTools를 활용해 원인을 찾아 해결한 과정을 기록한다.
2019년 8월 5일
Golang
Go 채널과 select를 이용한 동시성 패턴 정리
Node.js 백엔드를 Go로 전환하면서 채널 기반 동시성 처리를 학습했다. 실무에서 자주 사용하는 패턴 몇 가지를 정리해둔다.
2019년 7월 31일
Python
Django ORM N+1 쿼리 문제 해결
API 응답 속도가 느려져서 확인해보니 N+1 쿼리 문제였다. select_related와 prefetch_related를 적용해서 해결한 과정을 기록한다.
2019년 7월 20일
Python
Python 멀티프로세싱으로 CSV 대량 처리 성능 개선
일 배치 작업에서 50만 건 규모의 CSV 파일 처리 시간이 문제였다. multiprocessing 모듈을 적용해 처리 시간을 1/4로 단축시킨 과정을 기록한다.
2019년 7월 17일
Python
Python 비동기 처리 도입기: asyncio와 aiohttp로 API 호출 최적화
외부 API를 순차적으로 호출하던 배치 작업의 성능 문제를 asyncio와 aiohttp를 활용해 개선했다. 동기 방식 대비 약 5배의 성능 향상을 얻었고, 그 과정에서 마주친 이슈들을 정리했다.
2019년 7월 13일
Node.js
Node.js 멀티파트 파일 업로드 처리 방법 정리
프로젝트에서 이미지 업로드 기능을 구현하면서 multer를 사용하게 되었다. 파일 크기 제한, 파일 타입 검증, S3 업로드까지 처리하는 과정을 정리했다.
2019년 6월 29일
Previous
1
More pages
29
30
31
32
33
More pages
43
Next
카테고리
Builder.shin