Builder.shin
Backend
426개의 게시물
Golang
Go 1.21 defer 성능 개선과 실제 프로젝트 적용기
Go 1.21로 업그레이드하면서 defer의 성능이 크게 개선된 것을 확인했다. 기존에 성능 문제로 피했던 패턴들을 다시 도입할 수 있게 되었고, 코드 가독성도 함께 개선되었다.
2023년 10월 29일
Rust
Rust의 Result 타입으로 Node.js 에러 핸들링 개선하기
Node.js 프로젝트에서 try-catch 중첩 지옥을 겪으며 Rust의 Result 패턴을 TypeScript로 구현해봤다. 명시적인 에러 처리로 코드 가독성이 크게 개선됐다.
2023년 10월 26일
Python
Python 비동기 처리에서 asyncio.gather vs asyncio.as_completed 선택 기준
API 서버에서 여러 외부 서비스를 호출할 때 asyncio.gather와 as_completed 중 어떤 것을 선택해야 할지 고민했다. 실제 프로젝트에 적용하면서 각각의 적합한 사용 사례를 정리했다.
2023년 10월 24일
Golang
Go 1.21 제네릭으로 타입 안전한 Repository 패턴 구현하기
Go 1.18부터 도입된 제네릭을 실무에 적용해봤다. 기존 interface{} 기반 Repository를 제네릭으로 리팩토링하면서 타입 안전성과 코드 중복을 동시에 해결했다.
2023년 10월 13일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 문제 해결
500MB 이상의 CSV 파일을 처리하다가 메모리 부족 에러가 발생했다. fs.readFile 대신 스트림 기반 처리로 전환하여 메모리 사용량을 90% 이상 줄일 수 있었다.
2023년 9월 23일
Golang
Go 1.21 Context WithoutCancel 사용기
Go 1.21에 추가된 context.WithoutCancel을 사용해 부모 컨텍스트 취소 시에도 정리 작업을 완료하는 패턴을 적용했다. API 서버의 graceful shutdown 시나리오에서 유용했던 경험을 정리한다.
2023년 9월 14일
Rust
Rust로 Node.js Native Addon 작성하기
CPU 집약적인 이미지 리사이징 작업을 Node.js에서 처리하다 병목이 발생했다. Rust로 Native Addon을 작성해 성능을 개선한 과정을 기록한다.
2023년 9월 8일
Node.js
Node.js 20 신기능 탐색 - 권한 모델과 테스트 러너
Node.js 20 LTS 릴리즈가 예정되면서 새로운 기능들을 미리 살펴봤다. 특히 실험적 권한 모델과 내장 테스트 러너의 안정화가 인상적이었다.
2023년 8월 17일
Rust
Rust로 CLI 도구 만들며 배운 소유권 시스템
사내 로그 파싱 도구를 Python에서 Rust로 재작성했다. 처음엔 borrow checker와 싸웠지만, 결과적으로 메모리 안정성과 성능 개선을 동시에 얻었다.
2023년 8월 15일
Node.js
Node.js 스트림으로 대용량 CSV 파싱 메모리 최적화
10GB 규모의 CSV 파일을 처리하는 배치 작업에서 메모리 부족 오류가 발생했다. Stream API를 활용해 메모리 사용량을 95% 줄이고 처리 속도도 개선한 과정을 기록한다.
2023년 7월 30일
Previous
1
More pages
7
8
9
10
11
More pages
43
Next
카테고리
Builder.shin