Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2장. 개발 환경 준비

본격적인 Go 학습을 위해 개발 환경을 갖춘다. 이 장의 끝에서는 본인 컴퓨터에서 첫 Go 프로그램을 실행할 수 있게 된다.

목표:

  • Go 컴파일러 설치하기
  • 에디터 준비하기
  • Hello, World 직접 띄워 보기
  • go rungo build 의 차이 이해하기

2.1 Go 설치

macOS

가장 쉬운 방법은 Homebrew 다.

brew install go

Homebrew 가 없다면 공식 사이트에서 .pkg 파일을 받아 설치한다.

  • 공식 다운로드: https://go.dev/dl/

Windows

공식 사이트에서 .msi 인스톨러를 다운로드한다.

  • https://go.dev/dl/

다운로드한 파일을 실행해 안내에 따라 진행하면 끝이다. PATH 환경변수도 자동으로 설정된다.

Linux

배포판 패키지 매니저(apt, dnf 등)를 써도 되지만, 공식 최신 버전을 직접 받는 것을 추천한다.

wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# PATH 추가
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc

설치 확인

설치가 끝났다면 터미널에서 다음 명령을 실행한다.

go version

다음과 같은 출력이 나오면 성공이다.

go version go1.22.0 darwin/amd64

GOPATH / GOROOT 에 대해

옛날 자료를 보면 GOPATH 환경변수 얘기가 자주 나온다. Go 1.11 이후 모듈 시스템이 등장하면서 GOPATH 를 직접 설정할 일은 거의 사라졌다. 이 책은 모듈 방식만 다루므로 그냥 무시해도 된다.

용어설명신경 써야 하나?
GOROOTGo 자체가 설치된 경로아니오 (자동)
GOPATH옛날 코드 저장 경로거의 아니오

2.2 에디터 선택

VS Code + Go 확장 (가장 추천)

가장 무난하고 사용자도 많다.

  1. https://code.visualstudio.com/ 에서 VS Code 설치
  2. 확장 마켓플레이스에서 “Go” 검색 후 설치
    • 제공자: Go Team at Google
  3. 처음 .go 파일을 열면 부속 도구 자동 설치 안내가 뜬다
    • 모두 설치한다 (Install All)

자동 완성, 정의로 이동, 리팩터링, 디버깅이 전부 작동한다.

GoLand

JetBrains 의 유료 IDE 다. 회사에서 Go 를 본격적으로 쓴다면 투자할 가치가 있다.

Vim / Neovim

vim-go 또는 gopls 기반 LSP 플러그인을 쓰면 된다. 이미 Vim 에 익숙하다면 굳이 옮길 필요는 없다.

이 책은 VS Code 기준으로 설명한다.


2.3 첫 프로그램: Hello, World

작업 디렉터리 만들기

원하는 위치에 디렉터리를 하나 만든다.

mkdir hello
cd hello

모듈 초기화

go mod init example.com/hello

이 명령을 실행하면 디렉터리 안에 go.mod 파일이 생긴다.

module example.com/hello

go 1.22
  • module 은 이 프로젝트의 이름
  • 자리에는 보통 GitHub 주소 같은 걸 적는다
  • 아직 외부 패키지를 받지 않으므로 example.com/hello 처럼 임의 이름을 써도 된다

모듈 자체에 대한 자세한 내용은 20장에서 다룬다. 지금은 “Go 프로젝트는 모듈로 시작한다” 정도만 알면 충분하다.

main.go 작성

main.go 파일을 만들고 다음 내용을 적는다.

package main

import "fmt"

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

실행

go run main.go

다음과 같은 출력이 나오면 성공이다.

Hello, World!

코드 한 줄씩 미리 보기

이 짧은 코드에 Go 의 기본 구조가 다 들어 있다. 자세한 설명은 다음 장(3장)에서 다루지만 살짝 미리 본다.

의미
package main이 파일은 main 패키지에 속한다
import "fmt"표준 라이브러리의 fmt 패키지를 가져온다
func main()프로그램이 시작되는 함수
fmt.Println(...)화면에 한 줄 출력

2.4 go run 과 go build 의 차이

같은 코드를 두 가지 방식으로 다룰 수 있다.

go run

go run main.go
  • 빌드와 실행을 한 번에 한다
  • 결과 실행 파일은 임시 경로에 만들어지고 명령이 끝나면 사라진다
  • 개발 중 빠르게 확인할 때 쓴다

go build

go build
  • 실행 파일을 현재 디렉터리에 만든다
    • macOS / Linux: hello
    • Windows: hello.exe
  • 만들어진 파일은 이후에도 그대로 실행 가능
  • 배포할 때 쓴다
./hello

한 줄 요약

명령언제 쓰나
go run코드 짜면서 즉시 확인
go build배포용 실행 파일을 만들 때

둘 다 내부적으로는 컴파일을 수행한다. 결과물을 남기느냐 마느냐만 다르다.


2.5 정리

  • Go 컴파일러를 설치하고 go version 으로 확인했다
  • VS Code 와 Go 확장을 준비했다
  • 첫 프로그램 Hello, World 를 띄워 보았다
  • 모듈 초기화 (go mod init) 와 실행 흐름을 익혔다
  • go rungo build 의 차이를 이해했다

손이 풀렸으면 됐다. 다음 장에서는 방금 짠 Hello, World 코드의 각 줄이 정확히 무엇을 의미하는지 들여다본다.