뽀미의 개발노트

Go air 설치 맥 환경변수 설정 방법 본문

Go lang

Go air 설치 맥 환경변수 설정 방법

산타는 뽀미 2024. 12. 29. 13:05

Go build

Go로 만든 프로젝트를 실행하려면, main.go 파일이 '루트 디렉토리 > cmd' 폴더 안에 있다고 가정할 때

go run cmd/main.go

해당 명령어를 사용하여 실행해야 한다. 또는 파일을 만들고 싶다면

go build cmd/main.go

명령어로 파일을 빌드해서 실행해도 된다. (윈도우는 main.exe 파일이, 리눅스/맥은 확장자 없이 main 파일이 생성된다.) 그러나 해당 방법을 쓰면 코드를 수정할 때마다 매번 수동으로 명령어를 다시 입력해야 해서 불편하다.

그래서 air라는 유용한 라이브러리(https://github.com/air-verse/air)를 사용하여 코드 수정하면 자동으로 애플리케이션을 재빌드 후 실행하도록 해보겠다.

 

GitHub - air-verse/air: ☁️ Live reload for Go apps

☁️ Live reload for Go apps. Contribute to air-verse/air development by creating an account on GitHub.

github.com

 

 


 

 

먼저 아래 명령어를 사용하여 air를 설치한다. 보통 라이브러리는 go get 명령어로 설치하지만 바이너리 파일 설치는 go install 로 분리되었다. 해당 명령어는 바이너리를 $GOPATH/bin 에 설치하므로 경로가 PATH에 추가되어 있어야 air 명령어를 사용할 수 있다.

go install github.com/air-verse/air@latest

혹시 환경변수 설정 없이도 운 좋게 바로 실행 가능할지도 모르니 다음 명령어를 쳐보도록 하자.

air version

쳤는데 air 버전이 아닌 command not found 가 나온다면,,, 환경변수 설정을 해줘야 한다.ㅠㅠ 나의 경우 윈도우에 설치할 때는 환경변수 설정 없이도 바로 실행 됐었는데 맥에는 따로 해줘야 했다.

 

go env GOPATH

명령어를 사용하여 GOPATH 가 어딨는지 확인한다. 만약 이 명령어도 안 먹히면 1) go를 설치 안 했거나 2) go 경로도 못 찾는것,, 따라서 고를 설치하고 환경변수 설정 해주는 것이 우선이다. 암튼 GOPATH 경로가 만약 /Users/yourname/go 이면, air 설치시 그 바이너리 파일은 /Users/yourname/go/bin/air 에 설치되어 있다. (나의 경우 특이허게 go가 /usr/local/go/bin 에 설치되어 있어서 자꾸 go 경로를 못 찾아서 저것도 따로 환경변수 추가해줬음.. 암튼 저 경로도 찾아봐야 한다.)

vim ~/.zshrc

터미널에 위 명령어를 입력하여 파일 편집기를 연다. 키보드에서 i를 누르면 편집 가능 상태로 바뀐다.

위 그림과 같이

export PATH="$PATH:$(go env GOPATH)/bin"

을 추가로 입력해준다. 그 윗줄은 맥이 자꾸 go도 인식을 못하길래 추가해준것. which go나 go version 쳤을때 잘 나오는 사람은 그냥 go env PATH 경로만 추가해주면 됨~!! 암튼 추가했으면 esc 누르고 :wq 쳐서 저장하고 빠져나오면 된다.

source ~/.zshrc

이 명령어로 환경변수 변경 사항 적용하는 거 잊지 말기!!!!

암튼 그리고 나서 환경변수가 잘 적용이 되었다면, air version 쳤을 때

air version 성공시 나오는 화면

이런 화면이 나오면 성공!!! 그럼 드디어 프로젝트를 쉽게 실행할 준비가 되었따~~!!

 


 

그럼 다시 내 프로젝트로 돌아와서, 생각보다 air 실행하는 데에도 좀 헤맸어서 그 방법도 적겠다. air를 사용하여 프로젝트를 빌드하는 방법은 간단하다.

air

터미널에 간단하게 air 명령어만 치면 되는 거였음. 근데 내가 아주 간단하게 루트 디렉토리 바로 아래에 main.go 파일 만들고 나서 air 쳤을 때는 실행 잘 되더니 폴더 쫌 만들고 main.go 위치 바꾸니까 쟤가 실행되지 않는 것임. 왜냐하면 air는 main.go 파일이 있는 디렉토리로 가서 실행하거나 또는 뒤에 경로를 적어줘야 했기 때문임....!!

근데 매번 main.go 경로를 적거나 저기를 찾아가기는 너무 귀찮으므로, main.go 경로를 아예 박아두도록 하자!! 이미 .air.toml 파일이 있다면 그걸 열거나, 또는 아직 그 파일이 없다면

air init

이 명령어를 쳐서 프로젝트에 .air.toml 파일을 생성한다. 그러면 여러가지를 설정할 수 있는 파일을 볼 수 있다.

여러가지를 설정할 수 있지만, 일단 지금 볼 것은 cmd 명령어이다. 저곳에 air 쳤을때 실행하고 싶은 명령어를 치면 된다. go run main.go를 적어두면 그 명령어가 실행된다. 나같은 경우 위 사진과 같이 적어두었는데,

go build -o [파일명] [main.go 경로]

파일명에 ./tmp/main 이라고 적혔으므로 실행 파일이 tmp 폴더 내에 main이라는 이름으로 생성된다는 뜻이다. tmp 폴더는 이름 그대로 잠시 생성되는 폴더이므로 쉽게 삭제하고 다시 air를 해도 되고, git 에 올릴때는 제외해야 한다. 파일 이름을 main이 아닌 특정 이름으로 설정할 수도 있다. 내 컴퓨터는 맥이라서 뒤에 확장자를 적지 않았지만 윈도우의 경우 main.exe 이런 식으로 뒤에 .exe 확장자를 꼭 붙여야 한다는 사실 잊지 말기!!!!

main.go 위치를 ./cmd/main.go 라고 제대로 적어줄 경우 cmd 폴더에서 저 애플리케이션 진입점 파일(main.go)을 제대로 찾아간다. 그럼 앞으로 main.go 파일 내가 직접 찾아갈 필요 없이 그냥 루트 디렉토리에서 air 명령어 하나만 쳐도 알아서 명령어가 잘 먹히게 된다~~!! 되게 당연하고 쉬워보이지만 이거 제대로 설정 안 하면 air 실행하는 데만 한시간 걸릴수도 있으므로(경험담ㅎ) 설정 잘 해주고 잘 안 되면 경고문을 잘 읽어보기!!

암튼 air 실행시

이런 화면이 나온다면 잘 설정된 것~~!! 나는 gin을 활용해 간단한 restful API를 만들었는데, 설정해둔 url을 입력할 경우 

이렇게 GET/POST/PUT/DELETE 도 색깔별로 이쁘게 알려준다. 잘못된 url 칠 경우 404 에러 뜬 것도 잘 나옴!!! (아 근데 다시 알아보니 이건 air에서 해준게 아니라 gin 웹서버 만들때 gin.Default()로 만들면 알아서 이쁜 미들웨어(logger)로 설정해줘서 그런 거였음!! 헉스바리ㅠㅠ)

암튼 air 로 실행했기 때문에 코드를 수정하고 파일을 저장하면 알아서 재빌드 해준다. 그래도 브라우저에서 새로고침은 수동으로 해줘야 함~!! 그럼 너무 유용한 라이브러리 air 설치 및 실행 방법과 환경변수 설정 방법 작성 완료~!! ^0^