comnic's Dev&Life

[Golang] 5. 패키지(Package) 본문

Golang

[Golang] 5. 패키지(Package)

comnic 2023. 12. 30. 09:41
반응형

5. 패키지(Package)

 

5.1 패키지의 개념과 활용

패키지(Package)의 개념:

  • Go에서 패키지는 코드를 구조화하고 재사용 가능한 단위로 만드는데 사용됩니다.
  • 패키지는 함수, 변수, 구조체 등의 요소들을 논리적으로 묶어둔 것이며, 다른 패키지에서 사용할 수 있습니다.
  • 각 파일의 첫 부분에 package 키워드를 사용하여 해당 파일이 어떤 패키지에 속하는지 선언합니다.

패키지의 활용:

  • 프로젝트에서 코드의 모듈화를 위해 여러 개의 패키지를 생성하여 사용합니다.
  • 패키지를 사용함으로써 코드의 가독성과 유지보수성이 향상되며, 코드의 재사용이 간편해집니다.

 

5.2 외부 패키지 가져오기와 사용

Go에서는 import 키워드를 사용하여 외부 패키지를 가져와서 사용합니다.

package main

import (
	"fmt"
	"math/rand" // 외부 패키지인 math/rand 패키지를 가져옴
	"time"
)

func main() {
	rand.Seed(time.Now().UnixNano()) // 현재 시간을 기반으로 난수 발생 초기화
	randomNumber := rand.Intn(100)   // 0부터 99까지의 난수 발생
	fmt.Println("Random Number:", randomNumber)
}

위의 예제에서 math/rand 패키지를 가져와서 rand.Intn() 함수를 사용하여 난수를 발생시켜 출력합니다.

 

5.3 패키지 관리자(Go Modules) 소개

Go Modules는 Go 언어의 의존성 관리를 위한 공식적인 방법입니다. Go Modules를 사용하면 외부 패키지를 버전별로 관리하고, 의존성을 명확하게 지정할 수 있습니다.

Go Modules 사용법:

1. Go Modules 초기화:

go mod init [모듈명]

이 명령을 통해 go.mod 파일이 생성되며, 프로젝트의 의존성 관리가 시작됩니다.

 

2. 의존성 추가:

go get [패키지명]

이 명령을 통해 필요한 외부 패키지를 프로젝트에 추가할 수 있습니다.

 

3. 의존성 업데이트:

go get -u [패키지명]

이 명령을 통해 외부 패키지를 최신 버전으로 업데이트할 수 있습니다.

 

4. 의존성 설치:

go mod tidy

이 명령을 통해 go.mod 파일에 명시된 의존성을 설치합니다.

 

5. 모듈 캐시 정리

[go clean -modcache] 명령을 사용하면 모듈 캐시를 정리할 수 있습니다. 모듈 캐시는 프로젝트의 의존성 모듈들이 저장되는 임시 디렉토리로, 필요에 따라 정리하여 새로운 모듈을 다시 다운로드할 수 있습니다.

go clean -modcache

 

6. GOPRIVATE 환경 변수

GOPRIVATE를 설정하려면 해당 도메인이나 패턴을 콤마(,)로 구분하여 환경 변수에 추가합니다. 여러 개의 도메인이나 패턴을 지정할 수 있습니다.

export GOPRIVATE=example.com,company.com/private-repo

위의 예제에서는 example.comcompany.com/private-repo 도메인 및 패턴을 비공개로 설정했습니다.

GOPRIVATE가 설정된 경우, Go 모듈 관리자는 해당 도메인 또는 패턴을 비공개로 취급합니다. 이는 go get 명령이나 모듈을 다운로드할 때 해당 도메인 또는 패턴을 공개 저장소에서 검색하지 않도록 하는 것을 의미합니다.

예를 들어, go get example.com/private-repo 명령을 실행할 때, example.com 도메인은 비공개로 설정되어 있으므로 Go 모듈 관리자는 해당 코드를 찾지 않습니다.

 

Go Modules를 사용하면 프로젝트의 의존성 버전을 명시적으로 관리하고, 다른 환경에서 프로젝트를 빌드할 때 일관된 의존성을 유지할 수 있습니다.

반응형
Comments