프로젝트 개요
Nike 레거시 애플리케이션 현대화 프로젝트는 10년이 넘은 Spring 4.2에서 Spring Boot 3.5로, Java 8에서 Java 21로의 업그레이드를 중심으로, 보안 취약점 검사, 이미지 스캔, 코드 커버리지 분석, 자동화된 테스트 등 포괄적인 보안 및 품질 개선을 구현했습니다.
해결 과제
주요 과제는 비즈니스 연속성을 유지하면서 10년 된 Spring Framework 애플리케이션을 현대화하고, 무중단 마이그레이션을 보장하며, 현대적인 보안 관행을 구현하고, 진행 중인 운영을 방해하지 않으면서 품질 게이트를 설정하는 것이었습니다.
구현과 설계
프레임워크 및 런타임 현대화
프로세스 전반에 걸쳐 하위 호환성을 유지하면서 핵심 프레임워크와 런타임 환경을 체계적으로 업그레이드했습니다.
- Spring 4.2 → Spring Boot 3.5: 자동 구성을 통한 완전한 프레임워크 마이그레이션
- Java 8 → Java 21: 성능 최적화와 새로운 언어 기능을 활용한 JVM 업그레이드
- 레거시 XML 구성 → Java 기반 구성으로 마이그레이션
- Spring Boot Starter 패키지로 의존성 관리 현대화
보안 및 품질 강화
CI/CD 파이프라인에 통합된 포괄적인 보안 스캐닝 및 품질 보증 프로세스를 구현했습니다.
- SAST (정적 애플리케이션 보안 테스트) 통합
- 자동 보고서가 포함된 컨테이너 이미지 취약점 스캐닝
- nike.net 현대화 범위 테스트 및 코드 커버리지 85%+ 달성
- SonarQube를 활용한 자동 버그 감지 및 코드 품질 게이트
주요 결과
- 10년+ 레거시 소스 리팩토링 및 현대화 추진
- 여러 차수의 현대화 작업을 통해 레거시 코드 구조와 운영 기준을 단계적으로 정비
- nike.net 현대화 범위 코드 커버리지 85%+ 달성; 다른 서비스 전체로 확대하지 않음
- 운영 이전에 품질/보안 리스크를 선제적으로 식별할 수 있는 기반 마련
- 프레임워크와 런타임 업그레이드를 지속 적용할 수 있는 기준 정립
사용 기술
- Spring Boot 3.5
- 최신 Spring Boot 프레임워크 업그레이드
- Java 21
- 성능 향상을 제공하는 최신 LTS Java 버전
- SonarQube
- 코드 품질 분석 및 보안 스캐닝
- JUnit 5
- 고급 기능을 갖춘 최신 테스트 프레임워크
- Container
- 컨테이너 기반 배포
- ECS
- AWS 컨테이너 서비스
- Jenkins
- CI/CD 파이프라인 자동화
- Terraform
- Terraform 인프라 관리
배운 점
- 레거시 현대화는 비즈니스 영향을 최소화하기 위한 신중한 계획과 단계적 접근이 필요
- 자동화된 테스트와 CI/CD 통합은 안전한 프레임워크 마이그레이션에 필수
- 보안 설계 접근법은 배포 후 취약점을 크게 감소시킴
- 모던 Spring Boot는 상용구 코드와 구성 오버헤드를 크게 줄임