728x90
Go mod를 이용한 패키지 관리
Go-lang은 의존 패키지를 import를 통해서 관리됩니다.
그럼 import에 새로 추가한 패키지는 어떻게 관리할까요?
아래의 예시를 먼저 보도록 하죠
들어가기 앞서
Go-lang프로젝트 시 새로운 github라이브러리 발견 시 아래와 같이 신규 패키지 라인을 추가하였습니다.
import (
"os"
"github.com/go-kit/kit/log" <--- 신규 패키지 라인 추가
)
여기서 go run을 하게 되면
"go run"
> go run .\main.go
main.go:4:2: no required module provides package github.com/go-kit/kit/log: go.mod file not found in current directory or any parent directory; see 'go help modules'
위와 같이 go.mod 파일을 찾을 수 없다고 나옵니다.
이는 패키지 모듈을 go.mod에 관리하는 go-lang의 매커니즘으로 module관리가 되어야한다는 뜻이죠.
(물론 go.mod말고도 다른방법도 있습니다만 go mod가 독립적이고 편합니다.)
패키지 관리
Go-lang은 패키지가 프로젝트 루트 경로에 go.mod파일이 생성되어야 합니다.
방법 (명령어)
- mod 초기화 및 go.mod (모듈 정의) 파일 생성
> go mod init {package_name}
> ls
main.go go.mod <-- 파일 생성됨
- 소스내의 의존성을 go.mod 파일에 자동 추가 (go.sum도 같이 생성됨)
> go mod tidy
go.sum go.mod
--------------------------------------------------
> cat go.mod
module mata_data_manager
go 1.16
require github.com/go-kit/kit v0.12.0
- go.mod (모듈 파일) 유효성 검사
> go mod verify
all modules verified
- 이후 빌드 시 정상적으로 됩니다.
> go build main.go
or
> go run main.go
참고로
현재 명령어의 방법은 go 1.16이상을 사용하였습니다.
아래 버전은 시도해보지 않아서 현재 가이드의 방법과 차이가 있을 수 있습니다.
혹시 해본적이 있으신 분은 댓글에 커맨트 남겨주시면 감사하겠습니다.
반응형
'Programming > Go-Lang' 카테고리의 다른 글
Go-Lang : 문자열에서 숫자만 추출하기 (2) | 2022.11.28 |
---|---|
Go-Lang : Context 패키지 이해하기 (링크 공유) (0) | 2021.12.07 |
Go-Lang : CentOS 6,7에서 go-lang 설치 방법 (yum방식) (0) | 2021.08.05 |
Go-Lang : go get error (GOPATH 설정) - $GOPATH not set. For more details see (0) | 2020.04.03 |
Go-Lang : CentOS 6,7에서 go-lang 설치 방법 (0) | 2020.04.03 |