go.dev/dl에서 Go를 내려받고, 시스템에 맞는 설치 파일을 실행하고, 새 터미널을 열어 go version을 실행하세요. Windows와 macOS에서는 그게 설치의 전부입니다. Linux에서는 tarball을 풀고 디렉터리 하나를 PATH에 추가합니다. 아래 절에서 시스템별 방법을 다룬 뒤, 확인 방법과 실제로 자주 부딪히는 오류를 설명합니다.
써 보는 데는 Go를 설치할 필요가 없습니다. 이 프로그램은 이 사이트와 같은 Go 릴리스로 브라우저에서 실행되며, 어떤 환경에서 돌고 있는지 알려 줍니다:
로컬에 Go를 설치하고 나면 같은 프로그램이 여러분 컴퓨터의 정보를 출력합니다.
어떤 파일을 내려받을까
다운로드 페이지에는 운영체제와 CPU 아키텍처마다 파일이 하나씩 있습니다:
| 시스템 | 파일 | 참고 |
|---|---|---|
| Windows, 대부분의 PC | go1.24.5.windows-amd64.msi | amd64는 64비트 Intel 또는 AMD |
| ARM Windows | go1.24.5.windows-arm64.msi | Surface Pro X, Snapdragon 노트북 |
| macOS, Apple Silicon (M1 이후) | go1.24.5.darwin-arm64.pkg | darwin은 macOS |
| macOS, Intel | go1.24.5.darwin-amd64.pkg | |
| Linux, 대부분의 서버와 PC | go1.24.5.linux-amd64.tar.gz | |
| ARM Linux | go1.24.5.linux-arm64.tar.gz | 64비트 OS를 쓰는 Raspberry Pi 4와 5, AWS Graviton |
이 예제의 버전 번호는 1.24.5입니다. 가장 최신의 안정 릴리스를 받으세요. 버전이 바뀌어도 단계는 같습니다.
Windows에 Go 설치하기
.msi파일을 내려받아 실행합니다.- 기본값을 그대로 둡니다. Go는
C:\Program Files\Go에 설치되고, 설치 프로그램이C:\Program Files\Go\bin을PATH에 추가합니다. - 열려 있는 명령 프롬프트나 PowerShell 창을 모두 닫고 새로 엽니다. 설치 중에 열려 있던 터미널은 여전히 예전
PATH를 갖고 있습니다. - 설치를 확인합니다:
go version
go version go1.24.5 windows/amd64
패키지 관리자를 선호한다면 winget도 됩니다:
winget install GoLang.Go
macOS에 Go 설치하기
공식 패키지로
칩에 맞는 .pkg를 내려받아 엽니다. Go가 /usr/local/go에 설치되고, /etc/paths.d/go 파일을 통해 /usr/local/go/bin이 PATH에 추가됩니다. 새 터미널 창을 열고 다음을 실행하세요:
go version
go version go1.24.5 darwin/arm64
Homebrew로
brew install go
go version
Homebrew는 Go를 자체 접두사(Apple Silicon에서는 /opt/homebrew) 아래에 두고, 이미 PATH에 있는 디렉터리에 go를 링크합니다. 나중에 brew upgrade go로 업그레이드하세요.
방법은 하나만 고르세요. .pkg와 Homebrew로 둘 다 설치하면 PATH에 go 바이너리가 두 개 생기고, 먼저 오는 쪽이 이깁니다. 셸이 어느 것을 쓰는지는 which go로 알 수 있습니다.
Linux와 Ubuntu에 Go 설치하기
공식 방법은 모든 배포판에서 동작합니다. 먼저 이전 설치를 제거하세요. 오래된 트리 위에 풀면 두 버전의 파일이 섞여서 툴체인이 망가집니다:
cd ~/Downloads
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz
그다음 Go를 PATH에 추가합니다. ~/.profile(bash)이나 ~/.zshrc(zsh)에 다음 줄을 덧붙이세요:
export PATH=$PATH:/usr/local/go/bin
현재 셸에 불러온 뒤 확인합니다:
source ~/.profile
go version
go version go1.24.5 linux/amd64
Ubuntu 패키지: apt와 snap
Ubuntu에는 장단점이 다른 지름길이 두 가지 있습니다:
# Distribution package: easy, but usually several releases old
sudo apt install golang-go
# Snap: tracks current Go releases
sudo snap install go --classic
apt 버전 문제는 보기보다 중요합니다. 모듈은 go.mod에 최소 Go 버전을 선언합니다. Go 1.21부터는 go 1.23이라고 적힌 모듈을 Go가 더 새로운 툴체인을 대신 내려받을 수 없는 한 오래된 툴체인으로 빌드하지 않으며, 1.21보다 오래된 툴체인은 일단 빌드를 시도했다가 처음 만나는 새 기능에서 실패합니다(아래 "Go 최신 상태로 유지하기" 참고). apt로 설치했다면 go version을 실행해서 go.dev/dl과 비교하세요.
설치 확인하기
명령 세 개로 설정이 제대로 되었는지 확인할 수 있습니다:
go version
go env GOROOT GOPATH
which go
go version go1.24.5 linux/amd64
/usr/local/go
/home/ana/go
/usr/local/go/bin/go
GOROOT는 Go 자체가 설치된 곳입니다. 거기에 여러분의 코드를 두지 마세요. 설정할 필요도 없습니다.GOPATH의 기본값은$HOME/go(Windows에서는%USERPROFILE%\go)입니다. Go는 내려받은 모듈을$GOPATH/pkg/mod에 저장하고,go install로 빌드한 프로그램을$GOPATH/bin에 둡니다.which go(Windows에서는where go)는 셸이 실행하는 정확한 바이너리를 보여 줍니다.go version이 예상과 다른 버전을 보고할 때마다 쓰세요.
첫 프로그램 실행하기
코드는 어느 디렉터리에든 둘 수 있습니다. 폴더를 만들고, 모듈을 시작하고, 파일을 작성하세요:
mkdir hello
cd hello
go mod init example.com/hello
go: creating new go.mod: module example.com/hello
그 폴더에 다음을 main.go로 저장합니다:
그리고 실행합니다:
go run .
Go is installed and working.
go run .은 현재 디렉터리의 패키지를 컴파일해서 실행합니다. 프로그램의 각 줄은 hello world 페이지에서, go mod init 단계는 Go 모듈 페이지에서 설명합니다.
GOPATH/bin을 PATH에 추가하기
go install로 설치한 도구는 기본적으로 PATH에 없는 $HOME/go/bin에 들어갑니다. 도구를 설치했는데 셸이 찾지 못한다면 이 디렉터리도 추가하세요:
go install golang.org/x/tools/cmd/goimports@latest
export PATH=$PATH:$(go env GOPATH)/bin
goimports -h
새 터미널에서도 유지되도록 export 줄을 ~/.profile이나 ~/.zshrc에 넣으세요. Windows에서는 설치 프로그램이 이미 %USERPROFILE%\go\bin을 사용자 PATH에 추가합니다.
Go 최신 상태로 유지하기
업그레이드하려면 이전 버전을 설치한 것과 같은 방법으로 새 릴리스를 설치하세요. Linux라면 rm -rf /usr/local/go와 tar 단계를 반복한다는 뜻입니다. 제거 단계를 건너뛰지 마세요.
Go 1.21부터는 go 명령이 필요할 때 더 새로운 툴체인을 가져올 수도 있습니다. 모듈의 go.mod에 go 1.24라고 적혀 있고 Go 1.22가 설치되어 있다면, GOTOOLCHAIN이 기본값 auto로 남아 있는 한 go build가 Go 1.24를 모듈 캐시에 내려받아 사용합니다. 설치된 Go는 그대로이고, 그 모듈만 더 새로운 릴리스로 빌드됩니다.
테스트용으로 이전 버전을 남겨 두려면 나란히 설치하세요:
go install golang.org/dl/go1.23.4@latest
go1.23.4 download
go1.23.4 version
흔한 설치 오류
go: command not found 또는 zsh: command not found: go. 셸이 바이너리를 찾지 못합니다. Linux라면 셸이 실제로 읽는 파일(zsh는 ~/.zshrc, bash는 ~/.profile이나 ~/.bashrc)의 export PATH 줄에 /usr/local/go/bin이 있는지 확인한 뒤 새 터미널을 여세요. echo $PATH로 셸이 가진 값을 볼 수 있습니다.
'go' is not recognized as an internal or external command (Windows). 터미널을 닫고 다시 여세요. 그래도 계속되면 "시스템 환경 변수 편집(Edit the system environment variables)"을 열고 환경 변수를 클릭해서 Path에 C:\Program Files\Go\bin이 있는지 확인하세요. VS Code의 내장 터미널은 VS Code가 시작될 때의 환경을 물려받으므로 VS Code도 다시 시작하세요.
업그레이드 후에도 go version이 예전 버전을 보여 줌. PATH에 설치가 두 개 있습니다. which -a go(Windows에서는 where go)를 실행해서 원하지 않는 쪽을 제거하세요. /usr/bin/go에 있는 apt 패키지가 /usr/local/go/bin/go를 가리는 경우가 많습니다.
go: go.mod file not found in current directory or any parent directory. Go는 제대로 설치되었고, 모듈 밖에서 go build나 go run .을 실행한 것입니다. 먼저 프로젝트 폴더에서 go mod init example.com/yourname을 실행하세요.
Linux에서 업그레이드 후 표준 라이브러리에서 이상한 컴파일 오류가 남. 새 tarball을 예전 트리 위에 푼 것입니다. /usr/local/go를 완전히 지우고 다시 푸세요.
압축을 풀 때 Permission denied. /usr/local은 root 소유이므로 rm과 tar 명령에는 sudo가 필요합니다. 여러분의 코드에는 sudo가 필요 없습니다.
에디터 설정
어떤 에디터든 되지만, 자동 완성, 오류 강조, 저장 시 포매팅을 쓰려면 Go 지원을 설치하세요. VS Code에서는 공식 Go 확장(Google의 Go 팀이 배포)을 설치하세요. .go 파일을 처음 열 때 Go 언어 서버인 gopls를 설치하겠다고 제안합니다. JetBrains의 GoLand가 대표적인 상용 도구입니다. Vim과 Neovim은 LSP 클라이언트를 통해 gopls를 씁니다.
자주 묻는 질문
Golang은 어떻게 설치하나요?
go.dev/dl에서 시스템에 맞는 설치 파일을 내려받습니다. Windows에서는 .msi를, macOS에서는 .pkg를(또는 brew install go) 실행하고, Linux에서는 tarball을 /usr/local에 풀고 /usr/local/go/bin을 PATH에 추가합니다. 새 터미널을 열고 go version을 실행해 확인하세요.
"go: command not found"는 어떻게 고치나요?
셸이 PATH에서 go 바이너리를 찾지 못하는 것입니다. Linux에서는 ~/.profile(zsh라면 ~/.zshrc)에 export PATH=$PATH:/usr/local/go/bin을 추가한 뒤 새 터미널을 여세요. Windows와 macOS 설치 파일을 썼다면 보통 터미널을 닫았다가 다시 열면 해결됩니다. 터미널은 시작할 때의 PATH를 유지하기 때문입니다.
Ubuntu에 Go를 설치하려면 어떻게 하나요?
공식 tarball을 씁니다: sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.5.linux-amd64.tar.gz, 그다음 /usr/local/go/bin을 PATH에 추가합니다. sudo apt install golang-go도 되지만 Ubuntu 패키지는 몇 릴리스 뒤처진 경우가 많습니다. sudo snap install go --classic은 최신 릴리스를 따라갑니다.
GOPATH를 설정해야 하나요?
아니요. Go 1.16부터 모듈 모드가 기본값이므로 코드는 어느 디렉터리에든 둘 수 있습니다. GOPATH의 기본값은 $HOME/go이며, 모듈 다운로드 캐시와 go install이 빌드한 바이너리에만 쓰입니다. 바이너리는 $HOME/go/bin에 들어갑니다.
설치된 Go 버전은 어떻게 확인하나요?
go version을 실행합니다. go version go1.24.5 linux/amd64처럼 릴리스와 운영체제, CPU 아키텍처가 출력됩니다. go env는 GOROOT(Go가 설치된 곳)와 GOPATH를 포함한 전체 설정을 보여 줍니다.