Go embed: 최소 변경으로 불필요한 메모리 사용 줄이기
세줄 요약 1. 외부 파일(GeoIP DB)을 읽는 부분에서 heap 비중이 큰 것을 발견 2. GeoIP DB를 mmap으로 읽는 방법과 []byte로 직접 embed하는 방법을 비교, 두 방식 모두 heap 복사 제거 가능 확인 3. 기존 배포 구조를 유지할 수 있는 직접 embed 선택하여 불필요한 메모리 차지 포인트 개선
기업 기술블로그의 Go 관련 글 9개
세줄 요약 1. 외부 파일(GeoIP DB)을 읽는 부분에서 heap 비중이 큰 것을 발견 2. GeoIP DB를 mmap으로 읽는 방법과 []byte로 직접 embed하는 방법을 비교, 두 방식 모두 heap 복사 제거 가능 확인 3. 기존 배포 구조를 유지할 수 있는 직접 embed 선택하여 불필요한 메모리 차지 포인트 개선
세줄 요약 1. Pyroscope 모니터링으로 CPU 점유가 높은 경로 파악 2. DynamoDB wrapper 라이브러리 하위의 AWS SDK v1 unmarshal이 원인 — 라이브러리 메이저 버전 업데이트로 해결 3. 요청당 CPU 59% 감소, 피크 타임 기준 HPA가 요구하는 파드 수 245개 - 109개 감소 Supply 그룹에서 메인으로 운영…
1%가 겪는 레이턴시 Supply 그룹에서는 Feature Flag 도입 후 A/B 테스트 활용도를 높이기 위해 evaluation 결과를 적재하는 인프라 지원이 필요했습니다. 이를 위해 기존에 사용 중인 오픈소스 go-feature-flag 의 export 기능을 활용하여 각 파드에서 flag evaluation 결과를 분 단위로 S3에 적재하는 기능(S…
HyperAccel의 CI/CD 인프라를 Actions Runner Controller(ARC) 기반으로 전면 재설계한 기술적 여정과 Vault JWT/Kubernetes Auth 이중 연동, 그리고 자체 개발한 Go 기반 Prometheus Exporter를 통한 파이프라인 관측성(Observability) 확보까지의 전 과정을 다룹니다.
Notion RAG 검색 시스템 구축
‘고루틴(goroutine)’은 ‘Go 언어’에서 제공하는 동시성 제어 패러다임으로, 간단하고 효율적으로 구현할 수 있는 강력한 도구이다. goroutine은 Go 언어 내부에서 go 키워드를 활용하여 런타임시 함수를 비동기적으로 쉽게 실행할 수 있게 한다. goroutine의 특징 가벼움: 매우 작은 메모리 스택을 가지고 시작하며, 필요에 따라 동적으로 확장동시성: goroutine을 사용하여 쉽게 동시에 실행되는 작업 관리채널(Channel
안녕하세요. 버즈빌의 데이터 엔지니어 Raf입니다. 이전 포스팅(DynamoDB를 사용하는 Go 서비스의 응답 시간 최적화 #1 AWS Credential Token)에 이어, Go 서비스에서 DynamoDB를 사용하면서 응답 시간 최적화를 시도한 경험을 공유드리도록 하겠습니다. 이번 편은 해결책을 만들지 못했지만, DynamoDB와 Go HTTP Clie…
안녕하세요. 버즈빌의 데이터 엔지니어 Raf입니다. 이전 포스팅에서 Go의 HTTP 커넥션 풀에 관해 설명해 드렸습니다 (HTTP connection pool in Go explained). 이 포스팅에서는 Go 서비스에서 HTTP 요청에 대한 Trace를 남겨 DynamoDB 요청의 응답 시간에 큰 영향을 미치는 Credential Token 발급 로직을…
안녕하세요. 버즈빌의 데이터 엔지니어 Raf입니다. 버즈빌에서는 Go 마이크로 서비스에서 Elasticsearch와 DynamoDB 등의 AWS SDK를 사용하거나, 내부 서비스가 아닌 애드 네트워크나 앱 퍼블리셔 등의 HTTP로 통신해야 하는 외부 서비스를 연동하는 경우 HTTP 요청을 사용하고 있습니다. 저는 DynamoDB의 응답시간을 낮추기 위해 최…
페이지 1 / 1 (총 9개)