node.js+mongodb WebIDE부터 무료 호스팅까지
local에서 node.js개발을 하려면 node.js만 컴퓨터에 설치하면 쉽게 개발을 시작할 수 있다.
하지만 여러 컴퓨터를 이동하며 개발하고자 할때에는 web IDE가 여러모로 편리하다.
IDE는 Integrated Development Environment의 약자로 통합개발환경이라는 뜻이고, 개발에 필요한 여러가지 환경들을 한데 몰아서 제공해주는 것이다.
web IDE는 웹상에 IDE를 구현하여 웹에 접속하여 이용할 수 있는 IDE를 말한다.
이 포스트는 필자가 node.js를 지원하는 여러 개발환경을 접해본 결과 무료환경에서 괜찮았던 서비스를 추천하기위해 작성되었다.
c9.io (https://c9.io/)
c9.io는 web IDE라는 말이 정말 잘 어울리는 서비스이다. 코딩부터 디버깅, 터미널도 제공한다.
무료환경에서는 공개 workspace 1개, 비밀 workspace 1개를 제공하며 자체 호스팅도 가능하다.
다만 온전히 개발용 환경이기에 도메인 설정도 불가하고 장시간 비접속시 서버가 sleep상태로 넘어가므로 정식 서비스를 c9.io에서 제공하는 것은 부적합하다.
mlab (https://mlab.com/)
mlab은 mongodb 호스팅 서비스이다. 무료로 0.5GB의 db용량을 제공한다.
c9,io에서도 자체적으로 mongodb를 설치해 사용할 수는 있지만, 서버가 혼자 꺼지는 관계로 db를 매번 다시 복구하고 켜주는데 번거로움이 있다.
따라서 필자는 c9.io에서 코딩 및 테스트를하고 db는 mlab으로 연결시켜두었다.
.
heroku (https://www.heroku.com/)
c9.io는 서버가 자동으로 sleep상태로 들어가기 때문에 테스트용으로 사용하는데 번거로움이 있다.
heroku는 호스팅 서비스인데 node.js를 지원하고있다. 무료 plan에서는 30분간 비활동시 sleep조건이지만 클라이언트로 접속하면 수초내에 서버가 다시 활성화된다.
호스팅서비스이기 때문에 도메인을 갖고 있다면 도메인도 변경 가능하다.
필자는 세가지 서비스를 종합하여 이용중이다.
c9.io에서 코딩을한 후 github와 연결한다. mlab의 mongodb와 연결해둔다.
heroku도 같은 github로 연결해두면 c9.io에서 push했을 때 자동으로 heroku에서 빌드가 되므로 편리하다.
c9.io의 코드가 heroku에서 그대로 동작하므로 heroku에서 db도 mlab의 db그대로 연결된다.
간단한 서비스의 경우 세가지 서비스를 종합하여 이렇게 무료환경만으로도 서비스가 가능하다.
그 밖에 다른 호스팅 서비스로는 더 나은성능을 제공하는 redhat의 openshift (https://www.openshift.com/)가 있는데, 이용방법이 다소 복잡하고 어려우며 빌드과정에 버그가있다. (nextgen버전이 아직 베타테스트중이라 그런 것 같다). 또한 무료계정의 경우 약 1달마다 계정이 초기화되므로 마찬가지로 db는 외부서비스를 이용해야 안전하다.