기술과 산업/언어 및 프레임워크

전자정부 표준프레임워크 시리즈 15화 – Gradle + Spring Boot 전환 전략: 표준프레임워크의 현대화 실전 사례

B컷개발자 2025. 6. 22. 13:25
728x90

전자정부 표준프레임워크 기반 프로젝트를 Gradle과 Spring Boot 기반으로 전환하고자 할 때, 기존 구조를 어떻게 유지하면서 모던 빌드 환경을 적용할 수 있는지를 실무 중심으로 설명합니다.

 

 

1. 왜 Gradle과 Spring Boot 전환을 고민하게 되는가?

 

전자정부 표준프레임워크는 수년간 Maven과 XML 설정 중심의 개발 환경을 유지해왔습니다.

그러나 최근 들어 실무에서는 다음과 같은 이유로 Gradle과 Spring Boot로의 전환 요구가 급증하고 있습니다.

요구 이유설명

빌드 속도 개선 Gradle의 병렬 빌드, 캐싱 기능 덕분에 빌드 시간 대폭 단축
Spring Boot의 설정 단순화 XML → Java 기반 Config 전환으로 유지보수성 향상
현대적 DevOps 연계 Docker, GitHub Actions, Jenkins 등과의 통합이 용이
클라우드 환경 대응 Spring Cloud, K8s 환경에 유리한 구조 필요

결론적으로 기존 표준프레임워크 구조의 장점은 유지하면서도 개발 생산성과 배포 유연성을 높이기 위한 선택이 바로 Gradle + Spring Boot 전환입니다.

 


 

2. 전환 가능성: eGovFrame은 Gradle을 지원하는가?

 

전자정부 표준프레임워크 v4.3.0은 Maven 기반으로 배포되지만,

내부적으로 사용하는 라이브러리와 디렉터리 구조는 Spring Framework의 표준 규칙을 따르기 때문에, Gradle 환경으로 전환이 가능합니다.

 

✅ 단, 공통컴포넌트 중 일부는 Maven Repository에서만 제공되므로, 초기에는 병행 설정이 필요합니다.

 


 

3. 전환 전략 – “한 번에 전환” vs “점진적 모듈 분리”

 

 

전략 1: 전체 전환 (신규 시스템 구축 시 적합)

 

  • 신규 공공 시스템을 아예 Spring Boot 기반 구조로 설계
  • eGovFrame 라이브러리를 Gradle로 포함하고, XML 설정은 Java Config로 재작성

 

 

전략 2: 점진적 모듈 전환 (기존 시스템 확장 시 적합)

 

  • 공통 컴포넌트 및 외부 연계 모듈부터 Gradle + Boot로 분리
  • 기존 시스템은 Maven 그대로 유지하며 Gateway API 방식으로 연계

 

실무에서는 “점진적 분리 후 전면 전환” 방식이 가장 많이 채택됩니다.

 


 

4. 실전 적용 예시 – 게시판 공통모듈을 Gradle + Boot로 전환

 

 

1) Gradle 설정 파일 (

build.gradle

)

plugins {
    id 'org.springframework.boot' version '2.7.15'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'egovframe.example'
version = '1.0.0'
sourceCompatibility = '11'

repositories {
    mavenCentral()
    maven { url "https://repo.egovframe.go.kr/maven" }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.egovframe.rte:egovframework-common:4.3.0'
    implementation 'org.egovframe.rte:egovframework-com-cmm:4.3.0'
}
maven { url "https://repo.egovframe.go.kr/maven" } 설정이 필수

 


 

2) Java Config 방식으로 설정 전환

 

기존의 context-common.xml에서 작성하던 Bean 설정을 다음과 같이 Java 기반으로 전환

@Configuration
public class EgovConfig {

    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
        ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource();
        source.setBasenames("classpath:/egovframework/message/message");
        source.setDefaultEncoding("UTF-8");
        return source;
    }
}

 


 

3) Controller, Service 구조 그대로 사용 가능

 

전자정부 표준프레임워크의 3계층 구조(Controller → Service → DAO)는

Spring Boot에서도 그대로 유지 가능하며, 호환성이 높습니다.

 


 

5. 실무 적용 시 주의할 점

항목설명

공통컴포넌트 연동 일부 모듈은 XML 기반 설정 요구 → 초기엔 혼용 필요
Spring Boot 버전 egov 4.3.0은 Spring 5.3.x 기반 → Boot 2.7.x 권장
테스트 환경 구축 JUnit5 + @SpringBootTest 조합으로 검증 필요
배포 구조 변경 WAR → JAR 구조로 전환되며, 빌드/배포 파이프라인 수정 필요

 


 

6. 실제 적용 프로젝트 사례 (요약)

 

  • 국방부 OOO 체계 고도화 사업: 기존 eGovFrame 구조 유지하며, 공통 모듈을 Gradle로 독립 구성
  • 지자체 통합민원 시스템: 신규 프로젝트에서 Spring Boot + Gradle + MyBatis 적용, 공통코드/파일/인증 모듈만 eGovFrame 공통컴포넌트 도입
  • OO기관 클라우드 전환 사업: Boot + Gradle + Docker + GitOps 구조로 전면 전환

 


 

표준과 현대화, 그 사이에서 균형을 잡는 전략이 필요하다

 

전자정부 표준프레임워크는 공공 시스템 개발의 표준이지만,

개발환경과 배포 전략은 계속 진화하고 있습니다.

 

Gradle과 Spring Boot로의 전환은 단지 기술 변화가 아니라,

개발 효율성, 자동화, 보안, 운영 안정성 확보를 위한 전략적 선택입니다.

 

그리고 이제는 표준을 유지하면서도 점진적으로 현대화할 수 있는 유연성이 실무에서 더욱 중요한 가치로 자리잡고 있습니다.

728x90