Go은 정적 타입 프로그래밍 언어입니다. 원래 Google에서 설계한 Go는 C와 구문 면에서 유사합니다. 하지만 기능 면에서 Go는 메모리 안전성, 가비지 컬렉션, 구조적 타이핑 등과 같은 추가 기능을 제공합니다. 지난 몇 년 동안 Go는 엄청난 인기를 얻고 있습니다.
이 가이드는 데모 Go 프로그램의 도움을 받아 Go 프로그램을 빌드하고 설치하는 단계를 살펴봅니다.
Go 빌드 및 설치
더 자세히 알아보기 전에, Go 프로그래밍 맥락에서 빌드와 설치가 무엇을 의미하는지 빠르게 살펴보겠습니다.
Go 프로그래밍에서 빌드는 소스 코드를 바이너리 실행 파일로 변환하는 프로세스를 의미합니다. 실행 파일에는 대상 플랫폼에서 독립적으로 실행될 수 있도록 필요한 지원 코드가 포함됩니다. Ruby/Python 프로그램과 달리, Go 바이너리는 일반적으로 새 시스템에서 실행하기 위해 어떠한 시스템 의존성도 필요로 하지 않습니다.
시스템의 실행 파일 경로에 Go 바이너리를 배치하는 것을 프로그램 설치라고 합니다. 앞서 언급했듯이, 이 가이드는 간단한 Go "Hello world" 프로그램의 실행, 빌드 및 설치를 보여줍니다.
전제 조건
시작하기 전에, 튜토리얼을 따라 하기 위해 충족해야 하는 전제 조건을 살펴보겠습니다.
- 올바르게 구성된 Ubuntu 20.04. Ubuntu 서버를 설치하고 구성하는 방법.
- sudo 권한이 있는 non-root 사용자. 시스템 수준의 변경을 수행하려면 root 권한이 필요합니다. 이 튜토리얼에서는 non-root 사용자에게 sudo 권한을 부여하는 방법을 배울 수 있습니다..
- 올바르게 구성된 Go 프로그래밍 환경.
먼저, Go 프로그래밍 환경을 설치하고 구성하는 방법을 빠르게 살펴보겠습니다. 더 자세한 단계별 Go 설치 가이드는 여기를 확인하세요.
Go 설치하기
Go는 모든 주요 플랫폼(Windows, Linux, macOS)에서 사용할 수 있습니다. 공식적으로 Golang에서 직접 제공됩니다. 웹사이트 이름 때문에 Go는 종종 Golang으로 불리기도 합니다. 여기서는 Go 프로그래밍 언어는 항상 Go로, Golang 웹사이트는 Golang으로 지칭하겠습니다.
Golang은 지원되는 모든 플랫폼에 대한 Go 설치에 대한 자세한 문서를 제공합니다. 하지만 공식 방법은 수동 설치를 설명합니다. 새 버전이 출시될 때마다 설치를 최신 버전으로 수동 업데이트해야 합니다. 대신, APT(기본 Ubuntu 저장소) 또는 snap(Snapcraft).
● APT를 사용하여 Go 설치하기
Go는 공식 Ubuntu 저장소에서 직접 제공됩니다. 하지만 항상 최신 버전의 Go인 것은 아닙니다. Ubuntu 저장소에서 제공하는 Go에는 두 가지 변형이 있습니다: golang-go 및 gccgo-go. golang-go가 Golang의 공식 버전인 반면, gccgo-go는 GCC용 Go 프론트엔드(GNU 컴파일러의 일부)입니다. 일반적으로 golang-go가 선호되는 선택입니다.
To install golang-go를 설치하려면 다음 APT 명령을 실행하세요:
|
1 |
sudo apt update && sudo apt install golang-go |

Go 버전을 확인합니다:
|
1 |
go version |
● snap을 사용하여 Go 설치하기
Snap은 지원되는 모든 배포판에 설치할 수 있는 범용 Linux 패키지입니다. Snapcraft는 설치 가이드가 포함된 지원되는 모든 배포판을 나열합니다. Ubuntu에서는 snap 지원이 기본적으로 활성화되어 있습니다. Go는 snap으로도 제공됩니다. 이는 Golang에서 공식적으로 유지 관리하는 것이 아니라는 점에 유의해야 합니다. snap 패키지는 타사 제공업체에서 관리합니다.
Go snap을 설치하려면 다음 명령을 실행하세요:
|
1 |
sudo snap install go --classic |

그런 다음 Go 버전을 확인합니다:
|
1 |
go version |
Go 프로젝트 설정하기
시스템에 Go로 앱 개발을 시작하는 데 필요한 모든 도구가 준비되었습니다. 이제 데모 프로젝트를 만들 차례입니다. 먼저 프로젝트를 위한 전용 디렉터리를 생성합니다:
|
1 |
mkdir -v demo_project |

다음으로, 현재 디렉터리를 새로 생성한 디렉터리로 변경합니다:
|
1 |
cd demo_project/ |

여기서 다음과 같은 이름의 새 텍스트 파일을 생성합니다: main.go:
|
1 |
nano main.go |
다음 코드는 실행 시 “Hello world”를 출력하는 간단한 프로그램입니다. 코드를 복사하세요:
|
1 2 3 4 5 6 7 |
package main import "fmt" func main() { fmt.Println("hello world!") } |

파일을 저장하고 편집기를 닫습니다. 코드가 올바르게 작동하는지 확인합니다:
|
1 |
go run main.go |

Go 컴파일러가 소스 파일을 바이너리 파일로 빌드하고 실행했습니다. 또한 프로그램이 성공적으로 작동하는지 확인합니다.
Go 작업 공간 설정
Go 프로그램을 올바르게 설치하려면 Go 작업 공간과 GOPATH를 설정해야 합니다.
먼저 디렉터리 구조를 생성합니다:
|
1 |
mkdir -pv $HOME/go/{bin,src} |

