create account

[Go] Mac에서 Atom으로 Go 개발 환경 구축하기 by modolee

View this thread on: hive.blogpeakd.comecency.com
· @modolee · (edited)
$0.15
[Go] Mac에서 Atom으로 Go 개발 환경 구축하기
![modolee_logo](https://steemitimages.com/DQmWQDjyP5d1RNW3mkCWUkDQ6yh3uDJFUZErPpaKBwKi4gM/iron_modolee.png)

안녕하세요. 개발자 모도리입니다.
이번에 Go를 공부하게 될 계기가 생겨서 앞으로 Go에 대한 컨텐츠를 올리려고 합니다.
저는 언어를 공부할 때 개념도 중요하지만 우선 개발 환경 구축은 한 후에 뭔가를 시작하자라는 마인드로 시작을 합니다. 그래서 이번에는 개발 환경 구축 및 Hello World 프로그램을 짜서 실행하는 것까지 해 보겠습니다.

# Go 설치
우선 Go 컴파일, 실행을 위해 Go를 설치 합니다.
### Golang 다운로드
* https://golang.org/ 에 접속하면 Go의 마스코트 귀여운 땅 다람쥐 Go gopher가 맞이해 줍니다.
![go_install_001.png](https://cdn.steemitimages.com/DQmP96pFmu8pxzMwDA2tv1YtQ3wYLSgBGncT6DvUaW5wQYe/go_install_001.png)
* 다운로드 버튼을 누르면 다양한 버전을 다운받을 수 있는 페이지가 나옵니다.
![go_install_002.png](https://cdn.steemitimages.com/DQmYdbjEBFiyiWxLGxA8T3w8m7HEGF5XJdNES5a7UPBTSx9/go_install_002.png)
* 현재는 1.11 이 stable 버전입니다. 그 중에서 Apple macOS 버전을 다운 받습니다.
### 설치
* go1.11.darwin-amd64.pkg 파일을 실행하여 설치를 시작합니다.
![go_install_003.png](https://cdn.steemitimages.com/DQmejLDYPQd73Utm7dSLijV1xrv1ZXZfZCJv5TE1SMFGq95/go_install_003.png)
* 특별한 설정 없이 **계속** 버튼을 눌러주면 설치가 완료됩니다.
![go_install_004.png](https://cdn.steemitimages.com/DQmUVEc1fhMgXPv62UGGpSE9SQcLSwTKNXTSiJXiCMbELiW/go_install_004.png)

### 설치 확인
`go`
`go env`
`go version`
![Sep-20-2018 16-36-28.gif](https://cdn.steemitimages.com/DQmUYRtvKWyzqyJiMsaG3DyCAXSrzsGYrLtDrhSbJmeqRxj/Sep-20-2018%2016-36-28.gif)

### Go workspace 설정하기
* workspace로 사용할 경로 생성
저는 홈 디렉토리 밑에 dev/go라는 디렉토리를 생성하여 workspace 로 사용하려고 합니다.
`mkdir /Users/modolee/dev/go`
* GOPATH 환경 변수 지정
  * .bash_profile 파일에 환경 변수를 추가합니다.
`vi ~/.bash_profile`
  * 아래 내용을 가장 밑에 추가해 주세요. (조금 아까 위에서 생성한 위치를 지정해야 합니다.)
```
export GOPATH="/Users/modolee/dev/go"
export PATH="$GOPATH:$PATH"
```

# Atom 설치
코드 작성을 도와줄 Atom 에디터를 설치해 보겠습니다.
### Atom 다운로드
* https://atom.io/ 에 접속합니다.
* 현재 버전은 1.30.0 버전입니다.
* Download 버튼을 눌러서 파일을 다운 받습니다.
![atom_install_001.png](https://cdn.steemitimages.com/DQmer1QSDaF2FWGyMYaUHbUxT55ZJYKT8dGVebD2Pavb8zE/atom_install_001.png)

### 설치
* 다운 받은 **atom-mac.zip** 파일의 압축을 해제합니다.
![atom_install_003.png](https://cdn.steemitimages.com/DQmS7Rf3p2cD2673dxXJfwNjtN8SqGKE2cqohAyf9dHcHa4/atom_install_003.png)
* 압축을 풀면 Atom 이라는 녹색의 실행 파일이 나오는데, 이것을 왼쪽에 있는 응용프로그램으로 드래그 앤 드랍합니다.
![atom_install_004.png](https://cdn.steemitimages.com/DQmdWZzFGLYyZBQtwA74ueJZrDD4gpT6PCPitUKnZea7pCD/atom_install_004.png)
![atom_install_005.png](https://cdn.steemitimages.com/DQmb1qRgSrJcZjGqx5gTBnRRiWswr2RSggEAVuZN3BFeeMM/atom_install_005.png)

### 실행
* 응용프로그램에서 Atom을 찾아 실행합니다.
![atom_install_006.png](https://cdn.steemitimages.com/DQmWZEVBy429v5o3opLDZik6vYmWrwGqvpU6K1sDdcMHa98/atom_install_006.png)

### 플러그인 설치
실행하면 Welcome Guide 창이 뜨고 오른쪽에 여러 버튼이 있는데 그 중에서 **Install a Package** 버튼을 누르고 **Open Installer** 버튼을 누릅니다.
![atom_install_007.png](https://cdn.steemitimages.com/DQmWgMdmQGtcJS8mjtqFMB7H3bCXWZdXXA8yasK8uuH3C2n/atom_install_007.png)

* 검색 창에 아래 3가지 플러그인을 검색하고 설치합니다.
  * go-plus : Go 개발 시 편리한 기능들 (코드 색칠, 자동 완성, 사용법 안내 등등) 제공
![atom_install_008.png](https://cdn.steemitimages.com/DQmdn8uGU5jzGv4zAmj4cbfozkKDW8BBX6F9Qtxcefbkcun/atom_install_008.png)
  * platformio-ide-terminal : Atom 에디터 내에서 terminal 창 실행
![atom_install_008_02.png](https://cdn.steemitimages.com/DQmZEDY5xKAkHZeXHkkkSJjomsUvmwXfMJZuTTH46DYRfBj/atom_install_008_02.png)
  * script : Atom 에디터 내에서 각종 프로그래밍 언어 실행
![atom_install_008_01.png](https://cdn.steemitimages.com/DQmVqi5YprPBdS5mCmaezjNSFe87uzwGQC8cXJsb84Fw4Ut/atom_install_008_01.png)

# 프로젝트 생성
* **File - Open** 또는 **File - Add Project Folder** 를 클릭한 후 프로젝트 생성을 원하는 위치를 지정합니다.
![hello_world_001.png](https://cdn.steemitimages.com/DQmbcPR5tVqDy5DFLAHSD4JTJNgxKiWM2GhDBzLjq7oSmbX/hello_world_001.png)
* Go 프로젝트는 기본적으로 bin, pkg, src 폴더 구조로 구성된다고 하네요.
![hello_world_002.png](https://cdn.steemitimages.com/DQmWpEzdn4wPSLhUpGU26XyzCcdP7GnKnbAdoRV2WNxE1q9/hello_world_002.png)
  * bin : 소스파일 컴파일 후 운영체제 별 실행 파일이 저장되는 곳
  * pkg : 프로젝트에 필요한 패키지가 컴파일되어 라이브러리 파일로 저장되는 곳
  * src : 직접 작성한 코드 및 오픈소스 파일들을 저장하는 곳

# 프로그램 작성
* src 폴더에서 우클릭하여 **New File**을 실행하여 **hello.go** 파일을 만듭니다.
![hello_world_003.png](https://cdn.steemitimages.com/DQmTJTkBNZtB8TqKczZHoQ1SqFHwLg8VcFA34N256CVdwfs/hello_world_003.png) 
* Hello World를 출력하는 프로그램을 작성합니다.
```
package main

import "fmt"

func main() {
	fmt.Println("Hello World!")
}
```
# 실행
* 왼쪽 밑에 있는 **+** 버튼을 눌러서 아까 설치한 terminal 플러그인을 실행합니다.
![hello_world_004.png](https://cdn.steemitimages.com/DQmZUe3DwywpzJnD7TkH4TZvrbyN4SeHVsa6gXVKq3r8Ycs/hello_world_004.png)
* 터미널 창이 생겨납니다.
![hello_world_005.png](https://cdn.steemitimages.com/DQmd1ATB8rE5xstMPrVJBWQJ6GWcmvUfZFpDKMpAYBpbLfF/hello_world_005.png)
* 실행 명령을 입력합니다.
`go run src/hello.go`
아래와 같은 에러가 발생하시는 분들도 계시고, 안나는 분들도 계실겁니다.
![hello_world_006.png](https://cdn.steemitimages.com/DQmTJExR7QuMtocUSQWS2PF9aSw6c6b3SynwqXGwrAp51Ld/hello_world_006.png)
***에러가 나는 이유는 저장을 안해서 그렇습니다. ㅋ***
* 저장하고 다시 실행하면, Hello World! 가 화면에 출력됩니다.
![hello_world_007.png](https://cdn.steemitimages.com/DQmZ43AVRcHRh3tUwqNacnwmcy1kPvp4u6QNJaxkPSZEqMw/hello_world_007.png)

---

Mac 에서 Atom 에디터로 Go 개발 환경을 구축해 보았습니다. 제가 Mac 초보인지라 제가 몰랐던 세세한 부분까지 적어보려 노력했습니다. 부족한 부분이나 궁금하신 점 있으시면 편하게 댓글 남겨 주세요. 감사합니다.^^

# 참고자료
* [Go프로그래밍 - 맥(Mac) 기본 환경 설정(1)](http://niceman.tistory.com/128)
* [Go프로그래밍 - 맥(Mac) 기본 환경 설정(2)](http://niceman.tistory.com/129)
* [The Go Gopher (번역)](https://snowiscoming.blog.me/221241028628)
* [Go 코드를 작성하는 방법](https://github.com/golang-kr/golang-doc/wiki/Go-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95)
👍  , , , , , ,
properties (23)
authormodolee
permlinkgo-mac-atom-go
categorykr-dev
json_metadata{"tags":["kr-dev","kr","golang","mac","atom"],"image":["https://steemitimages.com/DQmWQDjyP5d1RNW3mkCWUkDQ6yh3uDJFUZErPpaKBwKi4gM/iron_modolee.png","https://cdn.steemitimages.com/DQmP96pFmu8pxzMwDA2tv1YtQ3wYLSgBGncT6DvUaW5wQYe/go_install_001.png","https://cdn.steemitimages.com/DQmYdbjEBFiyiWxLGxA8T3w8m7HEGF5XJdNES5a7UPBTSx9/go_install_002.png","https://cdn.steemitimages.com/DQmejLDYPQd73Utm7dSLijV1xrv1ZXZfZCJv5TE1SMFGq95/go_install_003.png","https://cdn.steemitimages.com/DQmUVEc1fhMgXPv62UGGpSE9SQcLSwTKNXTSiJXiCMbELiW/go_install_004.png","https://cdn.steemitimages.com/DQmUYRtvKWyzqyJiMsaG3DyCAXSrzsGYrLtDrhSbJmeqRxj/Sep-20-2018%2016-36-28.gif","https://cdn.steemitimages.com/DQmer1QSDaF2FWGyMYaUHbUxT55ZJYKT8dGVebD2Pavb8zE/atom_install_001.png","https://cdn.steemitimages.com/DQmS7Rf3p2cD2673dxXJfwNjtN8SqGKE2cqohAyf9dHcHa4/atom_install_003.png","https://cdn.steemitimages.com/DQmdWZzFGLYyZBQtwA74ueJZrDD4gpT6PCPitUKnZea7pCD/atom_install_004.png","https://cdn.steemitimages.com/DQmb1qRgSrJcZjGqx5gTBnRRiWswr2RSggEAVuZN3BFeeMM/atom_install_005.png","https://cdn.steemitimages.com/DQmWZEVBy429v5o3opLDZik6vYmWrwGqvpU6K1sDdcMHa98/atom_install_006.png","https://cdn.steemitimages.com/DQmWgMdmQGtcJS8mjtqFMB7H3bCXWZdXXA8yasK8uuH3C2n/atom_install_007.png","https://cdn.steemitimages.com/DQmdn8uGU5jzGv4zAmj4cbfozkKDW8BBX6F9Qtxcefbkcun/atom_install_008.png","https://cdn.steemitimages.com/DQmZEDY5xKAkHZeXHkkkSJjomsUvmwXfMJZuTTH46DYRfBj/atom_install_008_02.png","https://cdn.steemitimages.com/DQmVqi5YprPBdS5mCmaezjNSFe87uzwGQC8cXJsb84Fw4Ut/atom_install_008_01.png","https://cdn.steemitimages.com/DQmbcPR5tVqDy5DFLAHSD4JTJNgxKiWM2GhDBzLjq7oSmbX/hello_world_001.png","https://cdn.steemitimages.com/DQmWpEzdn4wPSLhUpGU26XyzCcdP7GnKnbAdoRV2WNxE1q9/hello_world_002.png","https://cdn.steemitimages.com/DQmTJTkBNZtB8TqKczZHoQ1SqFHwLg8VcFA34N256CVdwfs/hello_world_003.png","https://cdn.steemitimages.com/DQmZUe3DwywpzJnD7TkH4TZvrbyN4SeHVsa6gXVKq3r8Ycs/hello_world_004.png","https://cdn.steemitimages.com/DQmd1ATB8rE5xstMPrVJBWQJ6GWcmvUfZFpDKMpAYBpbLfF/hello_world_005.png","https://cdn.steemitimages.com/DQmTJExR7QuMtocUSQWS2PF9aSw6c6b3SynwqXGwrAp51Ld/hello_world_006.png","https://cdn.steemitimages.com/DQmZ43AVRcHRh3tUwqNacnwmcy1kPvp4u6QNJaxkPSZEqMw/hello_world_007.png"],"links":["https://golang.org/","https://atom.io/","http://niceman.tistory.com/128","http://niceman.tistory.com/129","https://snowiscoming.blog.me/221241028628","https://github.com/golang-kr/golang-doc/wiki/Go-%EC%BD%94%EB%93%9C%EB%A5%BC-%EC%9E%91%EC%84%B1%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95"],"app":"steemit/0.1","format":"markdown"}
created2018-09-20 08:35:21
last_update2018-09-22 05:05:54
depth0
children0
last_payout2018-09-27 08:35:21
cashout_time1969-12-31 23:59:59
total_payout_value0.119 HBD
curator_payout_value0.034 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,364
author_reputation285,192,678,959
root_title"[Go] Mac에서 Atom으로 Go 개발 환경 구축하기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id71,747,124
net_rshares119,597,321,615
author_curate_reward""
vote details (7)