Builder.shin
Backend
426개의 게시물
Python
Python asyncio로 API 병렬 호출 최적화하기
외부 API를 순차적으로 호출하던 배치 작업이 30분 넘게 걸리는 문제가 있었다. asyncio와 aiohttp를 사용해 병렬 처리로 전환하니 5분 이내로 단축됐다.
2020년 8월 29일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
10GB 규모의 CSV 파일을 메모리 오버플로우 없이 처리해야 하는 요구사항이 생겼다. Node.js의 Stream API를 활용해 메모리 사용량을 1/100로 줄이고 처리 속도도 개선한 경험을 정리했다.
2020년 8월 23일
Python
Python asyncio로 API 요청 병렬 처리 성능 개선
레거시 배치 스크립트가 순차 처리로 40분씩 걸리던 문제를 asyncio로 해결했다. 동시 요청 수 제한과 에러 핸들링이 관건이었다.
2020년 8월 8일
Golang
Go 채널 버퍼 크기 선택 시행착오
API 서버에서 비동기 로깅 처리 시 채널 버퍼 크기를 잘못 설정해 고루틴이 블로킹되는 문제가 발생했다. 프로파일링으로 원인을 찾고 적절한 버퍼 크기를 산정한 과정을 정리했다.
2020년 8월 4일
Python
Python 데코레이터로 API 응답 캐싱 구현하기
외부 API 호출이 많아지면서 응답 시간이 늘어나는 문제가 있었다. 데코레이터 패턴을 사용해 Redis 기반 캐싱을 구현했고, 평균 응답 시간을 70% 단축시켰다.
2020년 7월 18일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
재택근무 환경에서 100GB 규모의 로그 파일을 처리해야 하는 상황이 발생했다. 기존 방식으로는 메모리 부족 오류가 발생해 Node.js 스트림을 활용한 처리 방식으로 전환했다.
2020년 7월 17일
Golang
Go 채널 버퍼 크기 설정이 성능에 미치는 영향
API 서버의 로그 처리 파이프라인을 구현하면서 채널 버퍼 크기에 따른 성능 차이를 측정했다. 무작정 큰 버퍼가 능사가 아니었고, 워크로드 특성에 맞는 적정 크기를 찾는 것이 중요했다.
2020년 7월 14일
Golang
Go 동시성 패턴: Worker Pool로 대용량 이미지 처리 최적화
S3에 업로드된 이미지를 썸네일로 변환하는 배치 작업에서 고루틴 폭증 문제가 발생했다. Worker Pool 패턴을 적용해 메모리 사용량을 70% 줄이고 처리 속도를 안정화한 과정을 기록한다.
2020년 7월 11일
Python
Python asyncio로 API 병렬 호출 최적화하기
레거시 배치 작업에서 순차적으로 처리하던 외부 API 호출을 asyncio로 개선했다. 실행 시간을 1/5로 줄일 수 있었고, 코드도 생각보다 간결해졌다.
2020년 6월 23일
Python
FastAPI로 기존 Flask API 마이그레이션 후기
재택근무 중 레거시 Flask API 성능 개선이 필요했다. FastAPI로 마이그레이션하면서 겪은 과정과 type hint 기반 validation의 장점을 정리했다.
2020년 6월 21일
Previous
1
More pages
25
26
27
28
29
More pages
43
Next
카테고리