하... 역시 구글에는 천사같은 분들이 너무너무 많아서 나같은 초짜도 헤로쿠 배포를 해볼 수 있었다....
일단 나는 아래의 블로그를 보고 시도해보았는데 글쓴이분은 mac이셔서 윈도우와는 좀 다른 부분이 있었고
중간중간에 나는 오류들이 있었기 때문에 그 해결과정까지 적어보도록 하겠다. 💁♀️
아 그리고 제발 한글 지원 필요하신 분들은 clearDB말고 jawsDB 쓰세요......
clearDB 설정 다 하고 배포했는데 한글 지원을 안하더라고요.... 결국 jawsDB로 다시 함🤦♀️🤷♀️🤦♀️
👇 도움을 받은 블로그
https://m.blog.naver.com/sgs03091/221633332556
[Heroku] JAVA Maven Webapp + MySQL 헤로쿠 배포하기 1탄
열심히 web project 만든 것을 다른 사람들도 사용할 수 있게 하기 위해서는 배포(Deploy)를 해야합니다. ...
blog.naver.com
감사합니다..........🤗❤❤❤
일단 구글에 헤로쿠 배포 치면 헤로쿠 가입부터 create new app하는 방법까지는 많이 나와있으니 이 부분은 생략하도록 하겠다.
📌 헤로쿠 앱에서 mysql을 쓰기 위해서는 jawsDB MySQL (clearDB MySQL도 가능하지만 한글지원X) 을 사용해야 하니, 위의 블로그에서 소개한 대로 Resource에서 Add-ons으로 jawsDB MySQL를 찾아 추가해준다. (사용하기 위해서는 미리 해외에서도 사용이 가능한 카드를 등록해야한다. 무료버전을 사용하더라도 일단 카드를 등록해놓아야 사용할 수 있다.)
window에서 jawsDB Mysql 사용하기
Sequel Pro는 mac만 사용할 수 있는 것 같다..(아마도?)
그렇기 때문에 나는 편하게 사용할 수 있는 MySQL Workbench에서 새로 만든 DB에 접속을 해보았다.
mysql://유저네임:비밀번호@us-cdbr-east-04.cleardb.com/s29oj5odr85rij2o.cbetxkdyhwsb.us-east-1.rds.amazonaws.com:3306/myi7zo609gxul153
이런 형태의 DB URL을 받았다면 규칙에 맞게 connection창 빈칸에 넣어준다.
Hostname : 본인의 DB 호스트주소
Username : 유저네임
Password : 비밀번호
(password는 store in vault...를 누르면 입력할 수 있다.)
Connection Name은 그냥 지금 이 이름 뭐로 할 건지 적어주고 Default Schema는 안적어줘도 무방하다.
잘 되는지 Test Connection을 눌러보고 문제가 없으면 ok를 누른다.
난 RDS를 쓰다가 헤로쿠 DB로 접속하려고 하니 아주 느려 터져서 답답해죽는 줄 알았다.
그치만 유료와 무료의 차이기 때문에 불만을 가지지 않고 기다려 주도록 한다.
버벅이지만 그래도 잘 들어갔다면 여기서도 주의해야 할 사항이 있다.
일반적으로 우리는 어떤 DB를 다룰 때나 알아두어야 할 부분이 SYSTEM 스키마는 건드리지 않는 것이다.
그렇기 때문에 새로 DB를 만들게 되면 우리가 사용할 스키마를 또 새로 만들어서 거기에 테이블을 만들어 두게 된다.
그러나 헤로쿠는 디폴트로 준비되어있는 스키마에 테이블을 추가하는 방식으로 진행한다.
새로 스키마를 추가하려고 하면 에러가 난다! 📌📌📌
난 이렇게 Tables could not be fetched가 뜨긴 하는데 배포에 문제가 되진 않았다.
무시하고 테스트를 위해 일단 user테이블만 새로 추가해주었다.
그리고 sts(이클립스)에서 root-context.xml의 dataSource 내부 코드를 변경해준다.
난 기존에 RDS를 사용했기 때문에 처음에 엔드포인트와 내가 입력한 유저네임, 비밀번호가 적혀있었는데 위에서의 헤로쿠 DB URL을 참고하여 내용을 다시 변경해준다.
(주의해야 할 부분은 호스트 네임을 커넥션 때와는 다르게 호스트네임:3306/URL주소 이어서 붙이기 라는 점!!)
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://s29oj5odr85rij2o.cbetxkdyhwsb.us-east-1.rds.amazonaws.com:3306/myi7zo609gxul153?reconnect=true"></property>
<property name="username" value="유저네임"></property>
<property name="password" value="패스워드"></property>
</bean>
서버를 실행해보고 헤로쿠 DB의 데이터가 잘 들어가는지 확인해본다!
>>> 여기서부터도 쭉 블로그를 따라해보기 >>>
난 헤로쿠 배포를 위해 git 레파지토리를 새로 만들었다.
👇 깃 업로드 명령어
/* 올리고자 하는 디렉토리로 cd 이동*/
1. git init
2. git add .
3. git commit -m "커밋메시지"
4. git remote add origin 깃허브레포지토리url
5. git push origin master
/* 혹시나 무슨 LF인가 MF 에러가 난다면 아래의 명령어를 붙여넣은 뒤, 다시 git add . */
git config --global core.autocrlf true
쭉쭉 블로그의 내용대로 잘 따라와서 deploy를 눌렀을 때 잘 되면... 운이 좋은거지만..
나는 여기서부터 에러를 만났기 때문에,,,
에러1. 빌드팩 결정 에러 🤯🤯🤯
-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
! No default language could be detected for this app.
HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
See https://devcenter.heroku.com/articles/buildpacks
! Push failed
헤로쿠가 자동으로 해당 프로젝트가 어떤 언어를 사용하는지 감지하지 못했을 때 빌드팩 오류가 발생하는 것 같다.
헤로쿠 CLI에서는 여러 방법들이 나오지만 그 방법대로 하면 당연히 통하지 않기 때문에.. 그치만 알고나면 훨씬 쉽다.
먼저 Settings로 이동해서 아래로 스크롤을 쭉 내려주면
Buildpacks가 보인다. 여기서 Add buildpack을 눌러 명령어 없이 간편하게 빌드팩을 설정할 수 있다.
에러2. pom.xml 확인
-----> Building on the Heroku-20 stack
-----> Using buildpack: heroku/java
-----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/java.tgz
Could not find a pom.xml file! Please check that it exists and is committed to Git.
More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
! Push failed
나는 깃랩을 사용해서 팀원들과 협업 플젝을 진행했기 때문에 pom.xml을 .gitignore에 지정해놓은 상태였다. 그래서 깃에서 pom.xml을 인식하지 못해 다음과 같은 에러가 발생하였다.
pom.xml을 잘 넣어주었는지 확인해보자.
수 많은 build failed 끝에... 잘 deploy가 되었다면 왼쪽 config들이 설정되어 있을 것이다.
우측 상단에 있는 Open app을 눌러주면...
🤸♀️🤸♂️헤로쿠 배포 성공🤸♀️🤸♂️
https://hanium-ewsn.herokuapp.com/
Insert title here
취약점 조치 권고 취약점에 영향을 받는 설비에 대해 조치 권고를 발행할 수 있습니다.
hanium-ewsn.herokuapp.com
혹시나 둘러보고 싶은 분들은 아이디 admin / 비밀번호 admin으로 로그인하고 이용하시면 됩니당🙌
댓글