Skip to content

[발전 방안 제안(Improvement Plan)]: 멀티 모듈 구조의 장점 극대화 하기 #244

Description

@yjj8353

아이디어명 Idea Name

중복된 내용을 도려내고 분산된 내용은 통합하기

아이디어 요약 Idea Summary

서브 모듈 pom.xml에 작성 된 중복 내용을 제거하고 메인 모듈의 pom.xml에 통합

제안배경 Suggestion Background

현재 egovframe-runtime 프로젝트는 메이븐 멀티 모듈 구조를 단순히 서브 모듈을 메인 모듈에 포함하는 용도로만 사용 중.
멀티 모듈 구조의 장점을 충분히 활용하지 못해, 많은 중복 코드가 서브 모듈의 pom.xml에서 나타남.
이 중복을 제거함으로써 멀티 모듈 구조의 장점을 극대화 하고 유지보수성을 좋게 만들고자 함.

기대효과 Expectations

  1. 스크립트 중복 제거

서브 모듈에서 공통적으로 작성해야 하는 스크립트를 메인 모듈에서 관리하면 추후 새로운 서브 모듈이 추가되더라도 일관성을 유지하기 쉬움.
만약, 공통 스크립트를 사용할 수 없더라도 pom.xml의 스크립트는 오버라이드 할 수 있으므로, 필요한 경우 특정 모듈만 별도로 관리 할 수 있음.

  1. 속성 값 일관성 유지

모든 모듈에서 공통적으로 사용하는 속성 값 (EX. JDK 버전, 문자열 포맷, 라이브러리 및 플러그인 버전 등)을 메인 모듈에서 관리하면 일관 된 속성 값을 유지할 수 있음.

  1. 리포트 통합 (부수적 효과)

현재 mvn site명령어를 이용한 리포트 생성은 각 모듈마다 별도로 생성되어 분산됨.
메인 모듈을 활용하면 해당 리포트를 하나로 통합해서 보는 것이 가능함.

자유기술 Free Writing

  1. 실제로 메인/서브 모듈의 pom.xml을 변경한 결과, 약 2500줄 가량의 스크립트 중복을 제거할 수 있었음.
  2. 메인 모듈 pom.xml의 distributionManagement 스크립트를 이용해 mvn site site:stage명령어를 통해, 기존의 site 보고서를 각 모듈에 직접 들어가서 봐야 했던 문제를 프로젝트 루트 디렉터리의 target/staging/index.html로 통합해서 볼 수 있었음.

참고문헌 Reference

#243

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions