실행환경 Migration 가이드 (3.10 -> 4.0)

표준프레임워크 4.0는 Spring Framework 5.3.6 버전을 지원가능하게 업그레이드를 진행하였으나,
전체 오픈소스SW 업그레이드에 따라 일부 변경이 필요합니다. 또한, 각 프로젝트의 상황 및 환경에 따라서 버전 업그레이드에 따른
충돌, 버그, 불안정성이 발생할 수도 있으니 충분한 테스트 후 진행하시기 바랍니다.

업그레이드 개요

표준프레임워크 4.0는 JDK 1.8, Servlet 3.1이 필요합니다.
이에 따라 우선 관련된 WAS 등 적용되어 있는 SW 등이 JDK 1.8, Servlet 3.1를 지원하는지 확인하고 필요 시 업그레이드를 수행하십시오.

업그레이드 방법

1. 실행환경 library 변경

1-1. Maven을 사용하는 경우

Maven을 사용하는 경우 프로젝트에서 사용하는 pom.xml 파일을 수정하여 업그레이드를 진행할 수 있습니다.
기본적으로 표준프레임워크 실행환경에서 사용되는 오픈소스 라이브러리들만을 업그레이드 하고자 하는 경우
pom.xml 파일에서 패키지명을 org.egorframe.rte로 변경하고 버전은 4.0.0으로 업그레이드 하기 바랍니다.

변경 전 (예)

<dependency>
     <groupId>egovframework.rte</groupId>
     <artifactId>egovframework.rte.psl.dataaccess</artifactId>
     <version>3.10.0</version>
</dependency>

변경 후 (예)

<dependency>
     <groupId>org.egovframe.rte</groupId>
     <artifactId>org.egovframe.rte.psl.dataaccess</artifactId>
     <version>4.0.0</version>
</dependency>

만약 표준프레임워크의 버전을 property를 사용하여 일괄적으로 관리하는 경우 property에서 변경합니다.
property의 이름은 프로젝트에 따라 다를 수 있습니다.

변경 전 (예)

<properties>
     <spring.maven.artifact.version>4.3.25.RELEASE</spring.maven.artifact.version>
     <egovframework.rte.version>3.10.0</egovframework.rte.version>
</properties>

변경 후 (예)

<properties>
     <spring.maven.artifact.version>5.3.6</spring.maven.artifact.version>
     <org.egovframe.rte.version>4.0.0</org.egovframe.rte.version>
</properties>

또한 표준프레임워크 Maven Reposieoty를 HTTP를 사용한 설정에서 HTTPS를 사용하는 설정을 변경하시기 바랍니다.

변경 전

http://maven.egovframe.go.kr/maven/
http://maven.egovframe.kr:8080/maven/
http://www.egovframe.go.kr/maven/

변경 후

https://maven.egovframe.go.kr/maven/

1-2. 실행환경 패키지명 변경

표준프레임워크 4.0.0 버전부터 실행환경의 패키지명을 org.egovframe.rte로 변경하였으므로, 실행환경을 import한 소스에 변경된 패키지명을 사용하시기 바랍니다.
표준프레임워크 개발환경에서 Search 기능에서 기존의 패키지명인 egovframework.rte 로 검색한 후,
변경할 패키지명인 org.egovframe.rte로 일괄로 변경하여 사용할 수 있습니다.

1-3. context-common.xml 설정 변경

context-common.xml 파일의 다국어처리를 위한 Bean 설정에 실행환경의 ID Generation, Property 라이브러리 경로 설정을 패키지명 변경에 맞춰 수정하시기 바랍니다.
변경 전

<list>
	<value>classpath*:egovframework/message/com/**/*</value>
	<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
	<value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
	<value>classpath:/egovframework/egovProps/globals</value>
</list>

변경 후

<list>
	<value>classpath*:egovframework/message/com/**/*</value>
	<value>classpath:/org/egovframe/rte/fdl/idgnr/messages/idgnr</value>
	<value>classpath:/org/egovframe/rte/fdl/property/messages/properties</value>
	<value>classpath:/egovframework/egovProps/globals</value>
</list>

2. 간소화 서비스 설정 변경

표준프레임워크에서 제공하는 간소화 서비스인 Spring Security 설정 간소화, Session 방식 접근제어, Crypto 간소화를 업그레이드 하시는 경우 변경된 내용을 확인하시기 바랍니다.

  • Spring Security 설정 간소화 변경 사항(상세보기)
    • 스키마정의(XSD) 파일명 변경

