Dev./Golang

[Go] 로컬 패키지 사용하기

인쥭 2023. 5. 30. 11:29
반응형

아래와 같은 패키지 구조가 있다고 하자.

[my_first_go] tree -L 3
.
└── src
    ├── helper
    │   ├── my_first_helper.go
    │   └── my_second_helper.go
    └── main.go
[my_first_go]

이 때, 각 파일은 다음과 같은 내용을 포함한다.

// main.go
package main

func main() {}
// my_first_helper.go
package helper

import "fmt"

func RunFirstHelper() {
	fmt.Println("Running first helper!!!")
}
// my_second_helper.go
package helper

import "fmt"

func RunSecondHelper() {
	fmt.Println("Running second helper...")
}

이 경우 main.go에서 helper 패키지를 사용한다면 commonJS 모듈을 사용하는 Node.js의 경우 main 에서 require('./helper/my_first_helper')와 같은 형태로 import 할텐데, golang에서는 다음과 같이 진행해야 한다.

  1. go mod init [모듈명]
  2. main.go를 아래와 같이 수정
package main

import (
	"모듈명/src/helper"
)

func main() {
	helper.RunFirstHelper()
	helper.RunSecondHelper()
}

이제 go run src/main.go와 같이 실행해보자.

[my_first_go] go run src/main.go
Running first helper!!!
Running second helper...
[my_first_go]

하나하나 막혀서 화가 난다