티스토리 뷰

최근에 spring boot 를 가지고 웹사이트를 개발했는데, 로컬서버로만 가지고 있자니 너무 불편해서 거래는 거의 없을테니, 공짜 클라우드 서버를 사용해보고자 열심히 구글링을 해봤다. heroku 라는 사이트를 알게 되었고, 무료로 시작할 수 있다는 장점이 있어서 한번 시도를 해보고, 장단점을 알아보고자 한다.

우선 heroku 에 가입을 한다. https://www.heroku.com

 

 

회원가입을 했으니, https://devcenter.heroku.com 에가서 따라하기만 하면 된다. 보면 알겠지만 왠만한 언어는 다 매뉴얼이 존재하다보니, 본인이 구축하고자 하는 어플리케이션을 쉽게 설정 및 배포할 수 있다. 

 

1. Introduction

그 중, java 로 진행해본다. https://devcenter.heroku.com/articles/getting-started-with-java 에 가보면 대략 아래 그림이 나올텐데, 빨간 4개 스탭정도하면 어플리케이션 배포가 거의 완료된다. 

 

 

사이트에서 열거한 필요한 준비물은 아래와 같다. 회원가입, java8, maven3, Postgres 이라고는 되있는데, 여기서 제공하는 샘플 프로젝트에서 Postgres DB를 사용하는 듯한데.. 난 내 프로젝트를 기반으로 할거여서 굳이 Postgres 까지는 설치하지 않았다.

 

2. Set Up

Heroku CLI 를 설치해야 한다. 근데 이게 git 이 미리 설치되어있어야 한다고 되있다. git을 잘모르는 사람이면, 사실 heroku 공부할 시간에 git 을 먼저 공부하시는게 좋다. 그리고 아래 그림 보면 os 에 맞춰서 heroku cli installer 를 다운받아 설치한다. 해당 CLI 가 처음에 프로젝트 create 하고, log 확인하는 용도라 보면 된다. 물론 고급기능이 있기야 하겠지만, 현재 이런 설정하는 단계에선 거의 사용할 명령어가 거의 없다. 그리고 난 heroku git 기능을 쓸게 아니고, github 사이트와 소스 연동을 할 거라서 거의 log 보는 용도로만 우선 사용중이다. 

The Heroku CLI requires Git, the popular version control system. If you don’t already have Git installed, complete the following before proceeding:

 

3.  Prepare the App

우선 매뉴얼에서는 heroku 에서 제공하는 샘플 소스를 받아오라고 되어 있다. 아래 명령어로 소스를 받고 해당 폴더로 이동한다. 

> git clone https://github.com/heroku/java-getting-started
> cd java-getting-started

 

소스중에 보면 Procfile 이 있을텐데, Heroku 어플리케이션을 시작(기동)하도록 하는 명령어를 정의하는 plaintext 형식의 파일이다. 본인에 맞는 jar 파일명을 맞춰서 작성하면 된다. 

web: java -jar target/java-getting-started-1.0.jar
 

git 레파지토리 서버별(prod/staging/testing 등) 설정파일 셋팅 방법. Git Attributes Merge 전략

저번에 heroku 에서 java spring boot 프로젝트를 올려서 서버를 하나 마련했는데, 운영환경과 동일한 테스트용도로 쓸 staging 서버를 하나 더 heroku 에 추가하려 했다. heroku는 Procfile 파일에 서버 실행

emflant.tistory.com

4. Declare App Dependencies

디펜던시에 대한 설명이 주저리주저리 있는데, spring boot 프로젝트라면 이미 pom.xml 파일이 있을꺼라, 별다른 추가없이도 될 듯하다. 

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

 

반응형

그리고, system.properties 파일에 java 버전을 기입이 가능한데, 자세한 내용은 아래 페이지에 확인하시면 된다. 

 

Heroku Java Support | Heroku Dev Center

Last updated January 24, 2022 Heroku is capable of running Java applications across a variety of Java implementations and includes support for framework-specific workflows. This document describes the general behavior of Heroku as it relates to the recogni

devcenter.heroku.com

 

5. Deploy the App

드디어 Heroku 에 app 을 만드는 작업을 해본다. 간단하다. heroku create 만 타이핑하면 된다. 보시다시피 app 이름을 명시하지 않았기 때문에, 랜덤으로 이름이 생성된다. 

> heroku create
Creating app... done, calm-beyond-57162
https://calm-beyond-57162.herokuapp.com/ | https://git.heroku.com/calm-beyond-57162.git

 

그 다음이.. git 명령어를 실행하라고 나와있긴한데, 나는 이렇게 진행하질 않았다. github 를 사용 하는 방안을 진행했고, 그건 따로 연결했다. 우선 본인의 heroku dashboard 로 간다. 보통은 Heroku git 이 선택되있을텐데, 여기서 github 를 선택해서 기존 본인의 프로젝트와 연결할 수 있다. 

 

그리고 조금 더 밑으로 스크롤을 내리면, 배포하는 방식이 auto 로 할지 manual 로 할지 정할 수 있다. 소스가 버전업할때마다 배포되는건 내가 원하는게 아니라서 필요시에 여기와서 Deploy Batch 를 수동으로 눌러주면 된다. 

 

셋팅이 사실상 끝났다. heroku 는 Free 로 이용이 가능하다는 강력한 장점이 있다. 공짜로 이렇게 서버를 사용할 수 있다는데 너무 큰 고마움이 있긴한데, 30분 동안 접속이 없으면 서비스가 내려가서 다시 접속하려면 꽤 오랫동안 기다려야 한다. 좀 아쉬운 부분이다. 

여기서 설명을 생략한 부분이 몇개 있긴한데, github private repository 만들어 연결, mongodb atlas 연결, Procfile 설정파일 작성, heroku log tail 등이 있긴한데, 다 매뉴얼에 있기도 하고, 본인 프로젝트에 맞추어서 하면 되는 부분이니, 구글링하면서 잘 찾아 진행하면 될거 같다.

그래서 heroku 로 만들고 있는 사이트는 아래이다. 아이디 : user / 비밀번호 : password 로 로긴이 가능하다.

 

메인페이지

반갑습니다! 아이들은 자신의 주변 세계를 끊임없이 탐색하며 성장 발달해가는 존재입니다. 이 시기 교육은 다양한 표현 방법 및 사물을 다르게 바라볼 수 있는 힘을 키워주는 중요한 시기이며,

young-wildwood-39551.herokuapp.com

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함