Builder.shin
Backend
426개의 게시물
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
10GB 이상의 CSV 파일을 메모리 부족 없이 처리해야 하는 상황에 직면했다. Node.js 스트림을 활용해 메모리 사용량을 100MB 이하로 유지하며 안정적으로 처리한 방법을 기록한다.
2021년 1월 18일
Golang
Go에서 context timeout 제대로 다루기
API 서버에서 외부 서비스 호출 시 timeout이 제대로 동작하지 않는 문제가 발생했다. context를 잘못 전파하고 있었고, 이를 수정하면서 Go의 context 패턴을 다시 정리했다.
2021년 1월 12일
Python
FastAPI에서 Pydantic으로 복잡한 중첩 응답 모델 검증하기
외부 API 응답을 FastAPI에서 가공해 반환하는 과정에서 중첩된 데이터 구조의 타입 검증이 필요했다. Pydantic의 BaseModel을 활용해 런타임 검증과 IDE 지원을 동시에 얻을 수 있었다.
2021년 1월 10일
Rust
Rust로 CLI 도구 만들어보기 - Node.js 대비 실행 속도
프로젝트 템플릿 생성 CLI를 Node.js에서 Rust로 재작성했다. 번들 사이즈와 실행 속도 개선이 목적이었는데, 생각보다 러닝커브가 있었다.
2021년 1월 7일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 이슈 해결
100MB 이상의 CSV 파일을 한번에 메모리에 올리면서 발생한 OOM 에러를 스트림 기반으로 전환하여 해결했다. 기존 방식 대비 메모리 사용량을 90% 이상 줄일 수 있었다.
2021년 1월 2일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 문제 해결
100MB 이상의 CSV 파일을 처리하다가 메모리 부족 에러가 발생했다. fs.readFile로 전체를 읽지 않고 스트림을 사용해 해결한 과정을 기록한다.
2020년 12월 30일
Python
FastAPI 도입 후 Django REST Framework와 비교
사내 마이크로서비스 프로젝트에 FastAPI를 도입했다. 기존 Django REST Framework와 비교했을 때 체감되는 성능 차이와 개발 경험을 정리했다.
2020년 12월 29일
Python
Python 타입 힌트와 mypy로 런타임 에러 줄이기
레거시 Python 프로젝트에 타입 힌트를 점진적으로 도입하면서 mypy를 적용한 경험을 정리했다. 타입 체크를 통해 배포 전에 잡을 수 있는 에러가 생각보다 많았다.
2020년 12월 22일
Python
Python asyncio로 외부 API 호출 성능 개선하기
레거시 배치 작업에서 외부 API를 순차 호출하던 부분을 asyncio로 개선했다. 10분 걸리던 작업이 1분 이내로 단축됐고, aiohttp와 asyncio.gather를 활용한 동시성 처리 방법을 정리했다.
2020년 12월 14일
Python
Python 타입 힌트와 mypy로 런타임 에러 줄이기
프로젝트 규모가 커지면서 타입 관련 버그가 자주 발생했다. Python 3.8의 타입 힌트와 mypy를 도입해 정적 타입 체크를 적용한 경험을 정리했다.
2020년 12월 3일
Previous
1
More pages
23
24
25
26
27
More pages
43
Next
카테고리