Nitrous.IO : 무료 가상 클라우드 개발환경

프로그래밍을 배우는 가장 빠른 방법은 이것저것 만져보면서 만들어보는 것이 가장 좋다. 그런데 프로그래밍으로 가는 길에 떡하니 버티고 있는 개발환경 설정은 재미없는 골칫거리이다. 대부분의 프로그래밍 책 가장 첫 부분에 버티고 앉아 초보들의 의욕을 떨어뜨리는 부분이 바로 “설치”편이다. 그런데 이런 성가신 과정을 건너뛸 수 있는 서비스가 나왔다. 바로 Nitrous.IO이다.

1분 안에 만드는 가상 머신

Nitrous.IO에 가입하고 나면 Box라고 부르는 가상 머신을 만들 수 있다. 가입할 때 추천인 링크를 타고 가입하면 가상 화폐 개념인 N2O를 추가로 10만큼 더 받을 수 있으므로 가능하다면 추천인 링크를 이용하는 것이 조금 더 이득이다. 그리고 당연한 말이지만 N2O가 많을수록 보다 많은 머신을 만들 수 있으며, 머신의 성능도 더 좋게 만들 수 있다(다른 추천 가입 경로를 모른다면 https://www.nitrous.io/join/oVf8lrx5OlI 를 사용해도 좋다).

가입한 후 오른쪽 상단의 Boxes라는 메뉴를 클릭하면 다음과 같은 화면을 볼 수 있다. Nitrous.IO에서 Box는 가상 머신을 뜻한다. 아래 화면을 보면 toy-node라는 가상 머신이 하나 만들어져 있음을 알 수 있다.

nitrousio_1

여기서 오렌지색 New Box를 클릭하면 다음과 같이 새로운 가상 머신을 추가하는 화면이 나타난다.

nitrousio_2

N2O 화폐는 여기서 사용되는데 1 Box 당 최소 150 N2O가 필요하다. N2O가 넉넉하다면 바를 드래그하여 메모리(Memory)와 저장공간(Storage)을 조금 더 많이 할당할 수 있으며 메모리는 최대 2GB까지, 저장 공간은 최대 10TB까지 할당할 수 있으며, 이 경우 N2O는 1040만큼 필요하다. 선택할 수 있는 개발 환경은 Ruby/Rails, Node.js, Python/Django, Go 등으로 원하는 개발 환경을 클릭한 후 Create Box 버튼을 클릭하면 개발 환경이 만들어진다.

nitrousio_3

서버의 지역도 US West, US East, Europe, Southeast Asia, East Asia, South America, Oceania 중에서 고를 수 있어 사실상 아프리카를 제외한 지구의 모든 지역을 대상으로 하고 있다고 봐도 될 듯하다. 서버를 만들고 나면 다음과 같은 화면이 나오는데 Node.js 개발 환경은 거의 바로 만들어졌던 반면, Go 개발 환경은 시간이 좀 걸리는 느낌이었다.

nitrousio_4

주의! Go 언어로 만드는 박스는 아직 버그가 있는 듯 정상적으로 실행되지 않는다. 반면 node.js로 만든 박스는 문제없이 잘 동작했다. 개발팀에 직접 문의도 하고 담당 개발자가 직접 점검도 해주었지만 문제를 해결하지 못해 스크린샷에 있는 박스는 결국 삭제하고 새로운 박스를 만들었다.

개발 환경

박스를 만들고 나면 다음과 같이 목록에서 박스를 볼 수 있다.nitrousio_5

여기서 주황색 IDE 버튼을 클릭하면 웹 기반의 개발 환경을 볼 수 있다.

nitrousio_6

웹 기반이라고는 하지만 코드 편집도 콘솔의 기능도 사용하기에 크게 무리가 없을 정도라 다른 도구가 따로 필요하지 않다. 특히 콘솔에서는 실제 리눅스 콘솔을 보듯 vim, emacs 또는 git을 비롯한 여러 콘솔 애플리케이션도 실행할 수 있다. 반면 코드 편집기는 문법 강조 기능, 탭/스페이스, 찾기 기능만 지원되고 있어 조금 아쉬울 수 있다.

파일 탐색기에서는 파일 또는 폴더 이름 위에서 마우스 오른쪽 버튼을 클릭하면 새 파일, 새 폴더, 열기, 이름 바꾸기, 삭제 등의 메뉴를 볼 수 있다. 폴더에서는 파일을 직접 업로드 할 수도 있으며, 한 파일의 최대 크기는 20MB까지 가능하다.

메뉴에서 보듯 이 개발 환경은 협업 기능도 지원하는데 함께 코딩할 수 있도록 지원하는 기능이다. 함께 코딩할 파일을 열고 Collaborate 메뉴의 Manage Collaborators 를 통해 협업할 사람을 초대한다. 그 후 편집기 오른쪽 상단에 있는 협업 모드(Collab Mode) 버튼을 켠 후 상대방에게 웹 브라우저 주소 표시줄에 나타난 주소를 전달하여 접속하도록 한다. 협업 모드를 사용하면 상대방이 코딩하는 내용을 서로 실시간으로 볼 수 있다. 다만, 협업 모드를 켜면 동작이 약간 굼뜨다는 느낌이 들어 간단한 코드 정도에만 사용할 수 있을 듯 하다.

원한다면 웹 IDE 대신 SSH 터미널로 접속하여 사용할 수도 있다. SSH를 사용하려면 먼저 오른쪽 상단 공통 메뉴에 있는 Public Keys 링크를 통해 공개 키를 등록해야 한다. 접속할 주소는 박스 목록에서 SSH URI라고 표시된 부분이다. 포트 번호가 22번이 아닐 수 있음에 주의하고, 등록한 공개키에 해당하는 비공개키를 사용하여 터미널로 접속하면 보통의 리눅스 서버와 크게 다르지 않은 터미널 환경을 만난다. 당연히 폴더 생성/삭제도 가능하고 vim, emacs, git, wget 등의 애플리케이션도 사용할 수 있다(심지어 gcc도 가능). 하지만 일부 명령어(apt-get 등)의 경우에는 권한이 없어 사용할 수 없다.

개발 환경에서는 웹 서버가 따로 동작하지 않기 때문에 직접 웹 서버를 구현해야 하는데 안타깝게도 80 포트는 사용할 수 없으며 로컬 호스트를 바인딩 할 때는 127.0.0.1 대신 0.0.0.0 을 사용해야 한다. 또한 데이터베이스는 외부의 서비스를 사용해야 하는데, 여기서는 MongoDB를 서비스하는 MongoLab과 PostgreSQL을 서비스하는 Heroku를 소개하고 있다. 두 서비스 모두 적은 용량만 제공해주기는 하지만 무료 플랜을 제공하고 있으므로 관심있다면 사용해보는 것도 좋다.

결론

아직은 베타이기 때문에 불안정한 점도 있고 몇 가지 제약도 있지만 굉장히 간편하게 개발 환경을 구축할 수 있는 점, 그리고 무엇보다 무료로 사용할 수 있는 클라우드라는 점에 큰 점수를 주고 싶다. 간단한 개인 프로젝트 등을 진행하기에는 충분할 것으로 보인다. 이 기회에 해외에 서버를 하나 마련해보는 것도 좋을 것이다.

댓글을 남겨주세요