티스토리 뷰

 

* 간단한 테스트용 서버를 구하려고 하던 중 이왕 하는거 nodejs로 하고 싶어서 여기저기 nodejs 호스팅 업체들을 알아보던 중 무료로 할만한 곳이 Heroku와 AppFog가 있다는 것을 알게 되었다. AppFog를 이용하려고 했지만, 앱을 새로 만들 때 에러가 나기 때문에 일단 Heroku로 시작하기로 했다.

 

0. 사전 준비

: nodejs/npm 설치 - Heroku에서는 0.8.x 버전을 호환해주므로 0.8.x 버전을 설치하자. 중간의 초록색 버튼을 누르면 바로 설치가 가능하다.

 

http://nodejs.org/

 

 

* 이제부터 무료 호스팅 서비스인 Heroku를 이용해보자.

 

1. Heroku 사이트에 접속

 

http://www.heroku.com

 

 

 

2. 가입하기

: 중간의 Sign Up 버튼을 클릭

 

 

 

3. 이메일 입력하기

: 이메일을 입력하면 계정 확인 메일이 보내진다.

 

 

 

4. 이메일에 들어가서 본문의 링크 클릭하고 비밀번호 입력하기

: 향후 서버에 소스를 올릴 때 사용하게 될 비밀번호이다.

 

 

 

5. 가입 완료

: 가입이 완료되면 아래와 같이 heroku의 dashboard 페이지가 나온다. 나중에는 이 페이지를 통해서 heroku에 올린 App을 설정하거나 통계치를 확인할 수 있다.

 

 

 

* 이번에는 간단하게 개발환경을 설정하는 것을 해보자.

 

6. 위의 화면에서 중간에 있는 Heroku Toolbelt for Windows 설치

: 아래의 설치 항목들 중에서 Heroku Client는 필수 항목이고, 추가 옵션 항목으로 Foreman와 Git and SSH가 있는데, Foreman은 로컬에서 테스트를 하기 위한 도구이고, Git and SSH는 서버로 소스를 올릴 때 사용해야하므로 설치되지 않았다면 선택해서 설치하도록 하자. 이미 설치가 되어있다면 굳이 설치할 필요가 없지만 다시 설치하여 설정 변경을 할 필요가 있을지도 모른다. Git를 처음 설치한다면 OpenSSH를 사용하도록 설정하자! 왜냐하면 PuTTy나 Cygwin을 이용하면 인증 과정이 조금 달라지고, 이것 때문에 하루 고생했었다.

 

 

 

 

7. 개발할 디렉토리 생성하고 기본 파일들 생성

- Git를 설치할 때 윈도우 cmd도 사용하도로 했다면 cmd를 통해서 해도 상관없지만, 이제부터는 git bash를 통해서 하면 편하다.

: 이 단계에서는 개발할 디렉토리를 생성하고 nodejs에서 사용할 환경 설정 파일들을 생성할 것이다.

  • package.json

: node.js에서 사용할 페키지들과 현재 버전을 정의한다.

