본문 바로가기

Go언어10

Go언어 interface reflect reflect 사용 이유 reflect는 여러 가지의 사용방법이 있겠지만 저는 종종 협업을 하면서 상대방이 보낸 데이터의 타입 및 종류에 대하여 구분이 필요한 경우 사용하였습니다. reflect를 이용하여 타입 가져오기 인터페이스 형식으로 데이터를 받아 받은 데이터의 타입을 구분할 수 있습니다. package main import ( "fmt" "reflect" ) func ShowType(i interface{}) { fmt.Println(reflect.ValueOf(i).Type()) } func main() { num := 100 ShowType(num) job := "student" ShowType(job) } /* 출력결과 int string */ 코드설명 reflect.ValueOf().Typ.. 2021. 8. 15.
Go언어 Cron Cron이란 우리는 살면서 종종 정해진 시간에 정해진 일이 자동으로 수행되었으면 하는 일들이 많이 있습니다. Go언어에서는 이러한 일을 cron이 해결해 줍니다. 먼저 프로젝트 디렉토리에서 다음 명령어로 모듈을 가져옵니다. > go get github.com/robfig/cron package main import ( "fmt" "github.com/robfig/cron" "time" ) const ( CronSpec = "30 * * * * *" ) var ( Data int ) func PrintData() { t := time.Now().Format(time.ANSIC) fmt.Println(t, " : ", Data) Data++ } func main() { c := cron.New() c.Add.. 2021. 6. 15.
Prometheus Go언어 Metric label Label이란 Label이란 메트릭에 Key-Value형식으로 Metric을 구분하는데 많이 사용된다. Kubernetes에서는 Pod, Node, Cluster, 또는 Application 등을 Metric에서 구분하는데 많이 사용된다. Go언어 Metric에 Label 등록하기 package main import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" "time" ) const ( LabelAppName = "applicati.. 2021. 6. 14.
Prometheus Go언어 Metric 생성 Prometheus Metric Type Counter 카운터 Counter는 개수를 측정하거나 증가하는 값을 측정할 때 사용합니다. 카운터는 0으로 초기화는 가능하지만 값을 감소할 수 없고 증가만 할 수 있습니다. 대표적으로 함수 호출 횟수 및 접속 요청 수, 실패 개수를 측정할 때 많이 사용할 수 있습니다. Gauge 게이지 Gauge는 현재의 값을 나타내는 데 사용합니다. 값이 증가할 수 있으며 감소할 수도 있습니다. 증가 감소 모두 가능하다 보니 여러 방면에서 사용할 수 있습니다. 대표적으로 현재 메모리 사용량, CPU 사용 시간, 저장된 데이터의 수, 스레드 개수 등 여러 방면에서 사용합니다. Summary 서머리 Summary는 _count, _sum을 제공하여 평균을 측정할 수 있으며, 슬라.. 2021. 6. 13.