본문 바로가기
728x90
반응형

go3

golang, openTelemetry, gRPC, zipkin hands-on openTelemetry는 기존 파편화되어 존재하던 애플리케이션 계측, 원격 데이터 생성, 수집, 전송을 통합하고 표준화하는 프로젝트입니다. openTelemetry에는 다양한 개념이 있습니다. 개념이 너무 방대하기 때문에 포스팅에서는 개념 위주의 설명보다 실습 기반으로 golang의 gRPC의 경우에서의 openTelemetry의 분산 트레이싱을 관찰해 봅니다. gRPC는 스트리밍 api를 재외하고 unary로만 진행했습니다. golang으로 opentelemetry sdk와 opentelemetry collector를 이용해서 zipkin으로 tracing을 해보는 실습 hands-on을 서술합니다. 위와 같은 구성으로 구현합니다. grpc.client와 grpc.server에서 수집한 트레이싱 데이.. 2023. 10. 12.
golang generic을 이용한 여러 타입 슬라이스로부터 구조체 슬라이스 생성하기 같은 크기, 다른 데이터 타입의 슬라이스가 여럿 존재할 때 interface와 tamplate를 이용하여 해당 슬라이스의 원소를 구조체 멤버로 포함하는 구조체를 만들 수 있습니다. callback함수에서 스프레드 연산자로 입력을 받아 구조체를 리턴하도록 하고 템플릿 슬라이스를 리턴하는 함수를 만들어 callback을 입력 파라미터로 선언해서 구현할 수 있습니다. package main import "fmt" type TmpType struct { Integer int String string SubStruct SubType } type SubType struct { String1 string String2 string } func main() { a := ConvertValueToInterface([]i.. 2022. 10. 10.
golang http request template golang으로 http request를 보내거나 개발형, 코딩 테스트(누가 근데 golang쓰긴 하겠냐마는...)를 준비할 때 쓸 수 있는 템플릿입니다. golang으로 리퀘스트를 보낼 때 json 직렬화, byte string 변환과 같은 과정이 번거로워서 간단하게 구현해보았습니다. CallAPI함수에 response 타입을 넣고 method, uri, header, body를 명시하면 결과를 리턴하도록 간단하게 net/http 기반으로 외부 라이브러리 없이 구현했습니다. package main import ( "bytes" "encoding/json" "io" "net/http" ) const ( GET = "GET" POST = "POST" PUT = "PUT" DELETE = "DELETE" ).. 2022. 10. 9.
728x90
반응형