배포

[Railway] Railway로 스프링 프로젝트 무료 배포하기 (MySQL 연동까지)

프론트 개발자 김현중 2025. 1. 13. 21:23
728x90

필자는 웹서비스 개발을 공부하다가 Railway.app에 프로젝트를 배포할 수 있는 기회가 주어졌다.

혼자서 공식문서와 구글링을 하며 이곳저곳 알아보러 다닌 부분이 많이 힘들었어서 배포 과정을 정리하고자 한다.


1. 회원가입 하기

대시보드

회원가입을 하게 되었을 때, 위 사진과 같이 대시보드가 열릴 것이다.

첫 가입을 하게 된 경우 $5의 Free Trial Token을 얻게 되는데 이 부분이 무료 배포의 핵심이다!

 

2. 대시보드 밑에 생성한 프로젝트 들어가기

 

프로젝트를 들어가 보면 내가 생성한 두개의 Deployment 박스들이 보일 것이다.

오른쪽 위에 보이는 Create를 눌러서 생성한 것인데 필자는 먼저 Railway에서 MySQL을 설정하는 방법부터 설명하려 한다.


2-1. Railway에서 MySQL 설정하기

Railway에서 생성한 MySQL의 connection 정보를 활용하여 MySQL Workbench에서 직접 연결하였다.

먼저 생성한 mySQL을 클릭하고 Variables 탭을 클릭하면 아래와 같이 뜰것이다.

 

그럼 이제 위에 눈 모양을 클릭하게 되면 각각의 자세한 값들을 볼 수가 있고 복사가 가능한데

  • MYSQLHOST
  • MYSQLPORT
  • MYSQLUSER
  • MYSQLPASSWORD
  • MYSQLDATABASE

위 정보들을 이용하여 MySQL Workbench에 들어가서 + 버튼을 누르면 (디비 관련된 원하는 서비스를 이용해도 좋다!!)

 

위 사진과 같이 뜨게 될텐데 Railway에서 복사한 값에 대응하는 부분에 값을 넣어주고 OK를 누르면 MySQL 디비에 연결이 성공하게 된다.

*사실 Railway 내의 MySQL Data 탭에서 테이블을 직접 GUI로 추가할 수는 있지만 데이터 타입들의 지정에 제한이 있고 Query에 비해서는 많은 컨트롤을 할 수 없다는 점에서 필자는 디비에 직접 연결하여 쿼리문으로 테이블을 추가하고자 했다*

 

 

연결 성공 후 필자는 위와 같이 테이블 관련된 쿼리문을 이용하여 디비를 관리했다!


2-2. 스프링 프로젝트 배포하기

스프링 프로젝트 자체를 배포하는 부분은 정말 간단하다.

1. GitHub 레포지토리 준비 (Private으로 설정하여도 무관하다.)

  • 프로젝트의 모든 파일을 GitHub에 push
  • pom.xml, src 폴더, Dockerfile 등이 모두 포함되어야 함
  • Maven 까지 아래 명령어와 같이 빌드 후에 push 하면 된다.
mvn clean package

 

2. Railway에서 배포 설정

그 후에 프로젝트를 배포하기 위한 설정을 Railway.app에서 해주면 되는데

  1. Project 클릭
  2. Deploy from GitHub repo 선택
  3. 해당 레포지토리 선택

위 과정을 따르면 되는데 정말 중요한 부분은 이것이다!

Settings 탭에서 도메인 설정을 꼭꼭꼭 해주어야한다!

 

필자도 위 단계에서 주소를 확인할 수 없어 막혔는데

Settings 탭에서(Networking) 도메인 설정 -> Generate/Create Domain 클릭 -> 자동 생성된 도메인 확인하여 웹 주소를 열 수 있다.

 

또 중요한 부분은 바로 이전에 생성한 MySQL과 연결을 해야한다!

이 부분 또한 (필자 기준 applicationContext.xml에서) bean 태그로 감싸져 있는 MySQL 데이터베이스에 연결하기 위한 Spring의 DriverManagerDataSource 빈 설정에 username, password를 이전에 variables 탭에서 얻었던 정보로 value 값을 정의해야하고,

url은 jdbc:mysql://mysql.railway.internal:3306/railway 로 설정하면 된다!

 

이렇게 한 후에 push를 하게 되면 자동으로 마지막 커밋을 기준으로 배포가 성공할 것이다!!


3. 배포 성공 여부 확인

 

이후엔 생성한 GitHub repo 박스를 선택하면 위 사진처럼 배포된 주소를 확인할 수 있을것이다!

원하는 대로 화면이 나오면 정말 좋겠지만

 

필자기준 에러를 정리해보자면

404에러가 뜨면 경로에 문제가 많았고,

500에러가 떴을 때에는 디비, 쿼리문에 문제가 많았다!

 

 👍 참고하면 좋을것 같다! 👍

728x90