golang - 패키지 관리와 유용한 라이브러리들
아래 글은 golang을 공부할 목적으로 웹에서 본 글들을 정리한 것이다.
라이브러리 관리
go get 으로 받은 패키지 갱신
go get -u all
로 안된다면 문제의 xx.a 파일을 삭제하고 go run을 실행한다.
rm /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/andrebq/gas.a
go run triangle.go
# command-line-arguments
./triangle.go:11: import /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/go-gl/gl.a: object is [darwin amd64 go1.3 X:precisestack] expected [darwin amd64 go1.3.3 X:precisestack]
rm /Users/kjunichi/gocode/pkg/darwin_amd64/github.com/go-gl/gl.a
go run triangle.go
Go 버전 업 했을 때 설치한 라이브러리가 빌드 되지 않을 때
빌드 했을 때 아래와 같은 에러가 날 수 있음
import /home/sudix/pkg/linux_amd64/github.com/codegangsta/cli.a: object is [linux amd64 go1.3 X:precisestack]
expected [linux amd64 go1.3.1 X:precisestack]
라이브러리 정리하고 다시 빌드해서 해결한다.
cd my_application_src_path // 빌드하고 싶은 애플리케이션의 소스 디렉토리
go clean -r -i
go install -a
외부 라이브러리
data format
- Protocol Buffer: Basics Go (Tutorial)
- gojay. highly performant JSON encoder/decoder with powerful stream API for Golang
유틸리티
- viper. Go configuration with fangs
- godotenv
- 설정 정보 로딩. 지정 파일이나 시스템의 설정 정보를 읽어 올 수 있다.
- grmon. Command line monitoring for goroutines
- statik. Embed files into a Go executable
- gotrace
- 고루틴과 채널의 상호작용을 그래픽으로 보여주는 툴
- 바로 사용할 수는 없고 이 툴이 설치된 docker를 사용하거나 혹은 로컬 환경을 패치해야 한다
성능 측정
- cjbassi/gotop. A terminal based graphical activity monitor inspired by gtop and vtop
- goben. goben is a golang tool to measure TCP/UDP transport layer throughput between hosts.
시스템
DB
UI
에러 관리
데이터
암호화
이 글은 2018-11-29에 작성되었습니다.