본문 바로가기
컴퓨터

👨‍💻 [Golang] Go 에서 버전을 관리하는 툴이 있나요?

by 밝음의기둥 2024. 11. 13.
반응형

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

Go 에서 버전을 관리하는 툴이 있는지 간략히 알아보았습니다.


질문 >

Go 에서 버전을 관리하는 툴이 있나요?

답변 >

Go에서는 버전을 관리할 수 있는 몇 가지 도구가 있으며, 특히 다양한 프로젝트에서 다른 Go 버전을 요구할 때 유용합니다. 아래는 Go 버전 관리를 위한 주요 도구들입니다.

1. GVM (Go Version Manager)

GVM은 Node.js의 nvm과 유사한 도구로, 여러 Go 버전을 설치하고 전환할 수 있게 도와주는 버전 관리자입니다. 프로젝트별로 다른 Go 버전을 요구하거나 최신 버전을 테스트하고 싶을 때 유용합니다.

GVM 설치 방법

  • GVM 설치
curl -sSL <https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer> | bash
source ~/.gvm/scripts/gvm

  • 특정 Go 버전 설치
gvm install go1.18
gvm install go1.16

  • Go 버전 사용
gvm use go1.18 --default

GVM 주요 명령어

  • gvm list: 설치된 Go 버전 목록을 표시합니다.
  • gvm use <버전>: 특정 버전을 활성화합니다.
  • gvm uninstall <버전>: 특정 버전을 제거합니다.

장점:

  • 여러 버전의 Go를 자유롭게 전환할 수 있습니다.
  • 특정 프로젝트마다 고유한 Go 버전을 쉽게 설정할 수 있습니다.

단점:

  • 현재 Windows에서는 공식적으로 지원되지 않으며, 주로 Linux와 macOS에서 사용됩니다.

2. asdf (Extendable Version Manager)

asdf는 Go뿐만 아니라 다양한 언어의 버전을 관리할 수 있는 확장 가능한 버전 관리자입니다. asdf 플러그인을 통해 Go를 포함한 여러 언어의 버전을 제어할 수 있습니다. 특히 여러 언어를 사용하는 환경에서 통합된 버전 관리가 필요할 때 유용합니다.

asdf 설치 방법

  • asdf 설치:
    • asdf 공식 설치 문서를 참고하여 설치합니다.
  • Go 플러그인 추가 및 설치
asdf plugin add golang <https://github.com/kennyp/asdf-golang.git>
asdf install golang 1.18
asdf install golang 1.16

  • Go 버전 설정
    • 특정 디렉토리에서 Go 버전을 설정합니다.
    • 전역 Go 버전을 설정합니다.
asdf local golang 1.18

asdf global golang 1.18

장점:

  • Go뿐만 아니라 다양한 언어를 통합 관리할 수 있어, 여러 언어를 사용하는 개발 환경에 적합합니다.
  • local과 global 명령을 통해 디렉토리별로 버전을 설정할 수 있습니다.

단점:

  • asdf 자체가 다양한 언어를 지원하다 보니 초기 설정이 다소 복잡할 수 있습니다.
  • Go 전용 관리 도구보다 설정 속도가 느릴 수 있습니다.

3. Go의 내장 버전 관리 (Go Modules go.mod 파일)

Go 1.13 버전부터 go.mod 파일의 go 필드를 통해 모듈이 요구하는 Go 버전을 명시할 수 있습니다. 이 방식은 Go 버전을 직접 설치하거나 관리하는 것은 아니지만, 프로젝트에 적합한 Go 버전을 명시하여 환경을 통제할 수 있게 해줍니다.

예시

go.mod 파일의 go 필드를 사용하여 해당 프로젝트에 필요한 Go 버전을 명시할 수 있습니다.

module mymodule

go 1.18

이 설정을 통해 해당 프로젝트를 빌드하거나 테스트할 때 요구되는 Go 버전을 지정할 수 있으며, 팀원들이 동일한 버전을 사용할 수 있도록 안내합니다.

장점:

  • 프로젝트의 Go 버전을 명시적으로 지정하여 버전 호환성을 유지할 수 있습니다.
  • 추가 도구 없이도 간단히 요구 버전을 명시할 수 있습니다.

단점:

  • 실제로 Go 버전을 전환하거나 관리해주는 기능은 없으며, 버전 명시용으로만 사용됩니다.
  • 지정된 Go 버전이 로컬에 설치되어 있어야 빌드 및 테스트가 가능합니다.

4. Homebrew (macOS)

macOS 사용자라면 Homebrew를 통해 Go 버전을 관리할 수 있습니다. 하지만 Homebrew는 기본적으로 하나의 Go 버전만을 지원하므로, 여러 버전을 동시에 설치하려면 brew link 명령으로 버전을 전환해야 합니다.

Homebrew를 통한 Go 버전 설치 및 전환

  • 특정 버전 설치:
brew install go@1.18
brew install go@1.16

  • 버전 전환:
brew unlink go@1.18
brew link go@1.16

장점:

  • macOS에서 간단하게 버전을 전환할 수 있습니다.
  • 설치와 제거가 간편하며, macOS에 최적화된 패키지 관리 환경을 제공합니다.

단점:

  • 여러 버전을 동시에 사용할 수 없으므로, 버전을 전환해야 하는 경우 불편할 수 있습니다.
  • macOS 전용이므로 다른 운영 체제에서는 사용할 수 없습니다.

요약

  • GVM: Go의 버전을 자유롭게 전환할 수 있는 가장 대표적인 도구로, 여러 Go 버전을 설치하고 관리할 수 있음.
  • asdf: 여러 언어의 버전을 관리할 수 있는 확장성 있는 도구로, Go 플러그인을 통해 Go 버전도 관리 가능.
  • Go Modules (go.mod): 프로젝트별로 요구되는 Go 버전을 명시하여 호환성을 유지하는 방식, 실제 버전 전환 기능은 아님.
  • Homebrew (macOS): macOS 사용자에 적합한 패키지 관리자. 단일 버전 관리에 유용하지만 여러 버전 사용에는 다소 불편함.

Go 버전을 자주 전환해야 하는 경우에는 GVM이나 asdf가 유용하며, 간단히 특정 버전을 지정하려는 경우 go.mod를 활용할 수 있습니다.


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


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

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

chzzk.naver.com


반응형