Skip to content

[3.x] Spring Boot 4 및 Spring AI 2 런타임 전환 - #524

Closed
donghyuck wants to merge 4 commits into
2.xfrom
3.x
Closed

donghyuck wants to merge 4 commits into
2.xfrom
3.x

Conversation

@donghyuck

@donghyuck donghyuck commented Jul 26, 2026 •

Copy link
Copy Markdown
Owner

Why

  • Spring Boot 4.1.0, Spring AI 2.0.0, Jackson 3 기준으로 3.x runtime과 AI/RAG 계약을 전환합니다.
  • 2.x 호환 기준선을 보존하면서 3.0.0-rc.1을 검증 가능한 release candidate로 제공합니다.

What

  • Gradle 8.14.5, Spring Boot 4.1.0, Spring AI 2.0.0, MyBatis Spring Boot Starter 4.0.1을 적용했습니다.
  • Jackson 3 application boundary와 provider별 Spring AI 2 adapter를 반영했습니다.
  • Redis 기반 RAG exact-answer cache, revision/evidence 기반 key, fail-open 동작을 추가했습니다.
  • Boot 4 자동구성, JDBC/Flyway, MySQL/MariaDB schema 호환 변경과 회귀 테스트를 반영했습니다.
  • README, CHANGELOG, 3.x 업그레이드 기준선, Redis rollout 문서를 현행화했습니다.

Related Issues

  • 별도 Issue 없음: 사용자가 3.x major upgrade의 계획, 구현, 검증 및 PR 생성을 직접 요청했습니다.

Validation

  • Command: ./gradlew compileJava compileTestJava --continue --no-daemon
    • Result: 성공, 150 tasks
  • Command: ./gradlew test --continue --no-daemon
    • Result: 성공, 239 tasks
  • Command: ./gradlew test -PrunDbTests=true --continue --no-daemon
    • Result: 성공, 239 tasks
  • Command: ./gradlew dependencyCheckAnalyze --no-daemon
    • Result: 성공, 분석 대상 취약점 0건
  • Command: ./gradlew check --no-daemon
    • Result: 성공, verify3xRuntimeClasspath 포함
  • Command: ./gradlew publishToMavenLocal --no-daemon
    • Result: 성공, 386 tasks
  • Runtime: cache none/redis, revision invalidation, Redis 장애 fail-open, sync/SSE 및 인증/API smoke test 성공
  • Rollback: v2.1.0-rc.1 platform 전체 test와 2.x server composite/runtime smoke test 성공
  • Documentation: git diff --check 성공

Risk / Rollback

  • Risk: Boot 4, Spring AI 2, Jackson 3의 major boundary로 인해 소비 애플리케이션이 2.x와 3.x artifact를 혼합하면 runtime linkage 오류가 발생할 수 있습니다.
  • Rollback: RAG cache를 none으로 전환하고 v2.1.0-rc.1 platform 및 2.1 property set을 함께 복원합니다. DB content migration과 embedding identity는 변경하지 않았습니다.

AI / Subagent Usage

  • AI-assisted: Yes
  • Subagent used: Yes
  • Delegated scope: 기준선, Jackson 3, Spring AI 2, 계획 architecture/critic, 최종 upgrade verification 검토
  • Main author validation: 모든 변경을 통합한 뒤 전체 compile/test/DB test/dependency check/publish/runtime/rollback 검증을 직접 수행했습니다.

Checklist

  • commit message follows policy
  • issue template used or exception recorded
  • AI-Assisted value is correct
  • validation recorded
  • subagent usage recorded when used
  • CI / repository verification passed locally
  • human review completed before merge
  • no unrelated changes included

Issue:
- 별도 Issue 없이 사용자의 Boot 3 호환 기준선 보존 및 2.1 release 준비 요청에 따라 수행함

Why:
- Boot 4/Jackson 3 major 전환 전에 검증 가능한 Boot 3 호환 artifact와 rollback 기준점을 마련해야 함

What:
- artifact version을 2.1.0-rc.1로 갱신함
- 실행 서버, RAG sync/SSE, Redis exact cache와 fail-open 검증 gate를 문서화함
- 2.x 유지보수와 Boot 4 전용 3.x 브랜치 경계를 명시함

Validation:
- git diff --check: passed
- 기준선 정적 확인: Gradle 8.14.5, Spring Boot 3.5.16, Spring AI 1.1.8 유지
- Gradle properties 실행은 sandbox의 Gradle wrapper lock 권한 제한으로 task 시작 전에 중단됨
Issue:
- 별도 Issue 없음: 사용자 요청에 따라 3.x major upgrade를 진행함.

Why:
- Spring Boot 4.1.0, Spring AI 2.0.0, Jackson 3 기준으로 플랫폼 런타임과 RAG cache 계약을 통일하기 위함.

What:
- Gradle 8.14.5와 3.0.0-rc.1 버전 기준선을 적용함.
- Boot 4, Spring AI 2, Jackson 3, MyBatis 4 호환 코드를 반영함.
- Redis RAG exact-answer cache와 fail-open 검증을 보강함.
- README, CHANGELOG, 업그레이드 및 rollout 문서를 현행화함.

Validation:
- ./gradlew compileJava compileTestJava --continue --no-daemon: 성공, 150 tasks
- ./gradlew test --continue --no-daemon: 성공, 239 tasks
- ./gradlew test -PrunDbTests=true --continue --no-daemon: 성공, 239 tasks
- ./gradlew dependencyCheckAnalyze --no-daemon: 성공, 취약점 0건
- ./gradlew check --no-daemon: 성공
- ./gradlew publishToMavenLocal --no-daemon: 성공, 386 tasks
- 3.x runtime cache none/redis/fail-open smoke test: 성공
- v2.1.0-rc.1 platform rollback test 및 runtime smoke test: 성공
- git diff --cached --check: 성공
Issue:
- 별도 Issue 없음: PR #524의 ancestry 충돌 해소를 위해 최신 2.x 기준선을 병합함.

Why:
- 동일한 2.1.0-rc.1 tree를 가진 독립 release commit의 ancestry를 연결해 3.x PR을 병합 가능하게 만들기 위함.

What:
- origin/2.x의 2.1.0-rc.1 release commit을 3.x history에 병합함.
- 3.x upgrade source tree에는 추가 변경이 없음.

Validation:
- git diff 0ed2f04 origin/2.x --stat: 차이 없음
- git diff --check: 성공

# Conflicts:
#	docs/dev/redis-rag-cache-rollout.md
#	gradle.properties
Issue:
- 별도 Issue 없음: PR #524가 2.x를 대상으로 생성된 상태를 교정함.

Why:
- 보호된 3.x branch를 강제 재작성하지 않고 업그레이드 전 기준선을 복원해 작업 PR이 3.x를 대상으로 병합되도록 하기 위함.

What:
- 직접 반영된 3.x upgrade tree를 정방향 revert함.
- 3.x file tree를 업그레이드 직전 0ed2f04 및 2.1.0-rc.1 기준선과 동일하게 복원함.

Validation:
- git diff 0ed2f04 --name-only: 차이 없음
- git diff --check: 성공
@donghyuck

Copy link
Copy Markdown
Owner Author

대상 branch가 2.x로 잘못 지정되어 종료합니다. 동일한 검증 완료 변경은 3.x 대상 새 PR로 교체합니다.

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