본문 바로가기
프로그래밍

👨‍💻 [Go] Go 에서 패키지를 import 해서 사용하려면 어떻게 해야하나요?

by 밝음의기둥 2025. 1. 7.
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

Go 에서 패키지를 import 해서 사용하려면 어떻게 해야하는지 간략히 알아보았습니다.


질문 >

Go 에서 패키지를 import 해서 사용하려면 어떻게 해야하나요?

답변 >

Go에서 패키지를 import해서 사용하는 방법은 간단하고 직관적입니다. 패키지를 가져오려면 import 키워드를 사용하며, 표준 라이브러리나 사용자 정의 패키지, 외부 모듈을 활용할 수 있습니다. 아래는 이를 구현하고 사용하는 방법입니다.


1. Go 패키지 기본 구조

Go에서는 코드 파일이 특정 패키지에 속하며, 각 패키지는 패키지 이름을 가집니다.

  • package main은 실행 가능한 애플리케이션의 시작점을 정의합니다.
  • 다른 패키지는 재사용 가능한 코드를 제공하는 라이브러리로 작성됩니다.

2. 패키지 사용 방법

(1) 표준 라이브러리 패키지 가져오기

Go는 풍부한 표준 라이브러리를 제공합니다. 예를 들어 fmt와 같은 기본 제공 패키지를 가져와 사용할 수 있습니다.

예제:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, World!")
}

  • 설명:
    • import "fmt": fmt 패키지를 가져옵니다.
    • fmt.Println: 표준 출력에 문자열을 출력하는 함수.

(2) 사용자 정의 패키지 가져오기

프로젝트 내에서 사용자 정의 패키지를 작성하고 가져올 수 있습니다.

디렉터리 구조:

myproject/
├── main.go
└── math/
    └── math.go

math/math.go:

package math

// Add adds two integers.
func Add(a, b int) int {
    return a + b
}

main.go:

package main

import (
    "fmt"
    "myproject/math" // 사용자 정의 패키지 import
)

func main() {
    result := math.Add(3, 5)
    fmt.Println("Result:", result)
}

실행:

go run main.go


(3) 외부 모듈 가져오기

외부 모듈은 보통 GitHub 같은 원격 저장소에서 관리되며, go get 명령어를 사용해 설치할 수 있습니다.

예제:

go mod init myproject
go get github.com/spf13/cobra

main.go:

package main

import (
    "fmt"
    "github.com/spf13/cobra"
)

func main() {
    fmt.Println("Using cobra package for CLI applications!")
}

실행:

go run main.go


3. 패키지 사용 시 주의할 점

(1) 패키지 경로

  • 사용자 정의 패키지를 가져올 때는 패키지가 위치한 디렉터리를 기준으로 경로를 지정해야 합니다.
  • 외부 모듈은 원격 저장소 경로를 사용합니다.

(2) 패키지 이름과 경로 충돌

  • 동일한 이름의 패키지를 사용해야 할 경우, 패키지 이름을 별칭으로 지정할 수 있습니다.

예제:

import (
    "fmt"
    m "myproject/math" // math 패키지를 m으로 별칭 지정
)

func main() {
    result := m.Add(1, 2)
    fmt.Println(result)
}


4. init() 함수

  • 모든 패키지는 선택적으로 init() 함수를 정의할 수 있으며, 패키지가 처음 로드될 때 실행됩니다.
  • init()은 자동으로 호출되며 수동으로 호출할 수 없습니다.

예제:

package math

import "fmt"

func init() {
    fmt.Println("math package initialized!")
}

결과:

import "myproject/math"를 실행하면 자동으로 init()이 호출됩니다.


5. 가져온 패키지 사용 규칙

  • 사용되지 않는 패키지는 컴파일 오류가 발생합니다.
    • 해결 방법: _를 사용해 임시로 가져오기.
import _ "myproject/math" // 사용하지 않는 패키지를 가져오기

  • 외부 모듈 캐싱:
    • go get으로 설치한 외부 모듈은 $GOPATH/pkg/mod 디렉터리에 저장됩니다.
    • 동일한 모듈을 다시 다운로드하지 않고 캐시를 사용합니다.

6. 패키지 관리 도구

명령어  설명
go mod init 새로운 모듈 초기화.
go get 외부 모듈 설치 및 의존성 관리.
go mod tidy 사용하지 않는 의존성 제거 및 필요한 의존성 추가.
go list -m all 현재 프로젝트의 모든 의존성 목록 출력.
go mod vendor 외부 모듈을 로컬 vendor 디렉터리에 복사.

Go에서 패키지를 import하면 코드를 재사용 가능하게 만들고, 모듈화를 통해 유지보수를 용이하게 할 수 있습니다. 표준 라이브러리와 외부 모듈을 활용하면 생산성을 더욱 높일 수 있습니다.



🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리(Willee) 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형