본문 바로가기

Go

[Go] Go Module

Go Module 이란

  • 패키지의 모음으로써, 한 개의 모듈은 다수의 패키지를 포함할 수 있다.
  • 모듈을 통해 Golang은 패키지들의 종속성을 관리할 수 있으며, 모듈은 패키지 관리 시스템으로써 활용된다.
  • 모듈을 패키지를 트리 형식으로 관리하며, 루트(root) 폴터에 go.mod 파일을 생성하여 모듈을 정의하고, 종속성 정보를 관리하게 된다.
  • go.mod는 네 가지 키워드를 사용한다. (module, require, replace, exclude)

module

  • 모듈 경로를 저장한다
  • 소스코드에서 패키지를 가져올 때, 절대 경로를 사용할 필요 없이 module에 선언되어있는 경로를 사용하면 된다.

require

  • 빌드시 필요한 종속성 정보를 저장
  • 모듈을 사용하여 빌드하면 자동으로 필요한 패키지를 다운로드 및 설치하고 require에 패키지 경로와 버전 정보가 추가된다

replace

  • 모듈의 특정 버전이나, 버전 전체를 대체할 때 사용한다.
  • require에 의해 설정된 종속성을 => 를 통해 우측에 설정된 패키지 버전으로 대체시킨다.

exclude

  • 패키지의 특정 버전을 사용하지 않도록 할 때 사용한다.

go mod tidy

  • 소스 코드를 확인해서 import 되지 않는 모듈들을 자동으로 go.mod 파일에서 삭제하고 import 되었지만 실제 모듈이 다운안된 경우는 go.mod 파일에 추가해준다.

go mod vendor

  • module은 프로젝트 밑에 저장되지 않고 GOPATH에 저장된다.
  • 그러나 자신이 사용하는 모듈들을 자신의 repo 아래 vendor 폴더에 복사하고 싶을 때 사용한다.

go mod download

  • 명령된 모듈을 module cache에 다운로드한다.

 

'Go' 카테고리의 다른 글

[Go] Go Module  (0) 2022.08.01