version

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package version 애플리케이션의 빌드 및 버저닝 정보를 관리하는 패키지입니다.

시스템의 빌드 시점(Build-Time)에 주입된 메타데이터(버전, 커밋 해시, 빌드 시간 등)와 실행 시점(Run-Time)의 환경 정보(Go 버전, OS, 아키텍처)를 통합하여 제공합니다.

주요 기능:

  1. 빌드 정보 주입: 링커 플래그(-ldflags)를 통해 외부에서 버전을 주입받습니다.
  2. 런타임 정보 통합: 실행 환경의 정보를 자동으로 감지하여 추가합니다.
  3. Thread-Safe 접근: 전역적으로 안전하게 정보를 조회할 수 있는 메서드를 제공합니다.
Example
// 1. 빌드 정보 조회
// 실제 환경에서 버전 정보는 링커 플래그(-ldflags)를 통해 주입됩니다.
// 따라서 별도의 설정 없이 Get() 함수를 호출하여 안전하게 정보를 조회할 수 있습니다.
current := Get()

// 예시 출력을 위한 가상 데이터 설정 (실제 코드에서는 불필요)
// 이 부분은 문서화된 예제 실행을 위해 임의로 값을 보여주는 것입니다.
if current.Version == "unknown" {
	fmt.Printf("App Version: %s\n", current.Version)
} else {
	// 테스트 환경에 따라 버전이 다를 수 있으므로 포맷만 확인
	fmt.Printf("App Version: <checked>\n")
}
Output:
App Version: unknown

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Commit

func Commit() string

Commit Git 커밋 해시를 반환합니다.

func Version

func Version() string

Version 애플리케이션의 버전 문자열을 반환합니다.

Types

type Info

type Info struct {
	Version     string `json:"version"`      // 애플리케이션의 버전 (예: v1.0.1-155-gf25b8bf)
	Commit      string `json:"commit"`       // Git 커밋 해시 (예: f25b8bf)
	BuildDate   string `json:"build_date"`   // 빌드 날짜 (ISO 8601 형식 권장, 예: "2025-12-05T11:30:00Z")
	BuildNumber string `json:"build_number"` // CI/CD 빌드 번호 (예: "456")
	GoVersion   string `json:"go_version"`   // 빌드에 사용된 Go 컴파일러 버전 (예: "go1.21.0")
	OS          string `json:"os"`           // 실행 중인 운영체제 (예: "linux", "darwin", "windows")
	Arch        string `json:"arch"`         // 실행 중인 시스템 아키텍처 (예: "amd64")
	DirtyBuild  bool   `json:"dirty_build"`  // 빌드 시점에 로컬 소스코드에서 변경사항이 있었는지의 여부
}

Info 애플리케이션의 빌드 정보를 담고 있습니다.

이 구조체는 애플리케이션의 버전, 빌드 날짜, 빌드 번호 등의 메타데이터를 저장합니다. 주로 /version API 엔드포인트나 로그 출력에 사용됩니다.

func Get

func Get() Info

Get 애플리케이션의 빌드 정보를 반환합니다.

func (Info) String

func (i Info) String() string

String 빌드 정보를 사람이 읽기 쉬운 하나의 문자열로 요약해 반환합니다.

func (Info) ToMap

func (i Info) ToMap() map[string]any

ToMap 빌드 정보를 맵(Map) 형태로 반환합니다. (구조적 로깅용)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL