1. 다운로드
https://golang.org/doc/install?download=go1.5.2.darwin-amd64.tar.gz # Mac
https://storage.googleapis.com/golang/go1.5.2.linux-amd64.tar.gz # Linux
$ sudo tar -C /usr/local -xzf go1.5.2.darwin-amd64.tar.gz
$ cd /usr/local
$ sudo chown -R root go
2. 환경 변수
$ sudo vi /etc/profile
export GOROOT=/usr/local/go # go 설치 위치
export PATH=$PATH:/usr/local/go/bin # go 실행파일 위치
$ cd Documents
$ mkdir -p go_workspace{,/bin,/pkg,/src}
$ vi .bash_profile
export GOPATH=$HOME/Documents/go_workspace # go workspace 위치
export PATH=$HOME/Documents/go_workspace/bin:$PATH # go 실행파일 위치
## go tool 다운로드
$ got get golang.org/x/tools/cmd/...
3. go 샘플 다운로드
$ go get github.com/GoesToEleven/GolangTraining
# kubernetes 소스 다운로드
$ go get k8s.io/kubernetes # 이렇게 하면 git clone https://github.com/kubernetes/kubernetes
4. Go Workspace 디렉토리 위치
- bin
- pkg
- src - github.com - GoesToEleven - GolangTraining
5. editor WebStorm 다운로드 및 세팅
https://www.jetbrains.com/webstorm/download/
버전 : WebStorm-11.0.3-custom-jdk-bundled.dmg
6. golang plugin 설치
https://plugins.jetbrains.com/plugin/5047?pr=idea
버전 : Go-0.10.749.zip
# Project Open
/Users/ahnsk/Documents/go_workspace/src/github.com/GoesToEleven/GolangTraining
# Preferences 세팅
Go SDK : /usr/local/go
Go Libraries : go_worksapce/src
7. theme 다운로드 및 설정
http://color-themes.com/?view=index
Sublime Text 2.jar 다운로드
File >> import Settings 에서 Sublime Text 2.jar 선택
# Preferences 세팅
Editor -> Colors & Fonts : Scheme을 Sublime Text2로 설정
8. JavaScript Debug 를 위한 live edit plugin 설치
https://plugins.jetbrains.com/plugin/7007?pr=pycharm
LiveEdit.jar 다운로드
# Preferences 세팅
Build, Execution, Deployment -> Debugger -> Live Edit
체크 : Highlight current....
Update Auto in (ms): 16
# 우측 상단 돋보기 클릭하여 Edit Configuration 조회
창에서 좌측 상단 + 클릭 후 JavaScript Debug 추가
# chrom 웹 스토어에서 확장 프로그램 설치
JetBrains IDE Support
# WebStorm 단축키
파일찾기 : Command + Shift + O
단어찾기 : Command + Shift + F
실행 : Crtl + Alt + R
디버그 : Ctrl + Alt + D
줄삭제 : Command + Backspace
줄복사 : Command + D
포맷 : Command + Alt + L
# go file 규칙 테스트
$ gofmt -s -w file.go
$ git rebase -i 혹은 git push -f 로 작업의 논리적인 유닛으로 커밋
# Docker contribute 시에 DCO (Developer Certificate of Origin) 설정
# commit 마다 설정
Docker-DCO-1.1-Signed-off-by: Seungkyu Ahn <seungkyua@gmail.com> (github: seungkyua)
# 혹은 hook 를 설정
$ cd docker
$ curl -o .git/hooks/prepare-commit-msg \
https://raw.githubusercontent.com/dotcloud/docker/master/contrib/prepare-commit-msg.hook
$ chmod -x .git/hooks/prepare-commit-msg
# github user 를 세팅
$ git config -set github.user seungkyua
# Channel
# deadlock 을 막을려면 채널로 값을 보내는 쪽에서 close 채널을 해야 한다.
# 채널을 받는 쪽에서는 defer sync.WaitGroup.Done() 을 한다.
# 혹은 새로운 go 루틴을 만들고 sync.WaitGroup.Wait() 으로 끝나길 기달려서 close 채널을 한다.
# 문서 보기
## 문법 에러 검사
$ go vet wordcount.go
## tar 패키지 사용법 보기
$ go doc tar
## 로컬 문서 서버 띄우기
$ godoc -http=:6060
# godep 설치
$ go get github.com/tools/godep
$ cd ~/Documents/go_workspace/src/github.com/tools/godep
$ go install
## godep 을 사용하는 프로젝트로 이동
$ cd ~/Documents/go_workspace/src/k8s.io/kubernetes/
## godep get 으로 Godeps/_workspace 에 패키지를 다운한다.
## _workspace 는 deprecated 예정
$ godep get 패키지명