Builder.shin
Backend
426개의 게시물
Python
Python 비동기 처리에서 asyncio.gather vs asyncio.as_completed 선택 기준
API 배치 처리 작업을 개선하면서 asyncio.gather와 as_completed의 차이를 정확히 이해하게 되었다. 각각의 사용 시나리오와 성능 특성을 정리했다.
2021년 6월 10일
Python
FastAPI에서 비동기 DB 커넥션 풀 관리하기
FastAPI 프로젝트에서 asyncpg를 사용하면서 커넥션 풀 관리 문제를 겪었다. 요청이 몰릴 때 커넥션이 고갈되는 이슈를 해결한 과정을 정리했다.
2021년 5월 31일
Rust
Rust의 소유권 시스템을 Node.js 개발자 관점에서 이해하기
Node.js 백엔드 개발을 주로 하다가 Rust를 처음 접하면서 가장 낯설었던 개념이 소유권(Ownership)이었다. 가비지 컬렉션에 익숙한 개발자 입장에서 Rust의 메모리 관리 방식을 정리해봤다.
2021년 5월 16일
Python
FastAPI에서 Pydantic으로 복잡한 응답 검증 처리하기
외부 API 응답을 내부 도메인 모델로 변환하는 과정에서 Pydantic의 validator와 root_validator를 활용했다. 중첩된 JSON 구조를 안전하게 파싱하고 비즈니스 로직을 검증 레이어에 통합한 경험을 정리했다.
2021년 5월 13일
Golang
Go에서 Context를 이용한 Graceful Shutdown 구현
API 서버에서 배포 중 요청이 끊기는 문제가 발생했다. Context와 signal을 활용해 진행 중인 요청을 안전하게 처리하는 graceful shutdown을 구현했다.
2021년 5월 8일
Python
FastAPI 프로젝트에 Pydantic BaseSettings로 환경 변수 관리 개선하기
Python 환경 변수 관리를 python-dotenv에서 Pydantic BaseSettings로 전환했다. 타입 안정성과 유효성 검증이 자동으로 이뤄져 런타임 에러를 사전에 방지할 수 있었다.
2021년 5월 6일
Rust
Rust로 Node.js Native Addon 작성해보기
이미지 처리 API의 성능 병목을 해결하기 위해 Rust로 Native Addon을 작성했다. neon을 사용한 바인딩 작업과 실제 성능 개선 결과를 기록한다.
2021년 5월 3일
Golang
Go 프로젝트에 Context Timeout 적용하며 배운 것들
외부 API 호출 시 타임아웃 처리가 제대로 되어있지 않아 장애가 발생했다. Context를 활용한 타임아웃 패턴을 적용하며 배운 내용을 정리했다.
2021년 4월 26일
Python
Python 비동기 처리: asyncio와 aiohttp로 API 호출 성능 개선
레거시 Python 스크립트의 순차적인 외부 API 호출을 asyncio와 aiohttp로 개선했다. 100개 요청 기준 약 15초에서 2초로 단축되었고, 코드 구조도 크게 복잡해지지 않았다.
2021년 4월 16일
Golang
Go 1.16 embed 패키지로 정적 파일 바이너리에 포함하기
Go 1.16에서 추가된 embed 패키지를 사용해 정적 파일을 바이너리에 포함시키는 방법을 정리했다. 기존에는 go-bindata 같은 서드파티 도구를 써야 했는데, 이제 표준 라이브러리로 해결할 수 있게 됐다.
2021년 4월 14일
Previous
1
More pages
21
22
23
24
25
More pages
43
Next
카테고리