본문 바로가기

IT/전자정부프레임워크

개발환경 소개 및 구현도구, 개인 빌드

개발환경 소개 및 구현도구, 개인 빌드

개발환경 개요

개발환경은 프레임워크 이해관계자 중 응용 S/W 개발자를 위한 환경

  • 응용SW개발자(개발): 응용 SW 개발자는 전자 정부 개발프레임워크를 기반으로 어플리케이션을 개발하며, 개발 생산성 향상을 위해 전자정부 개발프레임워크로부터의 개발 지원 기능이 필요함
  • 응용SW(실행): 응용 SW는 전자정부 개발프레임워크를 기반으로 개발되는 어플리케이션으로써 어플리케이션의 효과적인 동작을 위한 전자정부 개발프레임워크의 실행 지원 기능이 필요함
  • 개발프레임워크 관리자(관리): 개발프레임워크 관리자는 전자정부 개발프레임워크의 지속적인 개선 및 유지보수를 담당하며, 전자정부 개발프레임워크의 효과적인 관리 지원 기능이 필요함
  • 운영SW운영자(운영): 응용 SW운영자는 응용 소프트웨어의 운영과정에서 어플리케이션의 기반인 전자정부 개발프레임워크로부터의 운영 지원 기능이 필요함

서비스 별 소개

구현도구: 개발자의 코드 작성 및 디버깅을 지원하는 도구로 Eclipse 기반 하에 추가 Plug-in을 제공

구현도구는 UML, ERD, Source Code, WebFlow, DBIO Editor와 Template Project, Common Component, Customize Development Tool, 배치 Template 및 Job 생성 그리고 Debug로 구성



테스트도구: 개발자가 자신의 코드를 테스트하기 위해 JUnit 기반으로 TestCase의 작성 및 수행을 지원하고, 자동으로 테스트하고 리포팅하도록 지원하는 도구

배포 도구: Maven 기반의 개발자 빌드의 CI서버를 통한 지속적인 통합을 지향

형상관리: 형상요소의 식별, 이력관리를 지원하는 형상도구와 JAVA기반의 이슈관리시스템 제공


개인빌드


Maven 개요

불필요한 설정을 최소화한다는 개념 아래 Ant와 같은 빌드 기능을 제공할 뿐아니라 구조화된 빌드 기능을 통해 learning curve 및 재사용 성을 향상시킴


Maven 특징

Maven 장점

뛰어난 의존성 관리, 의존성 자동 업데이트, 저장소를 통한 라이브러리 일괄 관리, 모든 프로젝트에 걸쳐 쉽게 적용 가능한 일관적인 사용법, 라이브러리 및 메타 데이터 저장을 위한 지속적으로 확장되고 있는 저장소, 쉽게 작성가능한 플러그인을 통한 확장성, 동시에 다수의 프로젝트 핸들링할 수 잇는 쉬운 설정 기반의 메커니즘, 간단한 설정을 통한 배포 관리, Java, C++ 등 다수의 프로그래밍 언어 지원


Maven 단점

repository 관리의 불편함(Maven 프로젝트의 급속한 발전으로 central repository가 제공하는 라이브러리들이 급속히 증가하고 있으나 아직 3rd 파티 라이브러리 등 미제공 라이브러리들이 있음, pom.xml 파일 관리(메이븐 프로젝트 관리에 대한 모든 내용이 pom.xml 파일에 담기게 되므로 길고 장황하게 될 수 있음), 프로젝트에 특화된 복잡한 빌드 기능 제약(메이븐 프로젝트 특성상 소프트웨어 빌드에 통용되는 라이프 사이클을 제공하고 있어 세부 항목 또는 특화된 빌드환경에 대한 지원이 미약함)


의존성 관리, 라이브러리 관리, 빌드 생명 주기 및 단계 객체 모델을 갖는 프로젝트 관리 도구로 표준화된 빌드 기능 뿐만 아니라 리포팅 및 documentation 생성 기능 등을 제공


Maven 아키텍처


  • 프로젝트 객체 모델(POM): 메이븐 엔진 내장+POM.XML 파일에서 선언적으로 제공
  • 의존성 관리 모델: 로컬 및 리모트 저장소를 이용하여 관리
  • 빌드 생명주기와 각 단계: 잘 정의된 단계들과 빌드 사이클에 따라 플러그인들을 조율

Maven 디렉터리 구조

Best practices을 기반으로 정규화된 디렉터리 구조를 제공하고 있으며 모든 소스 파일들은 /src 디렉터리 밑에 빌드된 output은 /target 디렉터리 밑에 위치함


'IT > 전자정부프레임워크' 카테고리의 다른 글

전자정부 표준프레임워크 개요  (0) 2017.12.27