EgovProperties 클래스와 Globals 클래스를 모듈화하여 JAR로 패키징하는 경우 문의
- 작성자 :
- 권*훈
- 작성일 :
- 2017-04-13 18:11:38
- 조회수 :
- 1,133
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부표준프레임워크를 프로젝트에 반영하여 개발중입니다.
개발 소스코드의 중복을 피하기 위해 전자정부 표준프레임워크의 상당부분을 공통 모듈로 구성하여 이클립스 프로젝트로 생성했습니다.
(편의상 공통모듈 프로젝트)
이 공통모듈 프로젝트(core)에 EgovProperties 클래스와 Globals 클래스도 같이 배치가 되어 있고, globals.properties를 비롯한 환경설정 파일들은 이 공통모듈 프로젝트를 참조하는 별도 웹 프로젝트(admin, front)에 구성되어 있습니다.
문제는, 이 공통모듈 프로젝트를 빌드하여 JAR 파일로 패키징 한 다음 웹 프로젝트의 /WEB-INF/lib 아래에 배치했을 때, egovProps/globals.properties 파일을 비롯한 설정파일들을 찾지 못합니다.
에러 메시지를 확인하고 구현 소스코드를 보니, EgovProperties 클래스를 로드한 클래스로더를 기점으로 파일 경로를 예측하여 물리적인 파일 경로를 얻도록 구현되어 있더군요.
간단하게 EgovProperties 클래스와 Globals 클래스를 웹 프로젝트로 빼내려고 했으나, 이 클래스를 공통컴포넌트 클래스들에서 광범위하게 사용하고 있어서 이 방법은 포기했습니다.
결국, 소스코드 중복을 피하기 위해 모듈화를 하려면 EgovProperties 클래스에 선언된 정적 메소드를 리팩터링하여 외부에서 환경설정 파일이 위치한 폴더를 직접 명시할 수 있도록 수정을 가해야 한다는 답을 얻었는데, 이렇게 접근하는 방식이 맞는 방식인지 모르겠습니다.
이런 방식으로 문제를 해결하면 향후 전자정부표준프레임워크가 업데이트 되었을 때 변경사항을 추적하여 다시 반영해 주는 과정이 매우 복잡하고 번거로울 것으로 예상됩니다.
가이드 부탁 드립니다.
감사합니다.
전자정부표준프레임워크를 프로젝트에 반영하여 개발중입니다.
개발 소스코드의 중복을 피하기 위해 전자정부 표준프레임워크의 상당부분을 공통 모듈로 구성하여 이클립스 프로젝트로 생성했습니다.
(편의상 공통모듈 프로젝트)
이 공통모듈 프로젝트(core)에 EgovProperties 클래스와 Globals 클래스도 같이 배치가 되어 있고, globals.properties를 비롯한 환경설정 파일들은 이 공통모듈 프로젝트를 참조하는 별도 웹 프로젝트(admin, front)에 구성되어 있습니다.
문제는, 이 공통모듈 프로젝트를 빌드하여 JAR 파일로 패키징 한 다음 웹 프로젝트의 /WEB-INF/lib 아래에 배치했을 때, egovProps/globals.properties 파일을 비롯한 설정파일들을 찾지 못합니다.
에러 메시지를 확인하고 구현 소스코드를 보니, EgovProperties 클래스를 로드한 클래스로더를 기점으로 파일 경로를 예측하여 물리적인 파일 경로를 얻도록 구현되어 있더군요.
간단하게 EgovProperties 클래스와 Globals 클래스를 웹 프로젝트로 빼내려고 했으나, 이 클래스를 공통컴포넌트 클래스들에서 광범위하게 사용하고 있어서 이 방법은 포기했습니다.
결국, 소스코드 중복을 피하기 위해 모듈화를 하려면 EgovProperties 클래스에 선언된 정적 메소드를 리팩터링하여 외부에서 환경설정 파일이 위치한 폴더를 직접 명시할 수 있도록 수정을 가해야 한다는 답을 얻었는데, 이렇게 접근하는 방식이 맞는 방식인지 모르겠습니다.
이런 방식으로 문제를 해결하면 향후 전자정부표준프레임워크가 업데이트 되었을 때 변경사항을 추적하여 다시 반영해 주는 과정이 매우 복잡하고 번거로울 것으로 예상됩니다.
가이드 부탁 드립니다.
감사합니다.
A
안녕하십니까, 권기훈님.
표준프레임워크 센터입니다.
말씀해주신 EgovProperties 클래스 파일은 소스 그대로 설정 자체가
전자정부표준프레임워크에 맞게 최적화있기 때문에 가급적 변경을 피해주시고,
별도로 커스터마이징 해서 표준프레임워크와 호환 가능하게 구성하시는 방법이 제일 적합한 것으로 보여집니다.
금일 좋은 하루되시길 바랍니다.
감사합니다.
표준프레임워크 센터입니다.
말씀해주신 EgovProperties 클래스 파일은 소스 그대로 설정 자체가
전자정부표준프레임워크에 맞게 최적화있기 때문에 가급적 변경을 피해주시고,
별도로 커스터마이징 해서 표준프레임워크와 호환 가능하게 구성하시는 방법이 제일 적합한 것으로 보여집니다.
금일 좋은 하루되시길 바랍니다.
감사합니다.