Skip to content

feat: Java 버전을 25에서 21 LTS로 다운그레이드#45

Merged
XIYO merged 4 commits intomainfrom
develop
Sep 30, 2025
Merged

feat: Java 버전을 25에서 21 LTS로 다운그레이드#45
XIYO merged 4 commits intomainfrom
develop

Conversation

@XIYO
Copy link
Collaborator

@XIYO XIYO commented Sep 30, 2025

📋 변경사항

Java 버전을 25에서 21 LTS로 다운그레이드했습니다.

🔄 수정된 파일들

  • build.gradle: Gradle toolchain을 Java 21로 변경
  • Dockerfile: 빌드 및 런타임 이미지를 Java 21로 변경
  • Dockerfile.cicd: CI/CD 런타임 이미지를 Java 21로 변경
  • .github/workflows/release.yml: GitHub Actions Java 버전을 21로 변경
  • README.md: 모든 Java 25 언급을 Java 21로 업데이트

✨ 주요 개선사항

  • LTS 안정성: Java 21은 LTS 버전으로 더 안정적이고 널리 지원됨
  • CI/CD 일관성: 모든 워크플로우에서 Java 21 사용 (test.yml은 이미 21 사용 중이었음)
  • 호환성 검증: 컴파일 및 JAR 빌드 성공 확인

🧪 테스트 결과

  • ✅ 컴파일 성공: compileJava, compileTestJava 정상 완료
  • ✅ JAR 빌드 성공: bootJar 정상 완료
  • ✅ Spring Boot 3.5.5와 Java 21 완벽 호환 확인

📚 관련 정보

  • Java 21 LTS는 2023년 9월에 출시되어 장기 지원되는 안정적인 버전입니다
  • Spring Boot 3.5.5는 Java 21을 완전히 지원합니다
  • 기존 코드에 호환성 문제가 없음을 확인했습니다

Closes #N/A

- 실제로는 admin, anon 계정만 자동 생성됨
- user 계정은 설정에만 존재하고 DataInitializer에서 생성하지 않음
- 정확한 정보로 수정하여 사용자 혼란 방지
- 관리자 계정(admin)만 사용자 대상 기본 계정으로 문서화
- anon 계정은 E2E 테스트 편의용으로 내부적으로 생성됨
- 사용자 문서에서는 관리자 계정만 안내하여 간소화
- README.md: REGULAR_PASSWORD 환경변수 정보 제거
- application.yml: regular 사용자 설정 제거
- DefaultUsersProperties.java: regular 필드 제거
- DataInitializer.java: anon 사용자 생성 코드 제거
- AuthSteps.java: anon/regular 관련 상수 및 헬퍼 메서드 제거
- E2E 테스트: 동적 사용자 생성 방식으로 전환

이제 관리자(admin) 계정만 자동 생성되며,
테스트는 필요 시 동적으로 일반 사용자를 생성하는 방식으로 변경됨
- release.yml: Java 버전 21로 수정
- Dockerfile: Java 버전 21로 수정
- Dockerfile.cicd: Java 버전 21로 수정
- README.md: Java 버전 21로 수정
- build.gradle: Java 버전 21로 수정
- docker-compose.yml: stop_grace_period 추가
- application.yml: graceful shutdown 활성화 및 actuator 헬스체크 추가
@XIYO XIYO merged commit 029e686 into main Sep 30, 2025
1 check failed
@XIYO XIYO deleted the develop branch September 30, 2025 07:41
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Comment on lines 32 to +39
@BeforeEach
void loginDefaults() {
admin = AuthSteps.loginAdmin();
regular = AuthSteps.loginRegular();

// 일반 사용자는 동적으로 생성
String testUsername = "testuser_" + System.currentTimeMillis();
AuthSteps.register(testUsername, "TestUser123!", "Test User", "test@example.com");
regular = AuthSteps.loginAs(testUsername, "TestUser123!");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Register test users with unique emails

The setup creates a new username for each test but always registers with test@example.com. UserCommandService.create rejects duplicate emails, so after the first test the signup call returns 409 without creating the user and the subsequent loginAs immediately fails with 401. This makes the board E2E suite fail after the initial method. Generate a unique email per registration or clear the database between tests.

Useful? React with 👍 / 👎.

Comment on lines 29 to +37
@BeforeEach
void loginDefaultUsers() {
// DataInitializer가 기본 admin/regular를 생성하므로 바로 로그인
// DataInitializer가 기본 admin을 생성하므로 바로 로그인
admin = AuthSteps.loginAdmin();
regular = AuthSteps.loginRegular();

// 일반 사용자는 동적으로 생성
String testUsername = "testuser_" + System.currentTimeMillis();
AuthSteps.register(testUsername, "TestUser123!", "Test User", "test@example.com");
regular = AuthSteps.loginAs(testUsername, "TestUser123!");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P1] Avoid duplicate emails in E2E user setup

As above, the per-test setup always registers the dynamic user with the static email test@example.com. Because emails must be unique, only the first test actually creates a user; subsequent registrations fail with 409 and the follow‑up login fails, breaking the rest of the user E2E cases. Use a unique email (e.g., append the timestamp) when registering test users.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant