프로그래밍/Go

[Go] golang 패키지(외부라이브러리, 모듈) import하기

Beginner:) 2021. 4. 7.
320x100

일반적으로 github에 있는 패키지를 import 하려면 import "github.com/test"로 import 하면 된다.

 

하지만, 인터넷에 제약이 있다던가 폐쇄형 네트워크일 경우를 알아보았다.

 

아래는 패키지를 직접 작성하고 import 하여 테스트하는 것이며 

 

깃헙등에서 패키지를 다운로드하여 사용하는 것은 

 

이 글을 읽으면 융통성 있게 받아올 수 있을 것이다.

 

참고로 GOPATH위치에 저장하는 것은 아니고 실행파일의 내부에 저장하는 방법이다(내부로컬)

 

Ex) main 패키지에서 내가 자주 쓰는 util패키지를 작성하여 import 해보도록 하겠다.

 

1. 일단 해당 경로의 패키지를 작성한다.

 

2. main.go가 있는 하위폴더에 util폴더를 생성하고 util.go파일을 작성한다.

   - util.go에는 패키지가 util이다. 

3. util폴더에서 터미널로 "go mod init"을 실행한다. 

   그럼 go.mod 파일이 생성될 것이다.

   go.mod 파일은 아래와 같다.

module util

go 1.16

require()

replace()

   버전에 따라 숫자가 다를수도, import 유무에 따라 require와 replace가 없을 수도 있다.

   module이 util인 것을 확인하자.

   

4. main폴더에  go.mod를 수정한다.

   만약 go.mod가 없다면 util폴더에서 수행했던 3번과 같이 실행하면 된다. ("go mod init")

   main폴더에 go.mod는 아래와 같다.

module main

go 1.16

require (
	
)

replace(
	
)

  - require에는 임시 경로와 버전을 설정하자. 

   ex) require( main.com/util v0.0.0 )

 

  - replace에는 실제 폴더의 상대경로를 작성한다.

   ex) replace ( main.com/util v0.0.0 => ./util )

 

  - 아래 코드는 main 폴더의 util패키지를 import한 go.mod 파일이다.

module main

go 1.16

require (
	main.com/util v0.0.0 // indirect
)

replace(
	main.com/util v0.0.0 => ./util
)

 

5. main에서 util  import하기

   main.go 에서 import에 "main.com/util" 을 작성하자. 

   그럼 위의 코드가 go.mod에서 replace를 거쳐 "./util"로 import가 될 것이다.

package main

import (
	"main.com/util"
)

func main(){

}

 

6. 테스트 

   아마 VScode 등에서 자동완성이라면 파일을 저장시 "main.com/util"가 사라질 것이다.

   왜냐면 사용을 하지 않았기 때문에 사라지는 것이다. 괜히 뻘짓하지말자.

   

   - util.go에 export할 함수를 만들자. 난 PrintHello() 함수를 작성할 것이다.

      *export 함수는 첫글자가 대문자여야 한다. 

package util

func PrintHello() {
	print("Hello")
}

 

   - 이제 main문에서 util 함수를 불러와보자.

package main

import (
	"main.com/util"
)

func main(){
	util.PrintHello()
}

 

반응형

'프로그래밍 > Go' 카테고리의 다른 글

[Go] golang 절대경로, 상대경로 구하기  (0) 2021.04.05

댓글