개발환경 아키텍쳐 구성

주요 특징

전자정부 표준프레임워크 개발환경의 주요 특징은 다음과 같습니다.

개발환경 구축의 자동화 및 최적화
라이트버전의 개발환경 제공으로 개발환경을 경량화
필요 기능만을 선택적으로 설치함으로써 최적화된 개발환경을 구성하는 기능을 제공
한번의 설치로 쉽고 빠르게 OS별 서버 환경을 구성하는 기능을 제공
개발환경 구축 자동화 및 최적화
편리한 조립식 구현환경
위저드 방식을 이용하여 한번의 클릭으로 공통컴포넌트를 선택 및 설치하는 기능을 제공
공통컴포넌트 설정부터 테이블 생성까지 바로 실행 가능한 코드를 생성하는 기능을 제공
홈페이지, 포털사이트, 내부 업무 시스템 등 유형별 사이트 템플릿 프로젝트를 제공
편리한 조립식 구현환경
모바일웹 구현 기능 제공
설치와 동시에 바로 적용 가능한 모바일에 최적화된 표준 소스코드를 제공
모바일 템플릿 및 공통컴포넌트 적용을 위한 위저드 방식의 조립식 구현환경을 제공
웹검증도구를 개발환경에 내장하여 모바일웹을 포함한 웹 호환성을 개발과 동시에 검증하는 기능을 제공
모바일웹 구현 환경
배치작업 구현기능 제공
배치템플릿 적용을 위한 위저드 방식의 조립식 구현환경을 제공
배치작업에 대한 설정만으로 파일을생성할 수 있는 배치작업 및 배치 실행파일 생성도구를 제공
배치작업 테스트 도구를 개발환경에 포함하여 기 개발된 배치작업을 검증하는 기능을 제공
배치작업 구현기능 개발환경 구성 순서 개발환경 구성
구현 도구
개발자의 코드 작성을 지원하는 도구로 IDE, Mobile IDE, Common Component, Mobile Common Component, Editor, Debug, Batch IDE로 구성
테스트 도구
개발자가 작성된 코드를 테스트 하기 위한 도구로 Unit Test, Test Automation, Test Coverage, Test Reporting, Batch Job Test 으로 구성
빌드 도구
개발자가 작성된 코드를 컴파일, 빌드, 배포하기 위한 도구로 Build와 Deploy
형상관리
형상요소에 대한 식별 및 등록, 이력관리를 지원하는 Configuration Management와 이슈를 등록하고 검색할 수 있는 ChangeManagement로 구성

구현도구

구현도구
IDE 전자정부 표준프레임워크 퍼스펙티브를 제공하며, 코어 프로젝트, 웹 프로젝트 생성 및 관련 예제생성기능과 템플릿 프로젝트 생성기능을 제공
Common Component 공통컴포넌트 마법사를 통해 95종의 전자정부 표준프레임워크 공통컴포넌트를 생성 및 조립하는 기능을 제공
Mobile IDE 전자정부 모바일 프레임워크 퍼스펙티브를 제공하며, 표준 소스코드 생성 및 검증 기능과 모바일 템플릿 프로젝트 생성기능, 모바일 공통컴포넌트 생성/조립 기능을 제공
Mobile Common Component 모바일 공통컴포넌트 마법사를 통해 40종의 모바일 공통컴포넌트를 생성 및 조립하는 기능을 제공
Java Editor 이클립스를 기반으로 개발되어 이클립스가 제공하는 기본 기능인 Code Assist, Quick Fix, 코드 스타일 적용, 코드 템플릿 처리, 문자열 검색, Quick Type Hierarchy, Quick Outline, 소스 코드 네비게이션, Mark Occurrences, 로컬 히스토리 등과 추가 기능인 eGovFramework을 위한 Perspective, Menu, New Project Wizard 기능을 제공
DBIO Editor iBatis를 기반한 프로젝트에 적합하도록 만들어진 Editor로써 SqlMapConfig 파일과 SqlMap 파일 작성을 위한 GUI와 Query sentence 작성시 발생할 수 있는 오류를 최소화 하기 위한 테스트기능, Query ID 중복체크기능, Query ID 조회기능 등의 편리한 기능이 제공
UML Editor 객체를 모델링 하는 도구로 Class Diagram, Use Case Diagram, Sequence Diagram 등을 작성할 수 있는 기능을 제공하고 추가적인 기능으로 작성된 Class Diagram 으로 Java Source 생성 가능
ERD Editor 데이타 모델링을 위한 도구로 논리모델과 물리모델의 표현이 가능하고 잘 알려진 DB Vendor 에 맞게 스키마 생성 스키립트를 만들 수 있는 기능을 제공
Batch IDE 일괄 데이터 처리를 위한 배치작업 템플릿 생성, 배치작업파일 생성, 배치실행파일 생성 기능을 제공

