Node.js 로 만든 앱이나 서비스를 로컬 머신이 아닌 Web 상에서 호스팅하여 테스트 혹은 서비스를 하고 싶은 경우가 있다.


물론 자신의 서버와 도메인을 가지고 서비스를 하거나, AWS 에 저장공간을 가지고 서비스를 할 수 도 있으나 과금이 발생하므로, 무료인 서비스가 있다면 테스트로 쓰거나 작은 프로젝트를 돌리는데 무리는 없을 것 이다.


Node.js 프로젝트를 클라우드에 올려서 서비스를 해주는 heroku cloud application platform 사용법을 알아보자.


Heroku 는 플랫폼 서비스 기반(PAAS) 서비스로 AWS 와 비슷한 플랫폼으로 일정 환경으로는 무료로 사용할 수 있고 더 좋은 성능의 환경을 구축한다면 과금이 발생하게 된다.



1. Heroku 등록

  • https://www.heroku.com/ 에서 등록을 한다.
  • 등록한 이메일로 링크가 보내지는데 링크를 클릭하여 비밀번호를 입력한다.
  • 제대로 등록하였다면 Login 후 Dashboard 화면이 나온다.


2. Heroku Toolbelt 을 설치

  • Heroku Toolbelt 설치 항목은 다음과 같다.
    • Heroku Client: CLI 툴로 command 로 Heroku app 을 관리
    • Foreman: 로컬테스트 등의 기능 제공
    • Git: Heroku 에 push, revision control 등을 제공


3. SSH Key 등록

  • Heroku 는 git 을 이용하고, ssh key 가 필요하다.
  • shell 에서 다음 명령으로 heroku 에 로그인을 하면, ssh key 를 찾고, 없다면 생성 가능하다.
    • $ heroku login

  • 제대로 등록되었다면 이후에 heroku login 명령으로 접속이 가능하다.


4. Node.js App 작성


5. Procfile 작성

  • 자신의 app 의 root 디렉토리에 Procfile 이라는 파일을 생성하여 다음과 같이 기술한다.
    • Node.js 의 Entry Point 가 되는 실행명령어가 기술되는 파일이다.

web: node app.js

6. package.json 작성

  • 자신의 app 의 root 디렉토리에 package.json 파일을 작성해야 한다.
  • package.json
    • app 의 이름, 버전, node 의 버전, npm 버전, 사용한 라이브러리의 버전등의 정보를 기술해야한다.
    • npm 모듈중 express 는 반드시 사용해야하고, package.json 에 기술해줘야 한다.
    • 예제는 다음과 같다.
 {
  "name": "slide-control",
  "version": "0.0.1",
  "scripts": {
    "start": "node app"
  },
  "dependencies": {
    "express": "3.1.x",
    "jade": "0.28.x",
    "socket.io": "0.9.x"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}


7. NPM Install

  • shell 에서 다음 명령을 수행하면 package.json 을 참고하여 로컬에 해당 npm 모듈들이 인스톨 된다.
    • $ npm install
  • 설치가 된 후 npm ls 명령으로 현재 설치된 npm list 들을 살펴볼 수 있다.
    • $ npm ls


8. foreman Test

  • 로컬에서 Test 를 하고 싶다면, shell 에서 다음 명령을 수행하면 로컬에서 5000번 포트로 테스트가 가능


9. Git 저장소 생성

  • 개발한 소스를 로컬 Git 에 저장하기 위해 다음과 같이 수행한다.
    • $ git init
    • $ git add .
    • $ git commit -m "comment"


10. Heroku 에 리모트 Git 저장소 생성 및 push

  • 개발한 소스를 Heroku 리모트 Git 올리기 위해 다음과 같이 수행한다.
    • 로그인
      • $ heroku login
    • Heroku Remote Git 생성
      • 프로젝트 생성시 --stack cedar 이후에 자신의 앱이름을 적어준다.
      • 기술된 이름은 http://앱이름.herokuapp.com/ 과 같이 서비스되는 URL 의 이름으로 쓰인다.
        • $ heroku create --stack cedar myapp
    • 로컬 Git 의 내용을 Heroku 리모트 Git 으로 push
      • 아래와 같이 heroku git 으로 push 하는 즉시 App 이 Deploy되면서 서비스되는 URL 이 보여진다.
        • $ git push heroku master
      • 만약 첫 앱이름을 잘못 작성하여 새로 create 한경우에는 remote 설정을 지우고 다시 push 하면된다.
        • $ git remote rm heroku
        • $ heroku git:remote -a newname

11. Dashboard 에서 확인

  • https://www.heroku.com/  에서 로그인 후 Dashboard 에서 현재 서비스되는 자신의 App 리스트를 볼 수 있다
    • Resources
      • 과금을 통해 좀더 빠른 서비스를 제공받을 수 있다.
    • Activity
      • Heroku Git 에 기여한 이력등을 볼 수 있다.
    • Collaborators
      • 다른사람을 초대하나 하여 협업이 가능하다.
    • Settings
      • 현재 App 에 대한 설정등을 변경할 수 있다.

Posted by leechwin