완전한 Go 스타터 가이드: 설정, 문법 및 첫 번째 프로그램
Source: Dev.to
번역을 진행하려면 번역하고자 하는 본문 텍스트를 제공해 주시겠어요?
코드 블록, URL 및 마크다운 형식은 그대로 유지하면서 내용만 한국어로 번역해 드리겠습니다.
소개
새로운 프로그래밍 언어를 배우고 코딩하고 싶지만, Java, Python, Rust, Go 등 선택할 언어가 너무 많다고 느낀 적이 있나요? 저는 직접 조사해 보았고, JetBrains 보고서(여기)에서 강조된 바와 같이 Go에 관심이 생겼습니다. Go는 약 4.8 백만 명의 사용자가 사용하고 있었습니다. 많은 기업이 높은 성능 덕분에 백엔드 개발 및 라이브러리용으로 Go를 널리 채택하고 있습니다.
Go의 장점은 앞으로의 글에서 다룰 예정이며, 여기서는 Go에 대한 간단한 배경을 소개합니다:
- 구글에서 만든 언어이며, 첫 공개 릴리스는 2009년입니다.
- 구글의 대규모 시스템 문제(느린 컴파일, 복잡성, 열악한 동시성 지원)를 해결하기 위해 설계되었습니다.
- 간단하고, 개발자 친화적이며, 가독성이 높도록 설계되었습니다—C++이나 Java보다 접근성이 쉽지만, 그들의 강점을 많이 유지하고 있습니다.
이 글을 마치면 Go를 설치하고 첫 프로그램을 작성해 볼 수 있게 됩니다.
설치 및 검증
1단계 – 다운로드 및 설치
- 공식 다운로드 페이지를 방문하세요: .
- 운영 체제에 맞는 설치 프로그램을 다운로드하여 실행하세요.
- 설치 프로그램이 Go를 설정하고 필요한 경로를 구성합니다.
팁: macOS에서는 Homebrew를 통해 설치할 수도 있습니다: brew install go.
2단계 – 설치 확인
터미널(bash, PowerShell 등)을 열고 다음을 실행하세요:
go version
# Example output:
# go version go1.25.5 darwin/arm64
go version go1.21.5 …와 같은 출력이 보이면 설치가 성공한 것이며 Go를 사용할 준비가 된 것입니다.
Go 모듈이란?
Go 모듈은 go.mod 파일을 포함하는 Go 파일들의 모음입니다. go.mod 파일은 모듈의 이름과 의존성을 추적합니다. 과거에는 특별한 워크스페이스(GOPATH)를 통해 관리했지만, 이제는 모듈이 그 방식을 대체했습니다.
새 모듈 만들기
mkdir my-go-app
cd my-go-app
# <module-name>을 원하는 이름(예: 저장소 URL)으로 교체하세요
go mod init my-first-go-project
이 명령은 go.mod 파일을 생성하며, 이 파일이 Go 프로젝트의 루트가 됩니다. 이후 실행되는 모든 명령은 이 폴더를 기준으로 동작합니다.


향수를 불러일으키는 “Hello, World!”
프로젝트 폴더 안에 main.go 파일을 만들고 다음 코드를 추가하세요:
package main // Every executable program starts with package main
import "fmt"
// Unlike Python, where functions like print are built‑in,
// in Go they live in packages; we need fmt for printing.
func main() { // Entry point of the program
fmt.Println("Hello, World!") // Prints the text
}
실행 및 빌드: go run vs go build
go run — 빠른 테스트
왜 사용하나요? 코드를 즉시 확인하기 위해; 바이너리가 남지 않습니다.
go run main.go

go build — 실행 파일 만들기
왜 사용하나요? Go가 설치되지 않은 머신에서도 공유하거나 나중에 실행할 수 있는 독립 실행 파일을 만들기 위해.
go build main.go # 실행 파일 생성 (예: Windows에서는 main.exe)
명령을 실행하면 폴더에 바이너리 파일이 생깁니다 (macOS/Linux에서는 main, Windows에서는 main.exe`). 직접 실행할 수 있습니다.
현재 프로젝트 레이아웃
다음 명령을 실행하여 디렉터리 구조를 확인하십시오 (Windows에서는 dir 사용):
ls -la
# Output:
# my-go-app/
# ├── go.mod # Module definition
# ├── main.go # Source code
# └── main # Compiled binary (or main.exe on Windows)
변수와 기본 타입
변수는 데이터를 저장하는 컨테이너입니다. Go는 정적 타입을 사용하므로 각 변수의 타입은 컴파일 시에 알려져야 합니다.
기본 타입
| Type | Description |
|---|---|
string | 텍스트 (예: "Hello") |
int | 정수 (예: 10, -10) |
float64 | 소수 (예: 3.14) |
bool | 불리언 (true 또는 false) |
변수를 선언하는 세 가지 방법
1. 전체 선언 (Verbose)
var name string = "Tom Cruise"
var age int
age = 25
2. 타입 추론 (Shorter)
var name = "Tom Cruise" // Go가 `string`을 추론합니다
var age = 25 // Go가 `int`를 추론합니다
3. 짧은 변수 선언 (함수 내부에서)
func main() {
name := "Tom Cruise" // := 로 선언하고 타입을 추론합니다
age := 25
fmt.Println(name, age)
}
Go에서 변수 선언
아래는 Go에서 변수를 선언하는 다양한 방법과 간단한 예시입니다.
1. 전체 선언 (함수 외부)
package main
import "fmt"
var name string = "Tom" // 타입을 명시한 전체 선언
var age = 30 // 타입 추론 – Go가 `int`를 추론
func main() {
fmt.Println(name, age)
}
2. 짧은 선언 (주로 함수 내부)
:= 연산자를 사용합니다. 변수 선언과 동시에 초기화를 수행합니다.
package main
import "fmt"
func main() {
name := "Tom" // string
age := 25 // int
isActor := true // bool
height := 5.5 // float64
fmt.Println(name, age, isActor, height)
}
3. 모두 합쳐 보기
다양한 선언 방식을 결합한 예시 main.go:
package main
import "fmt"
func main() {
var name string = "Tom" // 전체 선언
var age = 25 // 타입 추론
isActor := true // 짧은 선언 (main 내부)
height := 5.5 // Float64
fmt.Println(name, age, isActor, height) // 변수 사용
age = 26 // 변수 값 변경
fmt.Println(name, age, isActor, height) // 다시 변수 사용
}
다음은?
우리는:
- Go를 설치했습니다
- 모듈 기반 프로젝트를 만들었습니다
- 첫 프로그램을 실행했습니다
- 기본 데이터 타입과 변수 선언을 배웠습니다
직접 해보기
fmt.Println문에서 메시지를 변경하세요.- 새 변수를 만들고 다른 값을 저장하세요.
int변수에 문자열을 할당해 보고 컴파일러 오류를 확인하세요.go build로 실행 파일을 만들고 친구와 공유하세요.
다음 기사에서는 조건문과 반복문을 포함한 더 많은 구문을 다룰 것입니다.
도움이 필요하신가요? 출력 결과나 질문을 댓글로 남겨 주세요. 최선을 다해 답변하겠습니다.