Go 개발환경 설치는 어렵지 않다.
우선 Go SDK 를 다운로드 받고, IDE 만 준비되면 된다.
▌Go 설치
공식 홈페이지인 golang.org 사이트에 가서 자신의 OS 에 맞는 GO SDK 를 다운로드 하고 설치한다.
설치가 완료되면 Terminal (Windows 는 Command Prompt)에서 go version 으로 설치가 잘 되었는지 확인한다.
버전이 보이면 잘 설치된것이다.
▌Lite IDE 설치
이번에는 LiteIDE 를 설치해본다. Source 로 빌드할 수도 있지만 소스를 수정할 일이 없으므로 바이너리를 다운로드 받아 실행해본다.
1. X28 버전 다운로드
2. /usr/local 밑에 압축 풀기
3. LiteIDE.app 실행
▌Workspace 디렉토리 구조
Go 언어는 언어 자체적인 패키지 관리를 한다고 앞서 이야기 하였다. 이런 관계로 Go 는 특정한 구조의 디렉토리와 이러한 디렉토리의 위치를 알기 위한 환경변수 설정이 필요하다.
원하는 Workspace 디렉토리를 결정하고 만든다. 나는 /Users/korean44/src/go_workspace 를 Workspace 로 결정했다.
Workspace 디렉토리는 GOPATH 라는 이름의 환경변수로 정의되어 있어야 go 언어가 이후 개발할 프로젝트에서 import 를 통해 지정한 패키지가 없을 때 GOPATH 에서 찾거나 없는 패키지를 다운로드 받아 $GOPATH/pkg 디렉토리에 저장한다
GOPATH 디렉토리의 구조는 아래와 같다.
우리가 myproject 를 만든다면 위 처럼 GOPATH(Workspace)/src 밑에 프로젝트를 만들면 된다.
GOPATH 를 Workspace 로 볼 수도 있지만, 단일 Project 를 GOPATH 로 잡을 수도 있다. 그러면 해당 프로젝트의 구조가 저렇게 bin, pkg, src 처럼 정형화 되어 깔끔해질 수도 있다.
▌환경변수
위에서 GOPATH 환경변수가 필요하다는 것을 알았으므로 일단 .profile 이나 windows 의 경우 환경변수를 편집하여 GOPATH 변수를 추가해준다.
go 와 관련된 환경변수는 go env 를 실행하면 출력된다
macbook-joon:go_workspace korean44$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/korean44/src/go_workspace"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics
-Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
macbook-joon:go_workspace korean44$
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/korean44/src/go_workspace"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics
-Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
macbook-joon:go_workspace korean44$
이중에
$GOROOT : go 가 설치된 경로
$GOPATH : 위에서 설명한 GOPATH. Workspace 로 이해가 편하도록 설명하였으나 사실은 Dependency 관리를 위해 참조할 pkg, src 디렉토리와 go install 시에 실행파일을 위치시킬 bin 디렉토리를 포함하는 지정 구조의 디렉토리 루트가 필요해서 지정하는 것이다.
반응형