Skip to content

hot-fix: 자바 버전 충돌 crash 해결#46

Merged
choubung merged 5 commits intomasterfrom
dev
Nov 18, 2025
Merged

hot-fix: 자바 버전 충돌 crash 해결#46
choubung merged 5 commits intomasterfrom
dev

Conversation

@choubung
Copy link
Copy Markdown
Owner

@choubung choubung commented Nov 18, 2025

Summary by CodeRabbit

Chores

  • Java 런타임 버전이 17에서 21로 업데이트되었습니다.
  • CI/CD 파이프라인과 빌드 설정이 새로운 Java 버전을 지원하도록 갱신되었습니다.
  • Docker 기본 이미지가 새로운 Java 버전과 호환되도록 변경되었습니다.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Nov 18, 2025

개요

Java 버전을 17에서 21로 업그레이드합니다. CI/CD 워크플로우에서 JDK 21 설정 단계를 추가하고, Dockerfile의 기본 이미지를 업데이트하며, build.gradle의 Java 호환성을 버전 21로 변경합니다.

변경 사항

코호트 / 파일 요약
CI/CD 워크플로우 업데이트
.github/workflows/cd.yml, .github/workflows/ci.yml
각 워크플로우에 JDK 21 설정 단계(actions/setup-java@v4)를 추가하고, Gradle 빌드 단계에서 명시적인 java-version 및 distribution 옵션 제거
Docker 기본 이미지 업그레이드
Dockerfile
기본 이미지를 eclipse-temurin:17.0.17_10-jre-noble에서 eclipse-temurin:21.0.9_10-jre-ubi9-minimal로 변경
Gradle Java 호환성 업데이트
build.gradle
Java 소스 및 대상 호환성을 JavaVersion.VERSION_17에서 JavaVersion.VERSION_21로 업데이트

예상 코드 리뷰 시간

🎯 2 (Simple) | ⏱️ ~12분

  • 주의할 사항:
    • 세 개의 워크플로우 파일(.github/workflows/)에서 JDK 21 설정의 일관성 확인
    • Dockerfile의 새로운 기본 이미지(ubi9-minimal)가 이전 noble 이미지와 호환되는지 검증
    • build.gradle에서 Java 21로의 버전 전환이 프로젝트의 다른 의존성과 충돌하지 않는지 확인

관련 가능성 있는 PR

  • fix: java 버전 21을 사용하도록 통일 #45: 동일한 코드 레벨 변경사항 - CI 워크플로우에 JDK 21 설정 단계 추가, Docker 기본 이미지를 Temurin 21로 업데이트, build.gradle 호환성을 JavaVersion.VERSION_21로 변경
  • Feat: ci/cd #37: CI 워크플로우에서 Java 도구 체인 설정 관련 변경 (이전 PR는 JDK 17 설정, 현재 PR는 JDK 21로 전환)
  • cd: Dockerfile과 deploy.yml 수정 #39: 동일한 파일 수정 - CI 워크플로우, Dockerfile 기본 이미지, build.gradle Java 버전 설정 관련

제안 레이블

👩‍🔧 CI/CD

🐰 자바 스물하나로 업그레이드하네,
도커 이미지는 미니멀하고,
워크플로우 단계는 깔끔하게,
빌드는 더욱 현대적으로,
개발 환경이 한발 앞으로!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목이 자바 버전을 17에서 21로 업그레이드하는 주요 변경사항을 명확하게 설명하고 있습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a8f22dd and 7c3f7ff.

📒 Files selected for processing (4)
  • .github/workflows/cd.yml (1 hunks)
  • .github/workflows/ci.yml (1 hunks)
  • Dockerfile (1 hunks)
  • build.gradle (1 hunks)
🔇 Additional comments (4)
Dockerfile (1)

1-1: Docker 기본 이미지 변경 시 OS 호환성 확인 필요

기본 이미지가 eclipse-temurin:17.0.17_10-jre-noble (Ubuntu)에서 eclipse-temurin:21.0.9_10-jre-ubi9-minimal (Red Hat UBI9 minimal)로 변경되었습니다. Java 버전 업그레이드 외에도 OS 기본 이미지가 바뀐 점에 유의해야 합니다. UBI9-minimal은 더 작고 보안 강화된 이미지이지만, 일부 시스템 유틸리티나 라이브러리가 빠져있을 수 있습니다.

특히 com.google.cloud.sql:mysql-socket-factory-connector-j와 같은 의존성이 UBI9에서 정상적으로 작동하는지 확인하시기 바랍니다.

build.gradle (1)

12-13: Java 21 호환성 확인 완료

sourceCompatibilitytargetCompatibilityJavaVersion.VERSION_21로 업데이트했습니다. Spring Boot 3.5.7과 현재 의존성들(spring-boot-starter-web, mysql-connector-j 등)은 모두 Java 21을 지원하므로 호환성 문제는 없어 보입니다.

.github/workflows/cd.yml (1)

23-27: CD 워크플로우 JDK 21 설정 적절함

새로운 단계 "Set up JDK 21"이 추가되었습니다. actions/setup-java@v4를 사용하여 빌드 전에 명시적으로 Java 21 환경을 설정하는 것이 모범 사례입니다. Temurin 배포판 선택도 Dockerfile 설정과 일치합니다.

.github/workflows/ci.yml (1)

23-27: CI 워크플로우 JDK 21 설정 일관성 확인

CD 파이프라인과 동일하게 "Set up JDK 21" 단계가 추가되었습니다. 모든 설정 파일(build.gradle, Dockerfile, ci.yml, cd.yml)에서 Java 21로 통일되어 있어 버전 불일치 문제는 없습니다.


종합 검토 의견

프로젝트 전체에서 Java 버전이 일관되게 17에서 21로 업그레이드되었습니다:

일관성 확인:

  • build.gradle: Java 21 설정
  • Dockerfile: Java 21 기본 이미지
  • ci.yml, cd.yml: JDK 21 명시적 설정

⚠️ 주의사항:

  1. Docker 기본 이미지 OS 변경: Ubuntu(noble) → Red Hat UBI9(ubi9-minimal) 변경이 포함되어 있습니다. 프로덕션 배포 전에 런타임 동작을 검증하시기 바랍니다.
  2. 통합 테스트: 특히 Google Cloud SQL 연동(mysql-socket-factory-connector-j) 및 OAuth2 클라이언트 기능이 Java 21과 UBI9에서 정상 작동하는지 확인 권장합니다.

Comment @coderabbitai help to get the list of available commands and usage tips.

@choubung choubung merged commit b7107a9 into master Nov 18, 2025
2 checks passed
@choubung choubung self-assigned this Nov 19, 2025
@choubung choubung added 🚨 bug Something isn't working 👩‍🔧 CI/CD labels Nov 19, 2025
@choubung choubung added this to the 2️⃣ 배포 milestone Nov 19, 2025
@choubung choubung linked an issue Nov 19, 2025 that may be closed by this pull request
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚨 bug Something isn't working 👩‍🔧 CI/CD

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

CI/CD: 배포

1 participant