포트폴리오를 준비하다가 리액트는 vel? 배포를 쉽게 할 수 있는데 스프링부트는 무료배포가 없다고 알고있다가 render를 알게되서 적용해보기로 했다!!!!
그런데 내가 작업한 뷰가 jsp로 작업을 했는데
"Spring Boot에서 JSP를 쓸 경우, 내장 Tomcat의 리소스 처리 방식이 제한되어서 jar보다 war로 패키징하는 게 일반적"
Render는 “JAR 실행형” 서버처럼 작동하는데,
Tomcat 같은 서버 컨테이너를 직접 배포하지는 못해요.
그래서 war 파일을 빌드해서도 Render에서 직접 배포는 불가능
(단독 Tomcat 서버를 Render가 띄워주지 않음)
그래서 Docker로 감싸야 함
[Render 서버]
⤷ [Docker 컨테이너]
⤷ Tomcat 설치됨
⤷ 내 war 배포됨 (/usr/local/tomcat/webapps/ROOT.war)
Render의 “native build”는 jar 실행만 지원하기 때문에,
JSP 프로젝트는 반드시 Dockerfile로 수동 배포해야 해요.
이부분을 모르고 있다가 검색하고 지피티한테 물어보면서 알게됨
로컬에서는 가능해서 처음엔 너무 당황했지만..!
배포하면서 많이배웠음 ㅎㅎ
https://render.com
접속 → GitHub 계정으로 로그인
https://render.com접속 → GitHub 계정으로 회원가입후
Get started free 클릭

"New +" → "Web Service" 선택

Connect GitHub



👉 연결 후 Blog_JPA 레포지토리 선택

GitHub 연동 허용 → 배포할 리포지토리 선택
Render가 자동으로 build.gradle 또는 pom.xml을 감지함 (Maven/Gradle 프로젝트 둘 다 가능)

Name my-spring-app 서비스 이름
Region Singapore or Oregon 가까운 리전 선택
Branch main 배포할 브랜치
Build Command ./mvnw clean package -DskipTests
⚠️ Maven일 때
Start Command java -jar target/*.jar 실행 명령어
Environment Docker or Native 대부분은 Native로 가능
⚠️ Gradle일 경우
Build Command → ./gradlew build -x test
Start Command → java -jar build/libs/*.jar
Spring Boot 기본 포트는 8080인데, Render에서는 환경 변수 PORT 를 사용해야 해.
application.properties에 아래 한 줄 추가
server.port=${PORT:8080}
Render의 "Environment" 탭에서 환경변수를 추가할 수 있어.
예를 들어:
Key Value
SPRING_PROFILES_ACTIVE prod
DB_URL jdbc:mysql://...
DB_USERNAME root
DB_PASSWORD mypassword
application.properties
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
GitHub에 코드 푸시하면 Render가 자동으로 다시 배포해 줘.
Logs 탭에서 배포 진행 상황과 오류 확인 가능.

만약에 실패했다면 아래 이미지처럼 로그에 내용이 나와서 왜 안되는지 체크하면된다.

Render가 배포되면 https://.onrender.com 주소가 생겨.
이 URL로 접속해서 앱이 잘 뜨는지 확인!
도메인이 https://blog-jpa.onrender.com부분으로 배포가 된게 확인되었다.!