컴퓨터과학/기타

[GoLang] 디렉터리 구조, 패키지

kykyky 2025. 3. 11. 14:57

hello.exe를 만들기 위한 기본적인 디렉터리 구조

ㅡ hello

 

ㅡㅡ go.mod (go mod init hello으로 생성됨, go mod tidy로 수정됨)

 

ㅡㅡ pkg1

 

ㅡㅡㅡ pkg1.go

package pkg1
// Imported Packages
import (
"..."
"..."
)
// Const
const (
PublicConst = ...
privateConst = ...
)
// Variable
var PublicVar ...
var privateVar ...
var someVar = someFunc()
var someVar2 = ...
// Alias
type PublicType ...
type privateType ...
// Function
func init() {
someVar2...
}
func PublicFunc() {...}
func privateFunc() {...}
func someFunc() {...}
// Struct & Method
type PublicStruct struct{
PublicField ...
privateField ...
}
func (s PublicStruct) PublicMethod() {...}
func (s PublicStruct) privateMethod() {...}
type privateStruct struct{
PrivateField ... // field가 대문자로 시작해도 구조체가 소문자로 시작해서 private
privateField ...
}
func (s privateStruct) PrivateMethod() {...} // method가 대문자로 시작해도 구조체가 소문자로 시작해서 private

 

ㅡㅡ hello.go

package main
import (
"hello/pkg1"
"github.com/.../pkg2"
"github.com/.../pkg3"
"..."
)
func main() {
...
pkg1.PublicFunc()
pkg2.어쩌구함수()
pkg3.저쩌구함수()
...
}

 

ㅡㅡ go.sum (go mod tidy으로 생성됨)

 

ㅡㅡ hello.exe (마지막에 go build로 생성됨)

 

패키지 종류

- Go언어에서 기본 제공

- 깃허브 등 외부 저장소에 존재

- 현재 폴더 하위에 존재