본문 바로가기

Programming/Golang

golang gin 웹앱 heroku에 배포하기

반응형

오늘은 gin framework으로 만든 앱을 heroku에 배포하기까지 실행해보겠습니다. python 앱의 경우 pythonanywhere라는 무료 가능한 사이트가 있어서 좋았는데, 비슷한 걸 찾다보니 heroku에서 무료 배포가 가능했습니다. Heroku는 git과 연동되어 운용되니 Git도 설치가 필요합니다.

 

사전 준비

1. Git 설치

2. Heroku 설치

3. Gin 설치

 

방법

1. Git Repository 생성

Github에 가입하였다면, Repository 관리 페이지로 가서 새로운 Repository를 생성해줍니다. 별다른 설정사항 손댈 필요 없이 적당한 이름을 부여하고, Public으로 생성합니다.

 

 

2. 생성한 repository 로컬 pc에 다운로드

pc에 생성하고 github으로 올리는 방법도 있겠지만, 아직 git/github에 익숙하지 않은 필자는 github에 생성 후 다운받아서 작업합니다.

go get -u github.com/seaofcalm/gin-test

%GOPATH%\src\github.com\ 경로 아래에 본인의 github 아이디와 생성한 repository 이름의 조합으로 repository가 다운받아지게 됩니다.

 

3. 다운받은 경로에 Gin 앱 구성

해당 경로로 이동하여 예제 파일을 생성합니다.

 

 

<예제 소스>

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

첫 페이지에서 결과를 확인할 수 있도록 gin 웹사이트에서 제공하는 예제 소스를 약간...정말 약간 수정하였습니다.("/pong" -> "/"으로 수정)

 

4. 디펜던시 파일 생성

디펜던시 파일을 생성해 주어야 Heroku에서 앱으로 인식을 합니다. govendor나 godep 등 여러 프로그램들이 있지만, 기본 설치되어있는 go module 프로그램으로 충분합니다. (사실 위 두 프로그램으로 시도해 보다가 실패함..)

<1> go mod init        //go.mod파일 생성

<2> go build

<3> go mod vendor   //vendor폴더에 디펜던시 파일 다운받음

 

 

 

5. Git에 추가

<1> git init                             // Git 시작

<2> git add .                          // 새 파일들을 넣거나 변경 파일들을 git에 인식시킴

<3> git commit -m "아무말이나" // git 커밋

<4> git push origin master        // git 푸쉬. 실질적인 파일 복사. heroku에만 올리려면 굳이 수행하지 않아도 됨.

 

6. Heroku에 추가

<1> heroku login                      //헤로쿠 로그인

<2> heroku create gin-retest       // "gin-retest" heroku git 생성 (앱 이름 중복으로 다른 이름 부여함)

<3> heroku git:remote -a gin-retest // 원격모드 연결

<4> git push heroku master        //heroku로 배포

 

7. 결과 확인

그럼 지금까지 수행한 결과를 확인해 보겠습니다.

우선 Heroku 사이트 로그인 후 우측 상단의 Dashboard 화면으로 이동해보면, 방금 만든 App(gin-retest)이 보입니다.

 

 

해당 앱을 클릭해서 들어간 화면에서 우측 상단의 Open app을 클릭해줍니다.

 

 

아래와 같이 코드로 작성한 앱이 잘 실행되는지 확인합니다.

 

 

이상 golang gin 웹프레임워크 앱을 heroku에 배포하는 방법에 대해 알아보았습니다.

그럼 이만~~

 

(ps) git/heroku/gin 등의 활용과 관련하여 정확히 모르는 상태로 앱을 작성하다보니 오류가 있을 수 있습니다. 오류 알려주세요. 정정 요청 댓글 환영합니다.

반응형