간단한 Go 예제 샘플이 아닌 실무에서 사용할 수 있는 패키지 구성이 필요했다.
Go 프로젝트도 한 개가 아닌 상황에서 프로젝트 안에서 사용하는 go package 가 많아지고 있었기 때문에 기능별 package 를 세분화해서 관리를 하려고 했다.
문제는 같은 프로젝트에서 만든 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 를 잘 찾는 것을 확인할 수 있다.
만약 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 항목을 체크 해제해야 한다.
반응형
'Go언어' 카테고리의 다른 글
[Golang] go binary 실행시 /lib64/libc.so.6: version `GLIBC_2.XX' not found 에러 해결 방법 (1) | 2024.05.30 |
---|---|
[Go언어] 알파인리눅스(Alpine Linux)에서 Go 1.20이상 실행하기 (__res_search: symbol not found, libresolv.so.2) (0) | 2023.10.23 |
[Go언어] 구조체 패딩 & 패킹 (Golang struct padding & packing) (0) | 2022.11.16 |
[GO언어] Go 환경 변수 및 버전 관리하기 (GOROOT, GOPATH) (1) | 2022.10.04 |
[Golang] go 언어 개발 시작하기 (0) | 2022.09.29 |