Package란?

Golang의 코드를 묶는 단위이며, 모든 코드는 패키지에 속해야 한다.

Module이란?

module은 종속성 관리를 위해 Golang이 지원하는 것이다. 

모듈은 패키지의 모음이며, 모듈 파일이 있는 곳이 패키지의 루트 경로가 된다.

Go언어를 사용 할 때, 디렉토리 구조를 잘 파악하고,

모듈을 사용해야한다. 

(모듈 : 패키지 = 1:N)

 

원격 리포지토리의 패키지를 사용할 때는 그냥

go get github.com/sirupsen/logrus

이런식으로 하면 외부 패키지를 쉽게 사용가능하다. 

 

하지만 로컬 경로의 패키지를 사용하려면 또 다르게 접근해야한다.

 

일단 src, bin, pkg 3가지의 폴더에서 시작하고 

src/github.com/username/modulename 보통 이런식으로 프로젝트 폴더를 잡는다.

 

현재 디렉토리가 modulename 인 곳에서

go mod init 명령어를 실행하고,

go mod tidy를 실행한다.

 

보통 src/github.com/username/modulename/main.go 하나를 남겨두고,
추가로 패키지를 구성할 경우,

 src/github.com/username/modulename/printhello/printhello.go

이런식으로 만든다.

 

// main.go 코드

package main

import (
	"fmt"
   	"github.com/username/modulename"
)

func main() {
	printhello.PrintHello()
}
// printhello.go

package printhello

import "fmt"

func PrintHello() {
	fmt.Println("Hello World")
}

package 이름과 go파일 이름이 같게 해야한다.

+ Recent posts