뱅크샐러드 Go 코딩 컨벤션
두줄요약
Go 서버 개발에서 안전한 오류 처리와 고루틴, HTTP 연결 관리 원칙을 정리했습니다. 테스트·네이밍·프로젝트 구조까지 일관된 코드베이스를 위한 컨벤션을 제시합니다.
핵심 내용
- Go 코드베이스 전반의 일관성과 유지보수성을 위한 조직 코딩 컨벤션
- 외부 가이드와 린트 도구를 기반으로 한 스타일·프랙티스·원칙 정립
구조와 흐름
- 프로덕션 panic·fatal 제한, 고루틴별 recover와 멀티 에러 수집
- 에러 스택 단일 추가, 상위 계층 로깅, sentinel error의 제한적 사용
- HTTP 커넥션 재사용을 위한 client 풀 설정과 response body drain·close
성능/운영 포인트
- slice·map 용량 사전 할당과 map 순회 순서 비보장 대응
- Unicode 문자열 순회·길이 계산, time.Duration·타임존의 명시적 처리
- 트래픽·메모리·트레이싱 기반 HTTP idle connection 설정 조정
적용해볼 점
- 테이블 기반 테스트, 의존성 주입, map 순회 회피를 통한 결정적 테스트
- context 우선 인자, early return, functional options, 최소 패키지 구조 적용
- golangci-lint·revive·gci 등을 활용한 컨벤션 자동 검증


