Go언어

[Golang] Go 언어 module (mod) 설정

아무일도없었다 2022. 9. 29. 15:55

간단한 Go 예제 샘플이 아닌 실무에서 사용할 수 있는 패키지 구성이 필요했다.

 

Go 프로젝트도 한 개가 아닌 상황에서 프로젝트 안에서 사용하는 go package 가 많아지고 있었기 때문에 기능별 package 를 세분화해서 관리를 하려고 했다.

 


 

문제는 같은 프로젝트에서 만든 package 를 못 찾는다는 점이었다.

 

동일한 project 에 있는 package 를 못찾는다.

 

프로젝트의 module 이 생성되어있지 않아서 생긴 문제로 module 생성을 하면 해결되는 문제이다.

 

우선 module 을 아래의 방법으로 생성한다.

 

$ cd ${project_directory}
$ go mod init ${module_name}
go: creating new go.mod: module ${module_name}
go: to add module requirements and sums:
        go mod tidy

 

go.mod 파일 생성을 확인하고 module 에서 시작되는 경로로 package import 를 하면 project 내에 package 를 잘 찾는 것을 확인할 수 있다.

 

mod 추가 이후에 오류없이 잘된다.

 

만약 GOPATH 를 사용하려면 bin, pkg, src 디렉토리 구조를 만들어주고 GO111MODULE 환경변수를 off 혹은 auto 로 변경해야 한다. (아래 명령어 사용)

 

$ go env -w GO111MODULE=auto

 

추가로 GOPATH 사용 시 GoLand의 File >  Settings 에서 Go > GOPATH 설정을 현재 project 경로로 잡아주고 Go > Modules 에서 Enable Go modules integration 항목을 체크 해제해야 한다.

 

 

반응형