Contents
ModuleModule
- Go Module 의 등장으로 코드의 모듈화가 가능해졌다. package의 의존성을 자동으로 관리해줌
- 노드 진영에서는 npm인 것처럼, go 진영에서는 의존성 라이브러리를 깃허브를 이용해 사용한다.
go mod init (A)
- A 생략 시 모듈명이 폴더명이 된다.
module A
go 1.19
module github.com/ddr4869/go_study
go 1.19
- 각 패키지 네이밍은, 웬만하면 폴더명을 따라가도록 하자.
- 폴더명과 다를 수 있다. 하지만 코드가 지저분해지기 때문에, 폴더명으로 정해주자.
- 의존성 라이브러리 설치
- 전역으로 설치하기($GOPATH/pkg)
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go get -u google.golang.org/protobuf/cmd/protoc-gen-go@latest
- go mod tidy, go mod vendor
go mod tidy
- 외부 패키지 사용 시 해당 패키지를 go mod tidy로 쉽게 설치할 수 있다.
go mod vendor
- go module을 사용하기 위해서는 항상 인터넷에 연결되어 있는 상태여야 한다. 인터넷이 불안정하거나, 폐쇄망인 환경에서는 패키지 다운이 불가능 할 수 있다.
- go mod vendor는 vendor 폴더를 만들고, 그 안에 컴파일 시 필요한 파일들을 모두 집에넣게 된다.
- Private 모듈 가져오기
export GOPRIVATE='github.com/{{your private repo}}/'
Share article