※ Windows 10 환경에서 실행하였습니다.
[Go 공식 문서] Go 의 로컬 모듈 만드는 방법 : https://go.dev/doc/tutorial/create-module
[Go 공식 문서] Go 로컬 모듈 불러오는 방법 : https://go.dev/doc/tutorial/call-module-code
아래 코드 또는 이미지는 모두 예시입니다.
1. 로컬 모듈을 만들고 싶은 위치에 go mod init
명령어를 사용하여 로컬 모듈을 만들어줍니다.
/* local module/greetings.go */
package greetings
import (
"fmt"
)
func Hello(name string) (msg string) {
message := fmt.Sprintf("Hello, I'm %s. Nice to meet you.", name)
fmt.Println(message)
return message
}
go mod init my-greetings
go build
2. 로컬 모듈을 불러올 모듈에서 go.mod 파일을 다음과 같이 수정합니다.
/* module that I want to load local module/go.mod */
module this-is-my-program
go 1.18
replace my-greetings/greetings => "../local module" // 절대 경로도 가능합니다.
require my-greetings/greetings v0.0.0
불러올 모듈이 많다면 아래의 형식으로도 사용할 수 있습니다.
require (
my-greetings/greetings => "../local module"
)
코드 상에서는 아래처럼 사용합니다.
/* module that I want to load local module/main.go */
package main
import (
"fmt"
greetings "my-greetings/greetings"
)
func main() {
fmt.Println("I want to load my local module here.")
greetings.Hello("Dr.Pepper")
}
3. 모듈을 빌드한 후, 실행해보면 로컬 모듈에서 불러온 greetings.Hello() 함수가 정상 실행된 것을 알 수 있습니다.
참고 1. go.mod를 수정하지 않으면 모듈을 불러올 때, 다음과 같은 에러가 발생할 수 있습니다.
참고 2. go.mod 파일에 require 가 없으면 다음과 같은 에러가 발생할 수 있습니다. 그럴 때는 에러 메시지에 나온 것 처럼. go get 명령어로 로컬 모듈을 불러오면 됩니다.
그러면 go.mod 파일을 아래처럼 만들어줍니다.