[유튜브 강의] Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) - 4 (서버편 완결)

2020. 3. 11. 11:30[유튜브 강의]- 센치한 개발자/[Server] 잡다한 강의 - 진행중

728x90

 

 

 

▶︎ 센치한 개발자 유튜브 구독하기 : https://www.youtube.com/channel/UCvb9oqG4CtZ5H4m_NSD1GYA?sub_confirmation=1

 

+ 여기에는 없는 mongoDB Atlas 도 팁으로 알려드립니다 (간단해요~)

[ Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) 목차 ]

1. Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) - 1

2. Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) - 2

3. Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) - 3

4. Node js 와 mongoDB, Heroku(헤로쿠)로 만드는 다이어리앱 (서버편) - 4 (서버편 완결)

 

지난 시간까지 했던 내용을 회차별로 간략하게 살펴보면 다음과 같습니다.

 

1. 헤로쿠 계정 생성 > 샘플소스(hello heroku)다운로드

2. DB사이트 mlab 가입 > db 기본 셋팅 > 데이터 조회 테스트

3. API 분리 '라우팅' > API 호출 테스트

 

이제 드디어 Node.js + heroku + mongoDB 환경으로 구성하는 다이어리앱 만들기 서버편의 마지막 시간입니다.

마지막으로 해야할 일은 "로컬 소스를 서버로 배포"하는 것입니다.

이를 위해서 해야할 준비사항은 다음과 같습니다.

 

 

1. 기존 샘플 소스에 연결된 git remote 해제 (샘플 레파지토리에 연결되어 있으므로) 및 git 초기화

2. 헤로쿠 git으로 배포할지, 개인으로 보유중인 github 등으로 배포할 지 결정하여 배포 
(여기서는 헤로쿠 git으로 배포합니다)

 

크게보면 위와같이 딱 2단계인데, 뭐 별거 있겠어!? 싶지만... git에 대한 기본 개념 + 헤로쿠의 배포(deploy)의 상관관계에 대한 개념이 필요합니다..

 

[ 사전 개념 ] - git의 소스 관리 개념

  • git은 특정 시점을 지정하여 로컬 컴퓨터 또는 특정 원격서버에 그 시점의 소스를 저장합니다. 
  • 이러한 관리는 "레파지토리(repository)" 라는 개념의 저장소에 저장&관리하게 되는데, 이는 로컬에도 있고 원격에도 있습니다. 그래야 로컬에서도 관리하고 원격서버에서도 관리할 수 있게 됩니다. 
  • 이렇게 저장소가 준비되고 소스를 관리하다보면 어느날 코딩하다가 폭망했을때나(폭망하면 안되지만) 로컬 소스가 날아갔거나 했을때 언제든 해당 시점으로 되돌릴수도 있습니다.  (옛날에는 이게 안되니... 디스켓이나 이메일로 압축파일을 보관하고 그랬"읍"니다 ㅋ..)
  • 그리고 누군가에게 그 해당 시점의 소스를 다운로드해서 보라고해서 니가 소스를 고쳐, 당장 고쳐라고도 할 수 있는 좋은(?) 시스템입니다.

 

    *. 센개의 단상

더보기

: 물론 이러한 설명 방식은 이해를 돕기위한 풀이식 설명입니다.. 

  급! 설명을 드리자면 제가 초보때 항상 들던 생각인데.. 많은 it기술 서적들이나 사이트들이 정리는 잘되어 있지만 도대체 용어를 이해나 개념이나 왜 그걸 그렇게 하는지 도저히 알길이 없는 외계어(?)수준으로 어렵게만 적혀있던 것에 어려움을 많이 겪었습니다. 

  그러다보니  저만의 방식으로 위와 같이 설명하는게 익숙해졌습니다; 특정 기술이나 방식을 정석대로 정석의 용어로 학습해야하는 것은 당연한것이지만, 그 이전에 처음 접하는 시점에서 흥미를 잃어버리면 무슨 소용이 있을까요...

  본인의 영어 발음에 컴플렉스(또는 타인에게 발음을 지적받는 것을 두려워하는)가 있을수록 타인의 발음을 지적한다는 유명한 영어 선생님의 명언이 갑자기 떠오르네요. 영어 발음을 지적하는 나라는 한국밖에 없다고 하네요(다른 나라에도 있긴 있겠지만요 ㅋ) 

  그러니 어려운 기술, 어려운 용어, 신기술에 너무 매달리지만 않으셨으면 좋겠습니다~ 아참, 그래도 팀워크를 하실때에는 꼭 용어는 정식 용어로 통일해야 합니다! 

  모로가도 서울로만 가면 되는거 아니오!? 가 아니라 모로가더라도 서울을 가야하는 방법을 "알고 있는 상태"에서 여러분의 스타일에 맞게 가시면 됩니다~ )

 

  • 그런데 이러한 git 은 여러가지 부가 기능들이 있어서 서버를 자동으로 구동시킬수도 있고, 소스를 자동으로 빌드해서 정상인지를 확인시켜주기도 합니다.
  • 그러한 부가적인 기능으로 우리의 로컬 소스도 헤로쿠 서버에 보내면 자동으로 빌드되고 관리가 될 수 있다고 생각하면서 다음 과정으로 진행해보겠습니다. 

 

(1) 로컬 소스 정리

[콘솔창에서]

$ 프로젝트 위치로 이동 

 

//git 연결해제, 초기화

$ git init 

 

// 로컬 소스 저장소에 추가

$ git add .

 

// 로컬 소스 저장소에 저장

$ git commit -m "first commit"

  • 위 과정까지만 진행하면 로컬 git 환경이 일단 셋팅이 완료된 상태입니다.

(2) 서버 배포 (헤로쿠 Git을 통한)

기본 배포 방법을 설명하고 있는 헤로쿠 사이트

 

  • 헤로쿠 사이트에 들어가보면 위와 같이 사이트에서 배포 방법을 안내하고 있지만, 우리는 이미 로컬에 소스가 있기때문에 clone 이라는 소스 다운로드 명령어는 필요가 없습니다.
  • 더욱이 샘플 소스로 로컬에서 정상적으로 구동을 확인했기때문에 우리의 로컬 소스를 서버로 강제 첫 덮어쓰기 배포를 할 예정입니다. 

 

  • 다음 과정을 콘솔에서 진행합니다.

$ heroku login

//heroku git:remote -a <앱이름> (저같은 경우는 아래와 같이 합니다)

heroku git:remote -a sentilab-heroku

 

//아래 명령어를 하면 기존의 서버 소스를 무시하고 로컬의 소스를 강제로 서버로 덮어써서 첫 배포를 하게 됩니다.

//첫 정식 배포이므로 강제 덮어쓰기를 하지만, 앞으로는 아래에서 -f 명령어(강제 덮어쓰기) 명령어는 필요 없을 것입니다. 

$ git push -f heroku master 

 

위와 같이 빌드, 배포 성공이라는 메세지가 나와야 완료가 된 상태입니다.

 

(3) API 테스트

  • 포스트맨 프로그램을 통해 이제 실제 서버URL을 바꿔서 API 테스트를 진행합니다.

로컬에서 테스트했던 것과 동일하게 잘 연결되고 잘 값을 가져옵니다~

728x90