개인 개발 프로젝트/AI 숫자 판별 앱

[AI 숫자 판별 앱] 4. API Heroku 배포 및 테스트

종범2 2019. 12. 29. 16:51

제작한 API를 웹 어플리케이션에서 사용하기 위해서는 서버에 배포를 해야 한다. 이를 위해 Heroku를 이용한다. Heroku는 제작한 어플리케이션을 배포하는 서버를 제공하는 서비스다. 이를 위해 Heroku를 접속한다. 로그인 후 대시보드를 확인하면 다음과 같은 화면이 나온다.

 

여기서 New 버튼을 눌러 새로운 앱을 생성한다. 앱을 생성하면 다음과 같이 이름이 뜨고 클릭하여 상세 화면으로 접속한다. 상세 화면에서는 Deploy 버튼을 클릭하여 배포 방법을 확인한다.

 

1. GitHub repository를 연결한다.

 

2. GitHub repository에 push하면 자동으로 빌드 및 배포가 되도록 설정한다.

 

3. Procfile 파일 작성

같은 경로에 Profile이라는 파일을 생성하고 다음과 같이 작성한다.

 

Procfile

web: gunicorn app:app

확장자는 없다. 앱을 시작할 때 실행할 명령어를 작성하는 파일이다.

 

4. requirements.txt 파일 작성

역시 같은 경로에 requirements.txt라는 파일을 생성하고 다음과 같이 작성한다.

 

requirements.txt

Click==7.0
Flask==1.1.1
Flask-Cors==3.0.8
gunicorn==20.0.4
itsdangerous==1.1.0
Jinja2==2.10.3
MarkupSafe==1.1.1
Werkzeug==0.16.0
numpy==1.16.5
glob2==0.7
pickleshare==0.7.5
imageio==2.6.0
imagesize==1.1.0

파일에는 앱의 dependency를 명시한다. 어떤 파일을 명시해야 할지 모르는 경우가 있다면 다음과 같이 명령어를 실행하여 관련된 패키지를 모두 확인하여 입력한다. 단 아나콘다를 설치한 경우 굉장히 많은 패키지가 존재하기 때문에 모두 입력한다면 배포 시 시간이 엄청 오래 걸리게 된다. 되도록이면 앱과 관련된 dependency를 입력한다.

$ pip list

 

5. git에 푸시

마지막으로 명령어를 입력하여 git repository에 작성한 코드를 저장하도록 한다.

$ git add .
$ git commit -am "make it better"
$ git push origin master

 

6. 확인

Heroku는 git에 새로운 push가 발생하면 자동으로 앱을 배포한다. 이를 heroku에서 확인한다.

 

7. Open app 버튼을 클릭하여 결과를 확인한다. 다음과 같은 경로로 새창이 열리고 결과는 다음과 같다.

https://jb-mnist-server.herokuapp.com/

 

이전과 같은 방법으로 Postman에서 API가 잘 작동하는지 확인한다.

 

성공적으로 배포가 됨을 확인한다. 다음으로는 화면을 설명하겠다.

 

다음 글 바로가기

[AI 숫자 판별 앱] 5. React 앱 생성 및 설정