팀 Go 표준
이 저장소에서 Go 코드를 작성하거나 설계할 때 팀 규칙을 따르세요. 댓글과 코드 주석은 중국어로 작성하세요. 아래 색인에 따라 references/의 세부 표준을 필요할 때 읽으세요. 한 번에 모두 읽지 말고 현재 작업과 관련된 파일만 읽으세요.
언제 무엇을 읽을지 (색인)
| 작업 내용 | 읽을 파일 |
|---|---|
| 모든 Go 코드 작성 (기준: 버전, 로깅, 오류, 동시성, 명명…) | references/rules.md ← 기본적으로 먼저 읽기 |
cmd/** 아래 CLI 명령어 설계/작성 (cobra + gox/cli) | references/cli.md |
설정 로딩 (config/**, main.go/config.go, bootstrap/, gox/config) | references/config.md |
데이터베이스 마이그레이션 / 스키마 (migrations/, dbmigrate/, store.go, *migrate*, *migration*, *schema*, goose) | references/db-migrations.md |
프로젝트 스캐폴딩 (Makefile, .gitignore, .editorconfig, .golangci-lint-version, .github/workflows/*.yml) | references/scaffold.md |
핵심 규칙 (최우선 순위, 세부 사항은 rules.md)
- Go 1.26+; JSON/protobuf 필드는 snake_case 사용.
- 로깅: 진입점에서 gox/log 초기화, 비즈니스 코드에서 log/slog 사용; 절대 fmt로 로깅하지 마세요.
- 설정: gox/config만 사용; 절대 비즈니스 코드에서 viper를 직접 사용하거나
os.Getenv를 호출하지 마세요. - 모든 외부 호출에는 타임아웃을 설정해야 함 (내부 10초, 외부 30초).
- 패키지 수준의 가변 전역 상태 없음; 오류는 패키지 접두어로 감싸기.
이는 세션 내 소프트 가이드라인이며, 최종 적용은 저장소의
golangci-lint/ CI / PR 리뷰에 따릅니다.