Search
Duplicate

원격 개발 환경 구축하기(Golang)

이번에는 원격지 서버에 개발환경을 구성한 후, PC에서 원격 접속하여
코딩을 할 수 있는 환경을 구성하는 방법을 소개하겠다.
보통 우리가 특정 언어 개발환경을 구성하는 방법은 아래와 같다. (Java를 기준으로...)
1. 개발 pc에 jdk를 설치 후 환경변수 설정
2. 특정 디렉토리에 워크스페이스 생성
3. 사용할 IDE를 설치 후 생성된 워크스페이스 연결(워크스페이스를 먼저 생성안하고, IDE에서 생성할 수 도 있다..)
4. 설치된 IDE에서 코딩
전혀 문제가 없는 방법이다. 사실 본인도 로컬에 구성하는 것을 선호한다.
로컬에 개발 환경을 구성하면 어떠한 단점이 있을까?
첫번째, PC를 변경하게 될 경우 개발 환경 설정을 다시 해야하고 소스코드도 옮겨야 한다.
물론 아름다운 Mac은 "마이그레이션" 한 방으로 기존에 쓰던 Mac의 모든 환경을 그대로 옮길 수 있다.
두번째, 작업한 소스는 개발 PC 로컬 스토리지에 저장되기 때문에 소스의 양만큼, 용량을 차지하게 된다.
세번째, 개발 PC 로컬에 환경을 구성했기 때문에, PC가 고장나거나, PC를 다른곳에 두고 외부에 나가면 코딩을 이어서 할 수 없다!
당연히 git으로 소스를 관리한다면 얘기는 달라지겠지만... 어쨌든 언어 설치 및 IDE 설치를 다시 해야한다...
뭔가 어거지 같지만...
원격 개발 환경 구축으로 얻는 장점은 아래와 같다.
첫번째, 환경 자체는 서버에 구성하였기 때문에 개인 PC에서는 코딩을 할 IDE정도만 설치하면 된다.
기존에 사용한 PC가 아니더라도 코딩을 할 준비를 보다 빠르게 할 수 있다.
두번째, PC를 좀 더 깨끗?하게 사용할 수 있다.
언어 설치, 환경변수 설정 등을 하지 않기 때문에...
세번째, PC, 스마트폰, 아이패드, 태블릿 등 플랫폼에 국한되지 않고 코딩을 할 수 있다.(단, 인터넷이 되야함.)
물론, PC처럼 아주 편하게 구성하기에는 다소 제한이 있다..
사용하는 OS에서 IDE 앱을 제공하지 않는다면, CLI기반으로 개발을 해야한다..
리눅스 터미널의 두려움을 떨쳐내면 아이패드에서도 IDE앱이 아닌
SSH 앱으로 접속하여 스프링 부트 개발을 할 수 있다! (추후 포스팅 예정)
네번째, 소스코드를 원격지 서버에 저장하기 때문에 PC 용량 절약에 약~간 도움이 된다.
다섯번째, 강제로 리눅스 공부를 하게 된다. (리눅스에 구축할 것이기 때문에..)
"원격 개발 환경 구축"이라고 말은 거창하지만, 사실 서버 구축 후 서버에 언어를 설치하는게 전부이다.
아래 순서로 진행하겠다.
1. 리눅스에 golang 설치
2. VSCode에 필요한 Extension 설치
3. 원격 접속 설정
4. 테스트
원격 개발 환경 구축이기 때문에, 서버를 하나 마련해야한다.
보통의, 개인이 서버를 구축하는 경우는 별로 없다. (하지만, 본인은 미니PC로 Linux 서버를 구축해서 사용중이다..)
본인처럼 안쓰는 PC에 Linux를 설치해서 사용하거나, AWS 프리티어 서버를 구축해서 사용해도 무관하다.
경우에 따라, 서버 비용을 지출하기 다소 애매할 수 있기 때문에 오라클 클라우드에서 제공하는 무료 서버를 사용해보는 것을 추천한다.
개인 서버가 없는 경우, 위 링크에서 "오라클 클라우드 서버 구축 방법"에 대해 친절하게 설명하였으니, 구성해보자.

원격 서버 접속

실습 환경은 CentOS7 이다. ubuntu를 사용하고 싶으면 사용해도 된다.
단, OS 종류에 따른 커맨드나 설정파일 경로가 다를 수 있는점을 참고하자.

Golang 설치 및 환경 변수 설정

공식 홈페이지에서 배포하는 소스파일을 받아도 무관하지만, 본인은 귀찮기 때문에
패키지매니저(yum)을 통해 설치하겠다.
sudo yum -y install golang
Bash
복사
패키지매니저로 설치하기 때문에 의존성이 있는 패키지도 같이 설치된다.
golang 설치가 끝났다.
Tip. 2020.09.28 CentOS7 기준, Golang이 설치된 경로는 "/usr/lib/golang"
Golang을 설치할 때 workspace로 사용할 GOPATH 환경변수를 설정해줘야 한다.
본인은 "/home/pjw/golang" 디렉토리를 GOPATH로 지정하였다.
export GOPATH=/home/pjw/golang echo $GOPATH # 등록이 잘 되었는지 확인 해보자.
Bash
복사
Golang 관련 환경변수를 접속했을 때 마다 입력하기 불편하기 때문에, ".bash_profile" 파일에 환경변수를 저장하겠다.
Tip. "/home/사용자이름/.bash_profile" 파일에 환경변수를 저장하면, 해당 계정으로 접속했을 때 환경변수가 자동으로 적용된다.
변경 전 .bash_profile
변경 후 .bash_profile
아래 값을 추가해준다.
export GOPATH=$HOME/golang # 자기가 GOPATH로 설정한 workspace 경로 PATH=기존에 등록된 PATH 값:$GOPATH/bin:/usr/lib/golang/bin
Bash
복사
source 명령어로 .bash_profile에 설정한 값을 적용해보자.
참고로 .bash_profile에 값을 수정하면 바로 반영 되지 않고, 해당 계정으로 재 로그인을 해야지 반영이 된다.
그리고 go version 명령어로 설치가 잘 되었는지 다시 한번 확인해보자.
source ~/.bash_profile go version
Bash
복사
기본적으로 GOPATH 하위에 "bin", "src", "pkg" 디렉토리를 생성해줘야 한다.
... 사실 이 부분은 본인이 깔끔하게 설명하기 어려워, 개인적으로 구글링 해보길 바란다.
cd $GOPATH mkdir bin src pkg
Bash
복사

테스트 코드 작성 및 빌드, 실행 테스트

급한대로, vi 에디터를 사용해서 Hello, World를 출력해보자.
vi test.go
Bash
복사
package main import "fmt" func main() { fmt.Println("Hello, World!") }
Go
복사
"go build"로 소스 코드를 실행파일로 빌드 후 실행해보자.
go build test.go ./test
Bash
복사
여기까지 하면 서버에 Golang이 설치가 끝났고, 정상 동작하는 것도 확인했다!

VS Code에 Extension 설치 및 SSH 설정

(CLI와 VIM에디터를 사랑한다면 해당 과정을 Pass하고, 그냥 Putty로 붙어서 개발하면 된다!)
Golang를 개발 할 수 있는 IDE는 여러개가 있지만, 해당 포스팅에서는 VS Code를 사용하겠다.
"Extensions:MarketPlace"에서 "remote"를 검색하여 "remote - SSH"를 설치하자.
"Remote - SSH" Extension이 설치 완료가 되면 좌측 하단에 보라색 버튼이 하나 생긴다.
보라색 버튼을 클릭(혹은 cmd(ctrl) + shift + p > remote)을 하면 위와 같은 선택창이 나온다.
세번째 설정파일을 열자.
사용자 홈 디렉토리에 있는 config 파일을 열자.
본인의 경우 키체인 방식으로 서버에 접속하기 때문에 비밀키 파일 경로를 저장하였다.
키체인 발급 방법을 모른다면 아래 링크를 참고하자.
접속 정보를 잘 입력했다면 저장을하고 config 파일을 닫는다.
다시 보라색 버튼을 클릭(혹은 cmd(ctrl) + shift + p > remote)을 누른 후, "Connect to Host" 클릭.
config 파일에 저장한 Host를 선택한다.
VS Code가 새창으로 하나가 더 열린다. 좌측 하단을 보면 Host가 표시되는 걸 알 수 있다.
이 과정에서 VS Code Extension을 설치하라고 뜰 수 있다. 설치 진행.
File > Open > 원격 서버에 생성한 워크스페이스($GOPATH)를 연다.
~.go 파일을 하나 생성하면, VS Code에서 Golang 관련 Extenstion을 원격지 서버에도 설치할 할 것인지 묻는다. 그냥 설치를 진행 하면 된다.
Golang 관련 Extenstion 설치가 완료 되었다.
이제 Golang 관련 code assist, code highlight 등이 적용된다.

테스트 코드 작성 및 실행

package main import "fmt" func main() { fmt.Println("Hello, Go!") }
Go
복사
Run > Run Without Debugging 클릭 후 Debug Console에 정상적으로 출력되는지 확인한다.
terminal에서 직접 build, run도 해본다.
여기서 소스 코드, 빌드된 실행 프로그램등은 당연히 원격지 서버에 저장되는 점을 잊지 말자.
Golang 원격 개발 환경 구축이 끝났다!
이제 본인 PC가 아닌 친구 PC에서도 접속 해서 코딩을 할 수 있다.(그럴 일이 있을지 모르겠지만..)
원격 접속(SSH Protocol)을 해야하기 때문에 인터넷 연결이 필수이며, 서버와 통신이 가능해야한다.
해당 가이드를 응용하면 Golang이 아니라 다른 언어의 개발 환경도 구성할 수 있다.