-
spring boot 배포하기Spring Boot 2021. 11. 10. 15:58반응형
gradle을 이용하면 bootjar를 실행하여 jar 파일을 만들 수 있다. 처음에는 배포를 heroku를 이용하여 했다.
예전에 heroku에 gradle을 배포하였다가 안됐었는데, 이번에는 jar 파일을 직접 배포하는 방식을 사용했다.
그러면서 저번에 gradle로 배포하지 못했던 이유를 알았는데, Procfile이 반드시 필요한 것이었음에도 불구하고 저번에는 작성하지 않았다. 그러므로 배포가 안되었던 것이다.
h2 데이터베이스를 이용하여 배포했는데, heroku는 30분이 지나면 휴면 상태로 돌아가 메모리가 초기화되어 작성했던 데이터들이 날아갔다. 그래서 mariadb를 사용하려 했으나 무료로라도 addon을 사용하려면 카드를 등록해야 했다. 그래서 mariadb의 url에 주목했다.
공유기를 사용한다고 가정했을 때, ipconfig를 통해 ipv4에서 사설 IP를 알아낼 수 있다. 처음에는
jdbc:mariadb://{사설IP}/board 로 시도해 봤지만, heroku에서 내 데이터베이스로 접근할 수 없었다. 이는 외부 IP로 접근해야 하기 때문이었다. 그러므로 네이버에서 내 아이피를 검색하여 내 공유기의 외부 IP를 알아내고, 공유기에서 포트포워딩을 설정하여 내 PC가 사용하는 사설 IP로 포워딩되게 하였다.
순서로 따지면 이런 식이었다.
heroku -> 외부 IP -> 공유기 포트포워딩 -> 사설 IP -> 내 PC
하지만 이 방식에는 치명적인 단점이 있는데, 내가 노트북을 닫아 놓으면 데이터베이스에 접근이 안되고, 애초에 heroku에서 url로 접근이 안된다. 그래서 addon이 있구나라는걸 깨달았고, 데이터베이스 또한 jar 파일처럼 계속 켜져 있어야 한다는 사실을 알았다.
반응형'Spring Boot' 카테고리의 다른 글
spring restcontroller (0) 2021.11.13 스프링 부트 command 객체 (0) 2021.09.14 스프링 부트 thymeleaf id 뷰에서 컨트롤러로 받아오기 (0) 2021.09.14 스프링 부트 controller 오류 해결 (0) 2021.09.14 스프링 부트 웹 계층 구조 (1) 2021.09.09