Skip to content

Resolve "스프링 부트 버전을 3.0 으로 업그레이드"

Jisu Yu requested to merge 111-spring-3-migration into main

작업 내용

  • Spring Boot 3.0.4로 마이그레이션
  • 연관된 의존성 모두 3.0에 호환되도록 업그레이드
  • Spring Dependency Management: 1.0.11-RELEASE -> 1.1.0
  • Spring Security: 5.7.3 -> 6.0.2
  • Spring Batch: 4.3.6 -> 5.0.1
  • Spring Rabbit: 2.4.6 -> 3.0.2
  • Liquibase: 4.9.1 -> 4.20.0
  • Springdoc OpenAPI: 1.6.9 -> 2.0.2 (3개의 라이브러리가 하나로 통합됨)
  • Mockk: 1.12.4 -> 1.13.4
  • SpringMockk: 3.1.1 -> 4.0.1
  • QueryDSL: Jakarta에 호환되는 라이브러리로 변경
  • server.servlet.context-path/api로 변경 (Springdoc에서 해당 값을 참조)
  • 서버의 모든 서블릿 컨텍스트가 /api에서 시작함
  • 해당 내용에 따라 모든 컨트롤러 엔드포인트에서 /api 접두사 제거
  • 기타 호환 수정
  • javax -> jakarta (Spring 3)
  • authorizeRequests -> authorizeHttpRequests (Spring 3)
  • antMatchers -> requestMatchers (Spring 3)
  • org.springdoc.api.annotations.ParameterObject -> org.springdoc.core.annotations.ParameterObject (Springdoc v2)

배경

Soft Delete 를 작업하는 도중 @SQLDelete@Where 어노테이션으로 해당 기능을 구현하려고 시도하였으나, 추후에 Soft Delete 된 데이터를 애플리케이션 레벨에서 확인할 수 없다는 치명적인 문제를 발견하였음. (JdbcTemplate과 같은 다른 방법으로는 조회 가능)

따라서 @SQLDelete@Filter로 구현 후 Filter 를 설정, 해제하는 방법으로 애플리케이션 레벨에서도 Soft Delete 된 데이터를 조회할 수 있도록 구현하려고 함.

그러나 Hibernate 5에서는 Session과 관련된 버그가 존재해 Repository에서 find 관련 함수(findAll만 정상 작동)에서 정상적으로 필터가 걸리지 않는 문제를 발견함.

Hibernate 6에서는 해당 문제가 해결된 것으로 보여 먼저 Hibernate 버전을 올린 후 작업 할 예정

참고 링크

세부 내용 및 스크린샷

리뷰어

@Bell

희망 리뷰 완료일

ASAP

체크리스트

연관 이슈

Closes #111 (closed)

Edited by Jisu Yu

Merge request reports

Loading