runtime-smoke-20260710143823/SPRING_TRANSITION_PLAN.md

5.2 KiB

스프링 프레임워크 전환 계획

1. 개요

1.1 목적

본 문서는 기존 런타임 시스템을 스프링 프레임워크 기반으로 전환하기 위한 종합적인 마이그레이션 전략을 정의합니다.

1.2 현재 시스템 분석

구분 현재 상태
프레임워크 커스텀 런타임
의존성 관리 수동 관리
설정 방식 XML 기반
모듈화 제한적
테스트 지원 기본 수준

1.3 전환 목표

  • 스프링 부트 3.x 기반 모던 아키텍처 도입
  • 마이크로서비스 패턴 적용
  • 자동 구성 및 의존성 주입 활용
  • 통합 테스트 및 단위 테스트覆盖率 향상
  • CI/CD 파이프라인 간소화

2. 타겟 아키텍처

2.1 스프링 부트 3.x 기반 계층 구조

┌─────────────────────────────────────────────────────────┐
│                    Presentation Layer                    │
│              (Spring MVC / WebFlux)                      │
├─────────────────────────────────────────────────────────┤
│                    Service Layer                         │
│           (Spring Business Logic)                        │
├─────────────────────────────────────────────────────────┤
│                   Repository Layer                       │
│              (Spring Data JPA)                           │
├─────────────────────────────────────────────────────────┤
│                   Infrastructure                         │
│    (Spring Security, Configuration, Actuator)            │
└─────────────────────────────────────────────────────────┘

2.2 핵심 의존성

카테고리 라이브러리 버전
Core spring-boot-starter 3.2.x
Web spring-boot-starter-web 3.2.x
Data spring-boot-starter-data-jpa 3.2.x
Security spring-boot-starter-security 3.2.x
Validation spring-boot-starter-validation 3.2.x
Test spring-boot-starter-test 3.2.x

2.3 모듈 구조

spring-runtime/
├── spring-runtime-core/          # 공통 유틸리티, 공통 설정
├── spring-runtime-api/           # REST API 모듈
├── spring-runtime-service/       # 비즈니스 로직 모듈
├── spring-runtime-repository/    # 데이터 접근 모듈
└── spring-runtime-starter/       # 메인 애플리케이션

3. 마이그레이션 전략

3.1 4단계 전환 계획

Phase 1: 기반 구축 (4주)

작업 항목 설명
프로젝트 구조 설계 Maven 멀티 모듈 구조
스프링 부트 코어 설정 Application, Configuration
의존성 마이그레이션 기존 JAR → Spring BOM
기본 테스트 환경 JUnit 5, Mockito 설정

Phase 2: 모듈 전환 (8주)

작업 항목 설명
Repository → Spring Data JPA Entity, Repository 변환
Service 계층 전환 @Service, @Transactional 적용
Controller 전환 @RestController 적용
설정 마이그레이션 application.yml/properties

Phase 3: 인프라 연동 (4주)

작업 항목 설명
Security 적용 Spring Security 설정
예외 처리 @ControllerAdvice
로깅 전환 SLF4J + Logback
Actuator 연동 모니터링 설정

Phase 4: 검증 및 배포 (4주)

작업 항목 설명
통합 테스트 @SpringBootTest
성능 테스트 JMeter, Gatling
문서화 SpringDoc OpenAPI
배포 파이프라인 CI/CD 설정

3.2 전환 매핑 테이블

기존 구성 스프링 전환 대상 어노테이션/설정
XML Config Java Config @Configuration
수동 Bean @Bean / @Component @ComponentScan
new 키워드 의존성 주입 @Autowired, @Inject
JDBC Template JdbcTemplate / JPA Spring Data
서블릿 필터 Filter @Filter

4. 리스크 관리

리스크 영향도 완화 전략
의존성 충돌 높음 BOM 사용, 호환성 테스트
성능 저하 중간 프로파일링, 최적화
데이터 손실 심각 백업, 점진적 전환
테스트 커버리지 부족 중간 TDD 적용, 자동화 테스트

5. 검증 기준

  • 모든 단위 테스트 통과 (90% 이상 커버리지)
  • 통합 테스트 통과
  • 성능 벤치마크 기존 대비 95% 이상 유지
  • API 호환성 100% 유지

6. 일정 요약

Week  1-4:  Phase 1 - 기반 구축
Week  5-12: Phase 2 - 모듈 전환
Week 13-16: Phase 3 - 인프라 연동
Week 17-20: Phase 4 - 검증 및 배포

총 예상 기간: 20주