{
  "name": "node-example",
  "version": "0.0.1",
  "dependencies": {
    "express": "2.5.x"
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}
  • web.js

: nodejs에서 시작할 때 불러올 js 파일 생성하여 저장

var express = require('express');

var app = express.createServer(express.logger());

app.get('/', function(request, response) {
  response.send('Hello World!');
});

var port = process.env.PORT || 5000;
app.listen(port, function() {
  console.log("Listening on " + port);
});

 

  • Procfile

: 샘플 앱에서 처음에 사용할 환경 설정 파일

web: node web.js

 

 

 

8. 필요한 nodejs package 설치

: 이제 git-bash 콘솔로 와서 위의 package.json을 참조하여 npm을 통해 패키지들을 설치를 실행하면 아래와 같이 express 패키지가 설치된다.

npm install

 

 

 

9. foreman을 통한 테스트

: foreman은 기본적으로 C:\Program Files\Heroku\ruby-1.9.2\bin에 있으니 혹시 경로 설정이 되어있지 않다면 경로를 추가하거나 bat 파일을 만들어서 실행하면 된다.

- git bash에서는 경로상에 빈칸이 있는 것이 문제가 되어서 윈도우의 cmd에서 실행해봤다.

foreman start


* 만약 foreman start해서 Bad File Descriptor 오류가 난다면 foreman의 버전을 다운그레이드해야될지도 모른다. 아래글을 참고하면 될 것이다.


2014/01/29 - [Heroku/nodejs] foreman start를 실행할 때 Bad file descriptor 오류 해결법


 

: 위와 같이 해당 포트 번호가 뜨면 브라우져에서 localhost:5000 (포트번호)로 접속하면 된다.

 

 

: foreman 콘솔에서 console.log의 내용이 뜨는 것을 확인할 수 있다.

 




 

 

* 이제부터는 로컬에 Git저장소를 생성해보자.

 

10. 로컬 Git 저장소 생성

: 다시 git-bash로 와서 로컬에서 개발환경을 설정했던 디렉토리로 간다음 아래의 명령어들로 로컬에 git 저장소를 생성한다.

git init
git add .
git commit -m "init heroku"

 

: 위의 명령어들을 설명하자면, git init을 통해 로컬에 git 저장소를 생성하고, git add . 을 통해 현재 디렉토리에 있는 내용들을 git 저장소에 추가하고, 마지막으로 git commit -m "init heroku" 를 통해서 현재 저장소에 추가한 파일들을 커밋하여 확정시키게 된다. 여기서 "init heroku"는 커멘트로 어떠한 문자열이 와도 상관없다.

 

  • git init

  • git add .

  • git commit -m "init heroku"

 

: 위의 과정들이 문제없이 끝났다면 로컬의 git 저장소를 정상적으로 생성하게 된 것이다.

 

 

* 이제 Heroku 서버에 로그인하고 파일을 업로드 하면 된다.

 

11. Heroku 로그인

: 다시 git-bash로 들어와서 Heroku에 로그인을 하게 되면 ssh 키를 생성할 것이냐고 물어보면 'Y'를 입력하고 엔터, 그러면 C:/Users/사용자/.ssh/id_rsa.pub에 기본 공개키를 생성하고 로그인을 하게 된다.

- 이 단계를 윈도우의 cmd에서 하게 된다면 git\bin 폴더를 경로에 추가해서 ssh-keygen 실행파일을 Heroku에서 접근해서 키를 생성할 수 있다.

heroku login

 

 

12. Heroku에 App (Git 저장소) 생성

: 로컬에서 git 생성이 끝났으면, 이제 remote인 Heroku의 서버에 git 저장소를 생성하고 파일을 업로드하면 된다.

heroku create

 

 

 

: heroku.com 사이트로 가서 로그인한 다음에 Apps를 클릭해보면 새로운 App 저장소가 추가된 것을 볼 수 있다.

 

 

 

13. Heroku 서버의 git 저장소로 소스 코드 업로드

: 이제 생성된 heroku 서버의 git 저장소로 소스를 업로드하면 된다. 위의 heroku create을 실행하는 단계에서 현재 git에 heroku의 저장소와 매칭시켜주는 heroku 가 git remote에 추가된 것을 확인할 수 있을 것이다. 따라서 이 heroku를 통해 소스를 올리면 된다.

git push heroku master

 

 

: 그럼 위와 같이 업로드가 완료되고, Launching 문구 아래에 서버에 업로드된 주소를 확인할 수 있다. 이제 브라우져를 통해 해당하는 앱의 주소나 heroku.com의 App 목록을 통해서 웹 페이지에 들어가게 되면 로컬에서 테스트한 것과 똑같은 결과가 나타나게 된다.

 

 

: 이후에는 로컬에서 코딩을 한 다음에 로컬 저장소에 commit하고 다시 git push heroku master를 통해 서버로 올리면 된다.

 

 

* 만약 git push heroku master 단계에서 "ERROR: Disconnected: No supported authentication methods available (publickey)" 라고 나온다면 git를 재설치하면서 OpenSSH를 이용하도록 설정하면 된다. 또는 PuTTy의 plink를 이용하는 방법도 아래 질문들에 나와있다.

 

http://stackoverflow.com/questions/6758386/git-push-origin-master-error-disconnected-no-supported-authentication-methods

 

* 이제 코딩을 시작하면 된다! 끝~

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함