아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
뱅크샐러드 favicon뱅크샐러드

뱅크샐러드의 Go 코딩 컨벤션, 지금 바로 확인하세요!

by DD
2023-09-06
2년 전
조회수 12

뱅크샐러드에서 지난 4년간 Go와 gRPC를 활용하며 쌓아온 코딩 컨벤션을 공개함

Panic safe goroutine, 에러 핸들링 등 더 나은 코드 작성을 위한 프랙티스를 소개함

HTTP client 설정, Slice 선언 등 성능 개선을 위한 팁과 프로젝트 구조를 제시함

Panic 안전성 확보

프로덕션 환경에서 panic 발생을 최소화하기 위해, 뱅크샐러드는 recovery 체인을 추가하고, `must` 접두사를 붙인 함수를 사용한다. 구체적으로, PanicSafeGroup을 활용하여 고루틴 내에서 발생할 수 있는 panic을 안전하게 처리하고, 에러를 수집한다.

효율적인 에러 핸들링

뱅크샐러드는 에러 스택트레이스를 로깅하고, sentinel 에러를 적절히 활용하여 에러를 관리한다. errors.Wrap과 errors.WithStack을 사용하여 에러를 감싸고, 에러 네이밍 컨벤션을 준수한다. 따라서, 디버깅과 문제 해결에 필요한 정보를 효과적으로 제공한다.

성능 향상을 위한 팁

뱅크샐러드는 HTTP client 설정을 최적화하고, slice 선언 시 `len`과 `cap`을 설정하여 성능을 개선한다. HTTP connection 재사용을 위해 response body를 drain하고 닫는 것을 권장한다. 결과적으로, 메모리 사용량 감소와 응답 속도 향상을 기대할 수 있다.

뱅크샐러드 Go 코딩 컨벤션
중급
아키텍처
Go
gRPC
golangci-lint
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

AI 코딩, 이제 규칙은 코드로! 채널톡의 백엔드 레포 혁신

채널톡 로고

AI 시대, 개발자의 핵심 역량은 '검증력'입니다.

라인 로고

뱅크샐러드, 1000번 배포를 위한 혁신적인 CI/CD 시스템 구축!

뱅크샐러드 로고

뱅크샐러드의 Go & gRPC 프로덕션 환경 구축 비법 공개!

뱅크샐러드 로고

Go + DynamoDB: TLS Handshake 문제 해결기

버즈빌 로고

CodeQL 점진적 분석으로 C/C++, Go 코드 분석 속도 UP!

깃헙 로고
뱅크샐러드 favicon뱅크샐러드
중급
아키텍처
Go
gRPC
golangci-lint
Backend

관련 추천 글

AI 코딩, 이제 규칙은 코드로! 채널톡의 백엔드 레포 혁신

채널톡 로고

AI 시대, 개발자의 핵심 역량은 '검증력'입니다.

라인 로고

뱅크샐러드, 1000번 배포를 위한 혁신적인 CI/CD 시스템 구축!

뱅크샐러드 로고