토이프로젝트 목표는 front 소스는 react, back 소스는 spring boot 로 작성해보는 것이다.
본격적인 개발 전에 빌드하고 배포하는 것 먼저 테스트 해보려고 한다.
react 프로젝트 배포는 https://doinge-coding.tistory.com/77
위 포스팅을 참고하길 바란다.
이번 포스팅에서는 spring boot로 만든 rest api 서버를 heroku라는 무료서버에 배포해보도록 하겠다.
목차
1. spring boot 프로젝트 생성
2. heroku 회원가입
3. heroku 배포
4. heroku 꿀팁
1. spring boot 프로젝트 생성
테스트 목적이므로 간단한 api 한벌만 만들어서 진행했다. 소스는 아래 깃허브 주소를 참고 바란다.
https://github.com/wmf34a/lulugram-back
heruku에 spring 앱을 배포하려면 할게 좀 있는데
먼저 Procfile를 만들어 준다. ( project 루트 디렉토리에 확장자 없이 생성 )
web: java -Dserver.port=$PORT $JAVA_OPTS -jar [실행될 jar파일 경로]
위 처럼 파일에 작성해준다. 저는 target 이란 폴더를 만들어 빌드한 파일을 넣어 주었다.
이런식으로?? ㅋㅋ
그 다음 Port 설정도 해주었다. Heroku는 실행 할 때마다 port를 자동으로 지정해주기 때문에 고정시키기 위해서
application.yml ( application.properties 파일을 rename 해주었다. ) 파일에
요런식으로 80포트로 작성했다.
참참 할게 하나 더 있다. heroku는 기본적으로 java8을 지원하기때문에 파일 하나를 더 만들어서 세팅해주자
( 필자는 java 11로 진행했음 )
project 루트 경로에 system.properties 을 생성한 후 아래와 같이 입력
( 참고 블로그 https://pythonq.com/so/java/1495517 )
java.runtime.version=11
자 이제 heroku 회원가입 및 배포를 진행해보자.
2. heroku 회원가입
위 홈페이지 접속 후 회원가입을 해준다.
회원가입후 대시보드에서 Create New app을 눌러준다.
App name 에다가 서비스할 프로젝트 이름을 명명해준다. ( 고유한 이름을 써줘야 함 )
그 다음은 heroku에서 하라는대로 배포하면 된다.
3. heroku 배포
그 전에 heroku 부터 설치해주도록 하자 ( https://devcenter.heroku.com/articles/heroku-cli )
하지만 난 우분투에서 진행했기 때문에
$ heroku login -i
를 통해 로그인 해줬다. 콘솔창에 대략 이런식으로 나오면 이메일 비번치고 로그인 하면 된다.
git 저장소로 사용할 폴더로 이동애서 repository를 생성한다. 생성한 spring boot 프로젝트를 .git 폴더를 생성한 곳으로 복사한다.
heroku git:clone -a lulugram
변경 사항을 스테이지에 올린 후 커밋 메시지를 포함 한 후 커밋한다.
git add .
git commit -am " first commit "
push 해주면 끝!
git push heroku master
터미널에서 배포로그를 볼 수 있고 웹화면에서도 볼 수 있다.
https://lulugram.herokuapp.com/api/hello
간단하게 작성한 rest api 결과다. 잘나온다.
4. heroku 꿀팁
4-1 heroku local time 변경하기
UTC로 설정되어 있기 때문에 KST로 변경해 준다. ( 대괄호는 뺴고 앱이름만 쓰자 )
heroku config:add TZ="Asia/Seoul" --app [ APPNAME ]
4-2 heroku sleep 해제
heroku는 30분간 접속이 없으면 휴면 모드로 전환되어 최초 접속이 다소 느릴 수 있다.
그 부분을 해결해 보자.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=writer0713&logNo=221507833658
위 블로그에 있는 2가지 방법중 필자는 리눅스 서버에서 크론탭을 날려주는 것으로 적용했다.
4-3 git hub action 추가
아래 블로그에 잘 나와 있다.
https://malwareanalysis.tistory.com/131
4-4 heroku cli 배포 방식이 아닌 github 와 바로 연동해서 배포하기
이번 포스팅은 여기까지 하고 다음 포스팅에선 heroku에 DB를 생성해 보도록 하겠다.
'프로그램이야기 > 토이프로젝트' 카테고리의 다른 글
netlify에서 react소스 배포해보기 + 커스텀 도메인 연결 (0) | 2021.07.23 |
---|---|
토이 프로젝트 [1] - 도메인 구입하기 (0) | 2021.07.22 |
토이 프로젝트 시작!! (0) | 2021.07.22 |
댓글