다음으로, 다음의 값을 선언하고 GOPATH 값을 PATH에 추가해야 합니다. 다음을 여세요: bashrc 파일:
|
1 |
nano ~/.bashrc |

파일 끝에 다음 줄을 추가합니다:
|
1 2 3 |
export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOPATH/bin:/usr/local/go/bin |

다음을 다시 로드합니다: bashrc:
|
1 |
source ~/.bashrc |
변경이 성공적이었는지 확인합니다:
|
1 |
echo $PATH |
Go 바이너리 빌드하기
이 섹션에서는 Go 코드를 배포 가능한 독립 실행형 바이너리 파일로 컴파일하는 방법을 설명합니다. 바이너리에는 Go 코드뿐만 아니라 바이너리를 실행하는 데 필요한 추가 시스템 코드도 포함됩니다. 코드를 컴파일하려면 다음 명령을 실행하세요:
|
1 |
go build main.go |

Go 코드 파일이 여러 개인 경우 다음 명령을 사용하세요:
|
1 |
go build |
파일을 지정하지 않으면 Go는 현재 디렉터리에서 Go 파일을 검색하여 모두 컴파일합니다. 각 바이너리 파일의 이름은 소스 Go 파일의 이름을 따서 지정됩니다. 이 예에서 Go는 다음 프로그램을 빌드했습니다: main. 프로그램을 실행합니다:
|
1 |
./main |

이 프로그램은 다른 컴퓨터로 배포할 준비가 되었습니다.
● 바이너리 이름 변경하기
빌드할 때마다 Go는 실행 파일의 이름을 자동으로 선택합니다. 이름을 선택할 때 두 가지 옵션이 있습니다.
- 만약 Go modules을 사용하는 경우, 실행 파일은 모듈 이름의 마지막 부분을 사용합니다.
- Go 모듈을 사용하지 않는 경우, Go는 현재 디렉터리의 이름이나 소스 파일의 이름을 사용합니다.
더 복잡한 프로그램을 작업할 때는 다른 명명 규칙이 필요합니다. 이러한 시나리오에서는 이러한 기본 명명 방법이 그다지 유용하지 않습니다. 이러한 상황에서는 다음 플래그를 사용하여 출력을 사용자 지정하는 것이 가장 좋은 방법입니다: -o. 간단히 시연해 보겠습니다. 다음 플래그와 함께 Go 프로그램을 빌드하여 -o 다른 파일 이름을 지정하세요:
|
1 |
go build -o bin/hello |

다음 -o 플래그는 Go에 출력을 지정된 인수와 일치시키도록 지시합니다. 이 경우 실행 파일은 다음 디렉터리 아래에 위치하며 bin 이름은 다음과 같이 지정됩니다: hello.
다음으로, 새 실행 파일을 테스트합니다:
|
1 |
./bin/hello |
Go 프로그램 설치하기
지금까지 소스 파일에서 배포 가능한 Go 바이너리를 빌드하는 방법을 설명했습니다. 이를 다른 시스템에 배포하고, 배포 및 테스트를 수행할 수 있습니다. 그러나 소스 디렉터리 외부에서는 실행할 수 없습니다. 프로그램을 적극적으로 사용할 계획이라면 이 제약 조건이 매우 번거로울 수 있습니다. 작업을 더 쉽게 만들기 위해 Go 프로그램을 설치하고 시스템의 어느 곳에서나 액세스할 수 있습니다.
프로그램을 설치하려면 소스 디렉터리에서 다음 Go 명령을 실행하세요:
|
1 |
go install |

이 명령은 다음 명령과 동일하게 작동합니다: go build. 하지만 실행 파일을 소스 디렉터리에 남겨두는 대신 다음 디렉터리에 배치합니다:
|
1 |
$GOPATH/bin |
다음 변수들은 GOPATH 및 GOBIN Go에 Go 작업 공간을 찾을 위치를 알려줍니다. GOPATH 의 기본값은 다음 위치입니다: $HOME/go입니다. 우리는 수동으로 다음을 설정했습니다: GOBIN 값을 다음으로 설정했습니다: $GOPATH/bin. 다음의 위치를 확인하려면 GOPATH 및 GOBIN 다음 명령을 사용하세요:
|
1 |
go env GOPATH |
|
1 |
go env GOBIN |

다음의 내용을 확인합니다: $GOPATH/bin. 프로그램이 그곳에 있어야 합니다:
|
1 |
ls $GOPATH/bin |

설치가 성공적이었는지 확인할 시간입니다. 현재 디렉터리를 다른 위치로 변경하고 Go 프로그램을 실행해 보세요:
|
1 |
demo_project |

마지막으로, 프로그램을 가져와 시스템에 설치할 수 있어야 합니다. 필요할 때 언제 어디서나 사용할 수 있습니다.
마치며
이 튜토리얼에서는 Go 툴체인을 사용하여 소스 코드에서 실행 가능한 바이너리를 빌드하는 방법을 성공적으로 시연했습니다. 이 바이너리는 Go 설정이 전혀 없는 다른 시스템에서도 사용할 수 있습니다. 마지막으로, 시스템의 모든 곳에서 사용할 수 있도록 Go 프로그램을 설치하는 방법을 시연했습니다.
개발자들을 위해, CloudSigma는 Go API 지원을 제공하여 클라우드 서버를 관리할 수 있도록 합니다. 이를 통해 리소스 편집 및 인프라 확장이 가능합니다.
즐거운 컴퓨팅 되세요!




댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.