본문 바로가기

Lecture & Tip/javascript[자바스크립트]

Heroku에서 node.js 설정하며 겪은 삽질 공유.

뭔 바람이 또 들었는지. 이번엔 node.js 입니다.

javascript하면 웹초창기때부터 익숙했던 대표적 client-side script였지만 요놈이 server side로 넘어가 node.js 란 이름으로 재탄생되었더군요.

node.js가 javascript라고 보기에는 무리가 있고 javascript의 문법을 차용한 server-side script로 봐야겠습니다.


뭐 암턴 관심을 가지고 요것저것 하는 도중에 server-side script이다보니 뭔가 좀 해보려면 서버가 필요합니다.

그냥 집에서 localhost로 공부만하겠다면 문제없지만 기왕에 시작한것 내 벽돌 갤럭시에서도 돌아가는 모바일 앱 하나 해보자니

node.js hosting 꽁짜를 뒤져봅니다. 


역시나 있습니다 ㅋㅋ


우선 먼저 발견한 것은 AWSheroku

두 가지 node.js hosting이 여기저기 비교도되고 많이 사용되는 것 같습니다.

뭐를 가지고 해볼까 고민중에 홈피가 아기자기하게 이쁜 heroku (오타쿠 스러운 분위기가 딱 맘에 듭니다 ㅋ)로 시작해봅니다.

<가격표 ㅋ. 사이트 곳곳에 오타쿠스러움이 묻어나있다~ 너무 쪽x리스럽지만 좋네~>


일단 계정을 등록하고 어딜가나 중요한 Hello World tutorial을 시작합니다.

이미 Tutorial에 나온 내용은 모두 skip하고 제가 겪은 삽질들을 몇가지 소개합니다.


#1 Tutorial Page에서 나오는 "package.json"파일의 express dependency 버전을 tutorial 그대로 입력하면 안된다!

 - 막무가내로 똑같이 "2.2.0"을 설정하고 npm install을 해버리면 내가 지금 설치한 node.js 버전이 너무 높다고 안된다고 뜹니다;

   당연한 이야기이지만 제가 이제 막 node.js 설치하였으니 지금 버전은 0.6.13, express module의 최신버전을 홈페이지에서 확인해보면 현재 "2.5.8".

  그래서 tutorial에 나온 그대로 입력하면 안되고 버전란에 "2.5.8"라고 하던지 무난하게 "latest"라고 입력해서 진행해야합니다.


#2 git push가 Error를 뿌려준다 - "Heroku push rejected, no Cedar-supported app detected"

 - 이건 Cedar-supported 란 말때문에 뭐가 있나하고 좀 당황했지만, 기존에 있던 파일 일부가 git에 add가 안되서 문제였던 것 입니다. 깔끔하게 그냥 git에 추가하고 push 하면 정상 진행됩니다.


#3 Procfile ? 요건 뭐냐?

 - 아직 이게 뭔지 잘 모르겠습니다. foreman 이 사용하는 process list file이란 심증은 가지만 좀 더 서핑 잉여질 스터디가 필요합니다.(줄줄이 사탕으로 알아둬야할 잉여서핑리스트에 차곡차곡 쌓입니다. ㅋ)

  일단 이것을 만들지 않고 foreman start 하면 Process list가 설정되지 않았다며 아무것도 시작하지 않습니다.


#4 내 App의 web url은 뭐야?

 - heroku 는 호스팅 서비스!! 그러니 내가 App을 올렷으니 확인을 위한 url이 필요한데, 홈페이지에 불친절하게도 자세한 내용이 없습니다.(사실 언급없이 살짝 나오지만 놓치기 쉽상).

  herokuapp.com의 sub domain으로 사용된는 것은 처음 heroku create cmd 생성시 만들어지는 git id가 나의 subdomain이 됩니다.

  아마 그것을 보지못하고 놓쳤다면 git directory의 config 를 열어보면 heroku로 설정된 remote alias에서 찾을 수 있습니다.

http://severe-waterfall-3920.herokuapp.com

이 내 hostring url입니다. ^^*


----추가!

URL을 위에처럼 어렵게 만들어진 이유는 app create할때 app이름을 아래처럼 안넣어줘서이네요;

heroku create --stack cedar

자기만의 subdomain을 app이름으로 할당가능했습니다. 아래처럼

heroku create --stack cedar <app_name>

app을 create하면 http://<app_name>.herokuapp.com 로 가능합니다.


이뿌게 hello world 찍어봤으니. 그럼 뭘 해볼까~ 고민해봅니다 ㅋ