간단한 API 서버를 Node.js로 만들고 Heroku를 이용해서 서비스를 띄워보는 과정.
해보니 정말 간단해서 깜짝 놀랐다. 사이트에 나와 있는대로 따라하면 2~3분도 안 걸린다.
사전 조건: Node.js와 git이 로컬 환경에 설치되어 있고 PATH가 설정되어 있어야 한다.
1. Express 앱 생성
Eclipse의 nodeclipse 플러그인, IntelliJ, 또는 WebStorm에서 새 프로젝트 만들기로 Node.js(Express) 프로젝트를 선택하면 간단한 껍데기 앱이 생성된다.
npm install # 필요한 모듈 설치
npm start # 앱 구동
.png)
http://localhost:3000 접속 시 위와 같이 뜨면 정상.
2. Procfile 생성
Express 앱의 루트 디렉터리에 Procfile이라는 이름의 파일을 생성하고 아래 내용을 입력한다.
web: node ./bin/www
web: 다음의 내용은 Heroku 서버에서 앱을 Deploy할 때 수행되는 명령어다.
forever나 pm2를 사용한다면 해당 명령어로 대체하면 된다.
3. package.json 의존성 확인
Heroku에서 Deploy 시 package.json의 내용을 기반으로 라이브러리를 설치하므로, 모든 의존성이 정확히 명시되어 있어야 한다.
로컬 개발 환경에서 전역 설치해 놓으면 package.json에 적시 안 되어 있어도 앱은 잘 돌아가는 경우가 있어 이 부분을 주의!
라이브러리 설치 시 항상 -save 옵션을 사용한다.
npm install 라이브러리_명 --save
.png)
4. Heroku 계정 생성
heroku.com 에 접속하여 Sign up으로 계정을 만든다.
.png)
5. Heroku 앱 생성
로그인 후 대시보드 우측 상단의 New 버튼을 클릭하여 앱을 생성한다.
- 앱 이름: 소문자만 허용
- 서버 위치: 유럽 / 미국 중 선택
.png)
앱 생성 후 대시보드에서 해당 앱의 Deploy 탭을 선택하면 배포 방법이 친절하게 설명되어 있다.
원리: Heroku에서 제공하는 Git Repository를 remote로 설정하고 소스를 push하면 pipeline을 통해 프레임워크를 자동 식별하고 Deploy한다.
6. Heroku CLI 설치
https://devcenter.heroku.com/articles/heroku-command-line 에서 운영체제에 맞는 CLI 툴을 설치한다. (여기서는 Windows 10)
.png)
별도 콘솔 프로그램 없이 Windows 프롬프트에서 heroku 배치파일 명령어로 실행한다.
7. Heroku CLI 로그인 및 앱 확인
heroku login # Heroku 계정으로 로그인
heroku apps # 생성해 둔 앱 목록 확인
8. Git Repository 설정 및 소스 커밋
Express 앱 소스 디렉터리로 이동 후 아래 명령어를 순서대로 실행한다.
git init # 로컬 Repository 초기화
heroku git:remote -a heroku에_생성해놓은_앱_이름 # Heroku Git을 remote로 설정
git add .
git commit -am "init commit" # 로컬 Repository에 커밋

9. Heroku에 Push & Deploy
git push heroku master
소스가 전송되면서 프레임워크를 자동 탐지하고 Deploy되는 과정이 로그로 출력된다.

https://앱_이름.herokuapp.com 으로 접속하면 정상적으로 뜬다.
포트 번호를 따로 붙이지 않아도 80포트로 서비스되도록 자동 설정된다.
10. 사용 소감
설정이 매우 간단하고 생산성은 좋으나, 정식 서비스 사용 시 아래와 같은 한계점이 있다.
- 서버가 해외(유럽/미국)에 있어 국내 서버와 I/F 시 응답 속도가 느림
- PostgreSQL DB 호스팅도 제공하지만 무료 플랜에서는 사용하기 어려울 정도로 느림
- 일정 시간 접속이 없으면 웹 서버가 Sleep 모드로 전환되어 재접속 시 응답이 지연됨
- 제대로 쓰려면 유료 전환이 필요
→ 프로토타입이나 테스트 용도로는 매우 적합하다.