테스트 도구

테스트도구
Unit Test JUnit 기반으로 TestCase 작성을 지원합니다. TestCase Generator를 통하여 유형에 따라 TestCase를 화면기반으로 작성할 수 있고 가상의 객체인 Mock과 DB 단위 테스트케이스를 작성할 수 있도록 지원
Test Automation 작성된 Test를 자동으로 수행. Test Suite으로 그룹핑하거나 TestCase로 작성된 다수의 테스트케이스 클래스들을 Build 도구(Maven)를 통해 자동으로 테스트가 수행가능
Test Coverage 오픈소스인 EMMA를 사용하여, 개발자가 작성한 TestCase가 대상 소스코드에 대해 어느 정도 Test Coverage를 갖는지 분석
Test Reporting Build 도구(Maven)를 통해 JUnit으로 작성된 TestCase의 테스트 결과를 XML, HTML, Excel 형태로 리포팅하고 Coverage 분석 결과 또한 XML, HTML 형태로 리포팅하며, 배포도구의 CI 서버는 XML 리포트 파일을 이용하여 대시보드에서 테스트 결과와 Test Coverage 분석 결과를 보여지는것이 가능
Batch Job Test 기존에 작성된 배치처리 관련 설정을 JUnit기반으로 테스트 및 검증을 지원하며, 관리자를 위한 JUnit 파일 생성기능 제공

빌드도구

빌드도구
Build Maven을 표준 프로젝트 빌드 관리 도구로 활용하여 빌드 프로세스를 수행하며 Maven의 강력한 특징인 의존성 설정과 라이브러리 관리 기능을 통해 개발자가 라이브러리를 직접관리하지 않고 라이브러리 Repository 시스템을 활용하여 관리하고 Maven Plugin을 탑재하여 Eclipse에서 Build 수행을 지원
CI 지속적인 통합 및 빌드를 위해 오픈소스인 Hudson을 사용하며 소스 저장소와의 연동을 통해 개발자가 올린 코드를 저장소 내 소스에 반영하여 빌드를 수행. 빌드가 실패할 경우, 실패 원인을 해당 개발자에게 통보하여 실패 원인을 분석하고 문제를 해결하도록 하고 주기 설정을 통하여 자동 빌드 기능을 수행

형상관리 도구

형상관리도구
Configuration Management Subversion기반으로 소스 및 산출물을 Chcek In, Check Out, History 내역을 확인 가능
Change Management 개발시 발생하는 이슈를 등록, 처리, 검색할 수 있으며 Notification기능을 통해 담당자에게 통보 가능

개발환경 오픈소스 현황

전자정부 표준프레임워크의 개발 환경에 대한 오픈소스 소프트웨어의 서비스별 현황은 아래와 같습니다.

『개발환경 서비스별 오픈소스 소프트웨어 현황표』
개발환경 오픈소스 현황표
서비스그룹 서비스 소프트웨어 현황 비고
Implemtation Tool Editor Source Editor Eclipse
IDE N/A 신규개발
Batch IDE N/A 신규개발
Common Component N/A 신규개발
Customize Development Tool N/A 신규개발
Mobile IDE N/A 신규개발
DeviceAPI IDE N/A 신규개발
Mobile Common Component N/A 신규개발
Mobile Code Verification N/A 신규개발
Add Plug-In N/A 신규개발
UML Editor AmaterasUML
ERD Editor AmaterasERD
DBIO Editor N/A 신규개발
Web Flow Spring Web Flow
Code Generation N/A 신규 개발
Code Inspection PMD, FindBugs
Server Connection Management N/A 신규 개발
Debug Local Debug Eclipse
Remote Debug Eclipse
TestTool Unit Test Test Case JUnit
Mock Support EasyMock
DB Support DbUnit
Test Automation Ant, Maven
Test Reporting Ant, Maven 기능 추가
Test Coverage EMMA
TestCase Generator N/A 신규 개발
Batch Job Test N/A 신규 개발
Deployment Tool Build Build Tool Maven
CI Server Hudson
Nexus Nexus
Generate Tool Android Configurator for Eclipse
Deploy N/A 신규 개발
Conf.&Change Mgt.Tool Configuration Management Subversion
Change Management jTrac UI 재개발