※ 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 파일을 아래처럼 만들어줍니다.

 

+ Recent posts