어제 글을 쓰다보니까 진짜로 서버 배포 해봐야겠다 싶어서 온갖 사이트를 찾아다닌 결과...
cloudType에서 무료로 가능하다길래 몇번의 실패 끝에 성공함!!
그런데 무료 버전은 하루에 1번 중지될 수 있는데다 임시 디스크라서 DB가 초기화 될 수 있는 것 같음... 그래서 영구적으로는 의미가 없긴 한데 일단 한번 배포해서 핸드폰에서도 들어가지니까 신기하다
시행착오가 많았어서 안 까먹게 정리함
엄청 도움이 된 참고 블로그 ↓
[MariaDB] MariaDB 클라우드타입에 배포하고 sequelize와 연결하기
Next.js + express + mariadb 를 이용한 블로그 프로젝트를 완성하여 mariadb를 클라우드타입에 배포해볼려고한다. 원래는 heroku에 배포할려고 했다가 단계적으로 프리티어 서비스를 종료한다고 해서.. 무
velog.io
cloudtype을 이용해 스프링 부트 + mariaDB 서버를 무료로 배포하기
아마존 프리티어가 끝나가면서 학생인 저는 무료로 배포할 수 있던 사이트를 찾던 중 클라우드타입이라는 서비스를 찾았습니다. https://cloudtype.io/ 모두의 플랫폼팀, 클라우드타입 클라우드타입
allinfor.tistory.com
01. 깃허브 올리기
일단 제일 먼저 깃허브 레포지토리 만들어서 파일 만들었던 거 올려야됨(여기서부터 원래는 파일 끌어다 올리기 했지만 진짜로 commit push 해보느라 헷갈렸음... 하여튼 그렇게 인텔리제이에서 깃허브 연동하고 push까지 하면 올리기 완료!
그런데 중요한 점은...
인텔리제이에서 코드 짤 때는 application.properties에 그냥 내 컴퓨터 로컬 DB로 하니까 이름/비밀번호 다 입력했었는데 깃허브 올릴 때는 그러면 안된다고 한다...........(털릴 수 있음)
그래서 올린 다음에 깃허브에서 파일 수정 들어가서 아래처럼 수정했다.

02. MariaDB 연결
난 처음에 DB는 그냥 내 로컬 DB로 쓰면 안되나 했는데 그건 아직 자세히 모르겠음... 아무튼 cloudType에서 DB까지 생성하고 연결시키는 방법을 봐서 그대로 따라했다.
먼저 메인 화면에서 템플릿으로 시작하기로 들어간다. -> https://cloudtype.io/create

MariaDB 검색하고 (maria.. 소문자로 하면 안나옴) 배포하기 클릭

Root Password 입력 (서비스 이름 등은 일단 그대로 했음)

더 많은 옵션 클릭해서 3개 지정 (DatabaseName은 프로젝트명으로 했고 Username은 root(다른 이름으로 했다가 뭔가 오류 났어서 혹시 몰라서 그냥 root로 함...), Password는 아까랑 똑같이 했음 / config 등은 안써도 ㄱㅊ)

그리고 난 무료 버전 쓸 거라 프리티어 리소스로 선택했다. (프리티어도 카드 등록은 해야되지만 본인이 나중에 직접 구독을 선택하지 않는 이상 자동으로 결제되지는 않는다고 봤음)
카드 등록까지 됐으면 배포하기 선택

그러면 아래처럼 나오는데 주소복사를 클릭하면 Hostname:port 형식으로 복사가 된다.

그리고 프로젝트 화면에서 설정으로 들어가면 방화벽 설정 있는데 이거 TCP 외부 접속 허용으로 바꿔야 된다.

이제 컴퓨터에 설치되어 있는 MySQL Workbench로 들어가서 방금 만든거를 연결시켜줘야 한다.
+를 눌러서 아래 항목을 작성한다.
1. Connection Name: 그냥 맘대로
2. Hostname: 아까 복사한 거에서 ":port"부분 뺀 앞에 부분만
3. Port: 복사한 거에서 port 부분
4. Username: 만들었던 이름(root)
5. Password: Store in Vault... 눌러서 만들었던 비밀번호 입력
-> 5가지 입력하고 ok 선택(사진은 편집화면이라 안보이는거임)

연결된 거 눌러서 왼쪽에 아까 만든 DB 이름이 보인다면 잘 된 것이다.
03. Spring Boot 배포
이제 진짜 프로젝트 배포 시작...
프로젝트 화면에서 아래 + 눌러서 추가할 수 있다(현재 추가 완료된 모습)

Spring Boot로 선택한 다음에

깃허브를 연동시키면 프로젝트 저장소를 선택할 수 있다.

자바 버전 반드시 확인하기!! 기본은 8로 되어 있어서 그냥 넘기면 오류난다...
헷갈리면 build.gradle가서 확인하자...


그리고 제일 중요한 DB 연동
환경 변수로 다 등록해줘야 한다.
깃허브에서 수정했던 application.properties의 변수들을 key로 하고, value들은 아까 설정했던 것으로 하면된다.
순서대로
1. Hostname(전에 복사했던 것중에 port 부분 뺀 거)
2. port(복사했던 것 중 port 부분)
3. 설정했던 데베 이름
4. root로 적어줬던 거
5. 비밀번호 설정했던 거

그리고 port는 8080으로 두고 나머지 설정들도 딱히 안 건드렸다.
마지막으로 배포하기 선택하면 끝!!
그럼 이제 프로젝트의 로그 클릭하면 빌드 로그 쭉 나오다가 complete.로 끝나고(아니면 오류난거임,,,)

실행로그로 넘어가서 인텔리제이에서 실행시켰을 때 나타나는 것처럼 출력된다.

이 부분에서 계속 멈춰서 사이트로 접속해봐도 503 오류가 떴었는데,,,, 데이터베이스 연동을 제대로 하니까 정상적으로 실행이 완료되었다!!
내 코드는 실행하면 바로 100개의 날짜 데이터를 초기화 시키고 완료 메시지를 출력하도록 작성했기 때문에 아래처럼 나타난 걸 확인할 수 있다.

04. 배포 완료
위 과정이 모두 완료되면, 스프링 부트 배포한 부분의 접속하기를 눌렀을 때 해당 링크로 이동한다.

(여기서 503 오류나면 아까 말한 것처럼 뭔가 잘못한 거임...)
아무튼 정상적으로 실행 완료!!!

사실 여기서 데이터베이스는 처음 초기화되고 만든거라 그전에 로컬 DB에서 저장했던 내용들은 다 사라져서... 다시 체크박스 설정한거임(ㅋㅋ)
컴퓨터로 보면 로컬일 때랑 별 차이가 없어 보여서 핸드폰으로 들어가봄



앗싸
그런데 맨처음에 말했던 것처럼... 무료 버전은 중간에 날라가니까... 아직까진 앱처럼 쓰진 못해서 아쉽네요
나중에 진짜로 AWS라던가 그런 배포를 찾아봐야겠음
그래도 핸드폰에서도 어느정도는 할 수 있다는 점에서 기분내기 좋음
이제 저번 글 내용처럼 여기에 기능 추가하거나 그래야겠다
오늘도 끝~~~~~~~~~~
'🌟Project > Challenge - 100일 챌린지 웹' 카테고리의 다른 글
| [토이프로젝트 개발일지 04] 일기 생성 기능 추가 / 메인 페이지 보완 (4) | 2025.01.21 |
|---|---|
| [토이프로젝트 개발일지 03] 산책 경로 저장 기능 추가 (카카오 지도 api) (2) | 2025.01.16 |
| [토이프로젝트 개발일지 01] 100일 챌린지 웹 (0) | 2025.01.11 |