Builder.shin
Backend
426개의 게시물
Golang
Go 에러 핸들링 패턴 정리
Node.js 백엔드를 Go로 마이그레이션하면서 에러 핸들링 방식이 완전히 달랐다. try-catch에 익숙한 상태에서 Go의 명시적 에러 처리 패턴을 정리했다.
2018년 7월 14일
Python
Python 멀티프로세싱으로 데이터 처리 속도 개선
단일 스레드로 처리하던 대용량 CSV 파싱 작업이 너무 오래 걸려서 멀티프로세싱을 도입했다. GIL 제약을 우회하고 4배 이상 성능 향상을 얻었다.
2018년 7월 12일
Golang
Go 1.10 컨텍스트 타임아웃 처리 패턴
외부 API 호출이 많은 서비스에서 타임아웃 처리를 위해 Go의 context 패턴을 적용했다. 기존 채널 기반 타임아웃보다 명확하고 전파가 용이했다.
2018년 7월 4일
Python
Python Decorator를 이용한 API 요청 로깅
사내 레거시 API 서버의 디버깅을 위해 요청/응답 로깅을 추가했다. Decorator 패턴을 활용하여 기존 코드를 최소한으로 수정하면서 로깅 기능을 적용한 과정을 정리한다.
2018년 7월 3일
Node.js
Node.js 비동기 처리 중 발생한 메모리 누수 해결
대용량 CSV 파싱 API에서 메모리 사용량이 지속적으로 증가하는 문제를 겪었다. stream을 제대로 종료하지 않아 발생한 메모리 누수였고, 이를 해결한 과정을 기록한다.
2018년 6월 16일
Python
Python 멀티프로세싱으로 대용량 CSV 처리 속도 개선
100만 건 이상의 CSV 데이터를 처리하는 배치 작업이 너무 느려서 멀티프로세싱을 적용했다. 단순 반복문 대비 4배 가까운 성능 향상을 얻었고, 메모리 관리에서 몇 가지 주의사항을 발견했다.
2018년 6월 8일
Node.js
Node.js 비동기 에러 핸들링 - 놓치기 쉬운 Promise rejection
프로덕션에서 간헐적으로 발생하는 500 에러를 추적하다가 unhandledRejection 이벤트를 발견했다. Promise rejection을 제대로 처리하지 않으면 Node.js 프로세스가 조용히 종료될 수 있다는 사실을 배웠다.
2018년 5월 14일
Node.js
Node.js 스트림으로 대용량 CSV 파일 처리하기
서비스에 업로드되는 CSV 파일 용량이 커지면서 메모리 부족 에러가 발생했다. Node.js 스트림을 활용해 메모리 사용량을 줄이고 안정적으로 처리할 수 있었다.
2018년 5월 10일
Golang
Node.js 개발자의 Go 첫 프로젝트 회고
3년간 Node.js만 사용하다가 처음으로 Go로 마이크로서비스를 구축했다. 타입 안정성과 성능은 만족스러웠지만, 에러 핸들링에서는 적응이 필요했다.
2018년 5월 1일
Node.js
Node.js 비동기 에러 처리에서 unhandledRejection 이벤트 활용하기
프로덕션 환경에서 Promise rejection이 처리되지 않아 앱이 조용히 실패하는 문제를 겪었다. unhandledRejection 이벤트 핸들러를 통해 이를 모니터링하고 로깅하는 방법을 정리했다.
2018년 4월 29일
Previous
1
More pages
34
35
36
37
38
More pages
43
Next
카테고리
Builder.shin