e2e-minimax-20260716-0243/docs/spring-migration-checklist.md

3.2 KiB

Spring Boot 전환 구현 체크리스트

1. 프로젝트 구조 분석

1.1 현재 구조 파악

  • 기존 프로젝트 타입 확인 (Plain Java, Maven, Gradle)
  • 의존성 목록 정리
  • 주요 설정 파일 식별 (application.properties, config.xml)
  • 데이터소스 및 ORM 설정 확인
  • 보안 설정 현황 파악

1.2 Spring Boot 호환성 평가

  • Java 버전 호환성 확인 (Java 17+ 권장)
  • Spring Boot 3.x 호환 의존성 확인
  • Jakarta EE 마이그레이션 필요성 평가

2. 빌드 설정 전환

2.1 Maven → Spring Boot

  • pom.xml → Spring Boot Parent 적용
  • Spring Boot Starter 의존성 추가
  • 빌드 플러그인 설정 (spring-boot-maven-plugin)
  • 의존성 버전 관리 Parent로 이관

2.2 의존성 전환 매핑

기존 의존성 Spring Boot Starter
spring-web + spring-webmvc spring-boot-starter-web
spring-data-jpa + hibernate spring-boot-starter-data-jpa
spring-security spring-boot-starter-security
spring-test spring-boot-starter-test
jackson-databind Jackson (기본 내장)
log4j/slf4j spring-boot-starter-logging

3. 설정 파일 마이그레이션

3.1 application.properties → application.yml

  • 기존 properties를 YAML 형식으로 변환
  • profile별 설정 파일 분리 (dev, prod, test)
  • 환경별 변수 설정 검증

3.2 XML 설정 → Java Config

  • web.xmlWebApplicationInitializer
  • spring-context.xml@Configuration 클래스
  • dispatcher-servlet.xmlapplication.yml + Java Config
  • DataSource 설정 → @Bean 또는 application.yml

4. 코드 변환

4.1 메인 클래스

  • @SpringBootApplication 어노테이션 추가
  • SpringApplication.run() 진입점 생성

4.2 REST 컨트롤러

  • @RestController 적용 (기존 @Controller + @ResponseBody)
  • @RequestMapping@GetMapping, @PostMapping
  • ResponseEntity 반환 타입 사용

4.3 서비스/리포지토리

  • @Service, @Repository 어노테이션 적용
  • JPA 리포지토리 인터페이스로 변환
  • @Transactional 전파 전략 확인

4.4 예외 처리

  • @ControllerAdvice 전역 예외 처리 구현
  • 커스텀 예외 클래스 정의
  • HTTP 상태 코드 매핑

5. 테스트 전환

  • @SpringBootTest 적용
  • @WebMvcTest, @DataJpaTest 활용
  • MockMvc를 통한 API 테스트
  • 테스트 프로필 설정

6. 검증 체크리스트

6.1 빌드 검증

  • mvn clean package 성공
  • BootJar 생성 확인
  • 의존성 충돌 없음

6.2 실행 검증

  • 애플리케이션 정상 기동
  • /actuator/health 엔드포인트 응답
  • 로그 출력 정상

6.3 기능 검증

  • REST API 엔드포인트 동작 확인
  • 데이터베이스 연결/쿼리 정상
  • 세션/인증 동작 확인
  • 예외 처리 정상 동작

7. 마이그레이션 후 처리

  • 기존 XML 설정 파일 아카이브
  • 마이그레이션 문서 업데이트
  • 팀 교육 및 가이드 작성