Builder.shin
Backend
426개의 게시물
Python
Python 딕셔너리 병합, 3.5 이상에서 언패킹 연산자 활용
레거시 코드에서 딕셔너리를 병합하는 방식이 제각각이어서 통일된 방식을 찾아봤다. Python 3.5부터 지원하는 언패킹 연산자가 가장 직관적이고 간결했다.
2019년 5월 11일
Python
Python 비동기 처리 asyncio 실전 적용기
API 서버의 외부 호출 병목을 해결하기 위해 asyncio를 도입했다. requests 기반 동기 코드를 aiohttp로 전환하며 겪은 시행착오와 성능 개선 결과를 정리했다.
2019년 5월 10일
Node.js
Node.js 이벤트 루프와 Promise 동시성 제어
API 크롤러를 만들다가 과도한 동시 요청으로 서버가 차단되는 문제를 겪었다. Promise.all의 무분별한 사용을 개선하고, 동시성을 제어하는 방법을 정리했다.
2019년 5월 7일
Golang
Go의 context 패키지로 HTTP 요청 타임아웃 처리하기
외부 API 호출 시 무한 대기 문제가 발생해 서비스 전체가 느려지는 현상을 겪었다. Go의 context 패키지를 활용해 타임아웃을 적절히 처리하는 방법을 정리했다.
2019년 4월 20일
Rust
Rust 첫 프로젝트: CLI 도구를 만들며 배운 소유권 개념
Node.js로 만들던 CLI 도구를 Rust로 재작성하며 소유권 시스템을 처음 접했다. 컴파일러 에러와 씨름하며 배운 기본 개념들을 정리한다.
2019년 4월 15일
Python
Python 멀티프로세싱으로 이미지 리사이징 속도 개선
사용자가 업로드한 수천 장의 이미지를 리사이징하는 배치 작업이 너무 오래 걸려서 멀티프로세싱을 적용했다. CPU 코어를 활용해 처리 시간을 1/4로 단축했다.
2019년 4월 6일
Rust
Rust 소유권 시스템과 메모리 안정성
Node.js 백엔드 작업 중 메모리 누수 이슈를 겪으며 Rust의 소유권 시스템에 관심을 갖게 되었다. GC 없이 메모리 안정성을 보장하는 Rust의 핵심 개념을 정리했다.
2019년 3월 25일
Python
Python 비동기 처리 asyncio로 API 응답 속도 개선
레거시 크롤러를 asyncio로 리팩토링하면서 응답 속도를 4배 개선했다. 동기 처리에서 비동기로 전환하며 마주친 이슈들을 정리한다.
2019년 3월 20일
Node.js
Node.js 멀티파트 파일 업로드 처리 시 메모리 이슈 해결
대용량 파일 업로드 시 서버 메모리가 급증하는 문제가 발생했다. multer의 스트리밍 처리 방식으로 전환하여 메모리 사용량을 90% 이상 절감했다.
2019년 3월 10일
Node.js
Node.js 이벤트 루프 블로킹으로 인한 API 응답 지연 해결
API 서버에서 특정 엔드포인트 호출 시 다른 요청까지 지연되는 현상이 발생했다. 원인은 동기 처리로 인한 이벤트 루프 블로킹이었고, Worker Threads와 비동기 처리로 해결했다.
2019년 3월 3일
Previous
1
More pages
31
32
33
34
35
More pages
43
Next
카테고리
Builder.shin