Builder.shin
Backend
426개의 게시물
Golang
Go 1.22 generics로 슬라이스 유틸리티 함수 리팩토링
반복되는 슬라이스 처리 로직을 제네릭으로 개선했다. interface{} 남발하던 코드가 타입 안전하게 바뀌면서 런타임 에러도 줄었다.
2024년 7월 14일
Node.js
Node.js 22에서 달라진 fetch API 기본 동작
Node.js 22로 업그레이드 후 기존 fetch 호출에서 타임아웃 이슈가 발생했다. 기본 타임아웃 정책이 변경되면서 생긴 문제였고, AbortController를 활용해 해결했다.
2024년 7월 12일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
10GB 이상의 CSV 파일을 메모리 효율적으로 처리해야 하는 요구사항이 생겼다. 기존 방식의 문제점을 파악하고 스트림 기반으로 리팩토링한 과정을 기록한다.
2024년 7월 6일
Python
Python asyncio로 외부 API 호출 성능 개선하기
레거시 배치 작업에서 순차적으로 처리하던 외부 API 호출을 asyncio로 전환했다. 약 300개의 API 호출 시간이 15분에서 2분으로 단축되었고, 코드 변경은 생각보다 간단했다.
2024년 6월 21일
Golang
Go 1.22 제네릭으로 리팩토링하며 배운 것들
레거시 코드베이스에 Go 제네릭을 적용하면서 겪은 시행착오를 정리했다. 타입 안정성은 높아졌지만 컴파일 타임이 늘어나는 트레이드오프가 있었다.
2024년 6월 10일
Node.js
Node.js 22 LTS 준비와 성능 측정
Node.js 22가 LTS 준비 단계에 들어가면서 프로덕션 환경 적용을 위한 성능 테스트를 진행했다. V8 12.4 업그레이드로 인한 성능 개선과 주의할 점들을 정리했다.
2024년 6월 1일
Golang
Go 1.22에서 추가된 for 루프 변수 스코프 변경 적용기
Go 1.22부터 for 루프 변수의 스코프가 변경되면서 기존 코드에서 발생하던 고루틴 버그를 해결했다. 레거시 코드를 마이그레이션하면서 겪은 케이스들을 정리했다.
2024년 5월 17일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리 최적화
10GB 이상의 CSV 파일을 처리하는 배치 작업에서 메모리 부족 오류가 발생했다. Node.js 스트림을 활용해 메모리 사용량을 95% 줄이고 처리 속도도 개선한 과정을 기록한다.
2024년 5월 13일
Python
Python 비동기 처리에서 발생한 Event Loop 블로킹 해결
FastAPI 서비스에서 특정 요청이 다른 요청들을 블로킹하는 문제를 발견했다. asyncio의 event loop 특성을 이해하지 못해 동기 함수를 잘못 사용한 것이 원인이었다.
2024년 5월 11일
Python
Python 비동기 처리에서 asyncio.gather() vs TaskGroup 선택 기준
API 배치 처리 성능 개선 과정에서 asyncio.gather()와 Python 3.11의 TaskGroup을 비교했다. 에러 핸들링 요구사항에 따라 선택 기준이 명확했다.
2024년 5월 9일
Previous
1
More pages
4
5
6
7
8
More pages
43
Next
카테고리
Builder.shin