변경 전

  http://www.springframework.org/schema/security/spring-security-4.2.xsd
  http://maven.egovframe.go.kr/schema/egov-security/egov-security-3.10.0.xsd

변경 후

  http://www.springframework.org/schema/security/spring-security.xsd
  http://maven.egovframe.go.kr/schema/egov-security/egov-security-4.0.0.xsd
  • Session 방식 접근제어 변경 사항(상세보기)
    • 스키마정의(XSD) 파일명 변경

변경 전

  http://maven.egovframe.go.kr/schema/egov-access/egov-access-3.10.0.xsd

변경 후

  http://maven.egovframe.go.kr/schema/egov-access/egov-access-4.0.0.xsd
  • Crypto 간소화 변경 사항(상세보기)
    • 스키마정의(XSD) 파일명 변경

변경 전

  http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-3.10.0.xsd

변경 후

  http://maven.egovframe.go.kr/schema/egov-crypto/egov-crypto-4.0.0.xsd

3. LDAP 라이브러리 변경

Spring Framework 버전의 변경으로 LDAP 라이브러리 버전 변경이 필요합니다.

변경 전 (예)

<dependency>
	<groupId>org.springframework.ldap</groupId>
	<artifactId>spring-ldap-core</artifactId>
	<version>2.0.2.RELEASE</version>
</dependency>

변경 후 (예)

<dependency>
	<groupId>org.springframework.ldap</groupId>
	<artifactId>spring-ldap-core</artifactId>
	<version>2.3.3.RELEASE</version>
</dependency>

4. Jackson 라이브러리 변경

JSON 변환에 사용되는 Jackson 라이브러리 버전 변경이 필요합니다.

변경 전 (예)

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-core</artifactId>
	<version>2.5.1</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.5.1</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.5.1</version>
</dependency>

변경 후 (예)

<dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-core</artifactId>
	<version>2.11.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.11.4</version>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.11.4</version>
</dependency>

5. EgovBindingInitializer 관련 변경

Spring Framework 버전의 변경으로 WebBindingInitializer 인터페이스의 initBinder 메소드의 설정이 변경되었으므로
WebBindingInitializer 인터페이스의 구현클래스인 EgovBindingInitializer 클래스를 사용하는 경우 다음과 같은 코드 변경이 필요합니다.

변경 전 (예)

public class EgovBindingInitializer implements WebBindingInitializer {
	public void initBinder(WebDataBinder binder, WebRequest request) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		dateFormat.setLenient(false);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
		binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
	}
}

변경 후 (예)

public class EgovBindingInitializer implements WebBindingInitializer {
	public void initBinder(WebDataBinder binder) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		dateFormat.setLenient(false);
		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
		binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
	}
}

6. 스프링 프레임워크 <form:form> 태그 변경

Spring Framework 버전의 변경으로 <form:form> 태그의 commandName 옵션이 modelAttribute로 변경되었으므로 다음과 같은 코드 변경이 필요합니다.

변경 전 (예)

<form:form commandName="login">

변경 후 (예)

<form:form modelAttribute="login">

7. log4j 설정 추가

표준프레임워크 실행환경의 패키지명이 org.egovframe.rte로 변경됨에 따라 실행환경에서 발생하는 로그를 확인하기 위해
로깅 환경설정 파일인 log4j2.xml 파일에 다음과 같은 설정 추가가 필요합니다.

설정 추가 (예)

<Logger name="egovframework" level="DEBUG" additivity="false">
        <AppenderRef ref="console" />
</Logger>
<Logger name="org.egovframe.rte" level="DEBUG" additivity="false">
        <AppenderRef ref="console" />
</Logger>

기타 알 수 없는 충돌이 발생하는 경우

프로젝트에 따라서 기존에 사용하던 라이브러리, 코드, WAS, DB 등과의 충돌이 발생할 수 있습니다.
알 수 없는 충돌이 발생하고 해결이 어려운 경우 표준프레임워크센터에 프로젝트의 환경 및 에러메시지를 포함하여 문의를 주시기 바랍니다.

 
egovframework/rtemigration4.0.txt · 마지막 수정: 2024/02/19 00:34 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki