Golang 시작하기
Tutorial: Get started with Go를 정리한 글입니다.
이 튜토리얼은 Go 프로그래밍에 대해 간단하게 소개하고 있습니다.
그 과정에서 다음 과정을 수행할 수 있습니다.
아직 설치하지 않았다면, Go를 설치합니다.
간단한 “Hello, world”코드를 작성합니다.
go 명령을 사용하여 코드를 실행합니다.
Go 패키지 검색 도구를 사용하여 자신의 코드에서 사용할 수 있는 패키지를 찾습니다.
외부 모듈의 함수를 호출합니다.
참고: 다른 튜토리얼은 튜토리얼을 참조하십시오.
전제 조건
Go를 시작하기 전에 필요한 전제 조건은 다음과 같습니다:
- 약간의 프로그래밍 경험
절차적(Procedural) 프로그래밍의 함수 개념을 알면 도움이 됩니다. - 코드를 편집하는 도구
대부분의 텍스트 편집기는 Go를 잘 지원합니다.
VSCode(무료), GoLand(유료) 및 Vim(무료)이 인기가 많습니다. - 명령 터미널
Go는 Linux 및 Mac의 모든 터미널, Windows의 PowerShell 또는 cmd에서 잘 작동합니다. - 작업 환경
Ubuntu(WSL2 Ubuntu), Docker Desktop 이 설치되었다고 가정하겠습니다.
WSL2, Ubuntu, Docker Desktop이 없다면,
windows 10 에 WSL2, Ubuntu, Docker 설치 by mozily 를 참고하세요.
설치하기
공식 사이트인 Download and install에서 플랫폼에 맞는 과정을 진행합니다.
추가로 Go 패키지를 사용하기 위해서는 전역 GOPATH 를 설정하는 것이 편합니다.
GOPATH 를 설정하기 위해 다음 내용을 ~/.bashrc
에 추가합니다:
export GOPATH={GOPATH 경로}
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
Go 버전을 업그레이드 한다면 How to update the Go version을 참고하세요.
Go를 삭제 한다면 Managing Go installations을 참고하세요.
코드 작성하기
Hello, World를 만들어보겠습니다.
먼저, 명령 프롬프트를 열고 작업 홈 디렉토리를 만들고 이동합니다.
$ cd {Project Home}
$ mkdir hello
$ cd hello
텍스트 에디터에서 다음과 같이 hello.go
를 작성합니다:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
위 코드에 대해 설명하면,
main
패키지 선언합니다. Go 패키지는 기능을 그룹화하는 방법입니다.- 텍스트 서식을 지정하고, 콘솔에 출력하는 기능이 포함된
fmt
패키지를 가져옵니다.
이 패키지는 Go 를 설치할 때 포함된 표준 라이브러리 패키지 중 하나입니다. - main 함수는 콘솔에 “Hello, World!” 메시지를 인쇄합니다.
파일을 실행하면, 기본적으로 main 함수가 실행됩니다.
코드를 실행하고 결과를 확인합니다.
$ go run hello.go
Hello, World!
go run 명령은 Go 로 작업할 때, 많이 사용하는 명령 중 하나입니다.
다른 기능을 확인하려면 다음 명령을 실행해보세요:
$ go help
외부 패키지 코드 호출하기
다른 사람이 이미 구현했을 수도 있는 작업을 만들기 전에, 이 기능을 포함하는 패키지를 찾을 수 있습니다.
외부 모듈로 메시지를 더 흥미롭게 만들어보겠습니다.
- pkg.go.dev에 방문하여
quote
패키지를 검색합니다. - 검색 결과에서
rsc.io/quote
패키지를 찾아서 클릭합니다. (rsc.io/quote/v3는 무시하겠습니다.) - Doc 탭에서 사용할 수 있는 함수에 주목합니다. 이 Go 함수를 사용하겠습니다.
- 페이지 상단의 내용처럼, 패키지
quote
는rsc.io/quote
모듈에 포함되어 있습니다.
pkg.go.dev
사이트에서 원하는 기능이 있는 패키지를 포함하는 게시된 모듈을 찾을 수 있습니다.
패키지는 rsc.io/quote
과 같은 모듈로 게시되며 다른 모듈에서 사용할 수 있습니다.
모듈은 시간이 지남에 따라 새로운 버전으로 개선되며, 향상된 버전을 사용하도록 코드를 업그레이드할
수 있습니다.
코드에서, rsc.io/quote
패키지를 가져온(import) 후 Go 함수를 추가합니다.
수정된 코드는 다음과 같습니다:
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}
종속성(Dependencies) 추적을 위해 모듈을 추가합니다.
코드가 다른 모듈에서 패키지를 가져올 때,
go.mod
파일은 이 패키지를 제공하는 모듈과 버전을 리스팅합니다.
이 파일은 소스 코드 저장소에 포함시켜 코드에 있어야 합니다.
$ go mod init hello
go: creating new go.mod: module hello
코드를 실행하여 함수가 생성한 메시지를 확인합니다.
$ go run hello.go
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
Don't communicate by sharing memory, share memory by communicating.
실행 결과 통신과 관련된 팁 메시지를 출력합니다.
코드를 실행하기 전에, go run
은 import한 패키지가 포함된 rsc.io/quote
모듈을
찾아서 다운로드합니다.
버전을 지정하지 않으면, 최신 버전(v1.5.2)을 다운로드합니다.
Go 빌드 명령은 import 패키지에 필요한 모듈을 찾도록 설계되었습니다.
더 많은 코드 작성하기
이 포스트에서 Go를 설치 외의 몇 가지 기본 사항들을 배웠습니다.
더 많은 코드를 작성하려면 Go 모듈 만들기을 참고하세요.
댓글남기기