====== 개발프레임워크 개발환경 소개 ====== ===== 개요 ===== 전자정부 표준프레임워크의 개발환경 대해 전체적인 개요를 설명한다. ===== 설명 ===== ==== 개발환경 목표 ==== 전자정부 표준프레임워크 개발환경은 비즈니스 프로그램 개발, 버전관리, 단위 테스트, 빌드 등의 개발 Life-Cycle 전반에 대한 지원 도구를 제공한다. \\ * Implementation Tool * Test Tool * Configuration & Change Management Tool * Deployment Tool ||^전체 구조 및 구성요소|| || {{:egovframework:dev2:bdev:imp:개발환경구성도.jpg|}} || |^Implementation Tool | 프로그램 개발, 테스트, 디버그 등 개발자 개별 개발환경을 제공| |^Test Tool | 개발 프로그램에 대한 단위 테스트용 프로그램 작성 및 개별 배치 테스트 지원 | |^Conf. & Change & Batch Mgt. Tool | 개발 프로그램에 대한 형상 식별, 버전관리, 이슈 관리 \\ 및 모니터링 도구 제공 | |^Deployment Tool | CI (Continuous Integration)와 서버 이관 관련 도구 제공| \\ ==== 개발자 개발환경과 서버 개발환경 ==== === 개발자 개발환경 === 개발자 개발환경은 Implementation Tool(Editor, Debug, IDE, Common Component, Mobile IDE, Batch IDE)과 Test Tool(Test Reporting, Unit Test, Batch Test)로 구성되어있다. \\ {{:egovframework:dev2:bdev:imp:clntoverview.jpg|}} \\ 개발자 개발환경의 세부 기능을 좀 더 자세히 살펴보면 **개발자들이 필수적으로 사용해야 하는 기능**과 **개발 편의성을 위해 선택적으로 사용하는 기능**으로 구분됨을 알 수 있다. \\ 이에 따라 전자정부 표준프레임워크에서는 개발환경을 경량화하기 위해 개발자 필수 기능만으로 구성된 [[egovframework:dev2:client#경량 개발환경|경량 개발환경]]을 제공한다. 경량 개발환경은 개발자들이 간편하게 설치하여 사용할 수 있으며 소규모 프로젝트에서 사용하기 용이한 개발환경이다. \\ 또한 전자정부 표준프레임워크에서는 개발자 필수 기능과 개발 편의성 향상을 위한 선택적 기능을 모두를 설치한 [[egovframework:dev2:client#통합 개발환경|통합 개발환경]]도 제공한다. \\ 개발자는 프로젝트의 상황에 적합한 환경을 다운로드하여 사용하도록 한다. \\ \\ === 서버 개발환경 === 서버 개발환경은 Deployment Tool(Build, Deploy)과 Conf. & Change Mgt. Tool(Configuration Management, Change Management)로 구성되어 있다. \\ {{:egovframework:dev2:bdev:imp:svroverview.jpg|}} \\ 전자정부 표준프레임워크에서는 서버 개발환경 역시 프로젝트에서 필수적으로 사용하는 기능과 선택적으로 사용하는 기능으로 구분하였다. \\ 프로젝트 상황에 따라 Deployment Tool과 Conf. & Change Mgt. Tool 중 일부 기능을 선택적으로 사용할 수 있다.[[egovframework:dev2:server|(서버 개발환경)]] ==== 개발 프로세스 ==== 개발환경에서 제공하는 개발환경 도구를 기반으로 개발을 진행할 경우 제시될 수 있는 개발 프로세스이다. \\ 개발 프로세스는 아래의 4개 영역으로 분류되며 각 영역에서 수행하는 상세 프로세스는 그림에서 확인할 수 있다. * 개발자 PC * 형상관리 서버 * CI 서버 * 어플리케이션 서버 {{:egovframework:dev2:4._개발_프로세스_설계2.jpg|}} \\ ===== 환경 설정 ===== ==== 기본 환경 ==== ^ 항목 ^ 권장버전 ^ 비고 | |Java Development Kit|5.0 이상| | |Servlet|2.4| | |Eclipse IDE for Java EE Developers|4.2.2|http://www.eclipse.org/downloads/| ==== WAS ==== ^이름 ^권장버전 ^자바호환성 ^비고 | |Jboss application platform |4.3.0 |JDK 5.0 | | |Tmax JEUS |6.0.0.5 |JDK 5.0 이상 | | |Oracle WebLogic Server |9.2 |JDK 5.0 이상 | | ==== DBMS ==== ^이름 ^권장버전 ^비고 | |Mysql |5.1.30 | | |Tibero |3.0(sp2) | | |Altibase DBMS Server |5.1.3.18 | | |Oracle |9.2(mp3) | | ==== Open Source Software 사용 현황 ==== ^서비스 그룹^서비스^^오픈소스 소프트웨어^버전^라이선스^확장 및 개발^ |Implemtation Tool|Editor|Source Editor|Eclipse|4.2.1|EPL & EDL| | | | |IDE| N/A ||| 신규 개발 | | | |Common Component| N/A ||| 신규 개발 | | | |Customize Development Tool| N/A ||| 신규 개발 | | | |Mobile IDE| N/A ||| 신규 개발 | | | |Mobile Common Component| N/A ||| 신규 개발 | | | |Mobile Code Verification| N/A ||| 신규 개발 | | | |Add Plug-In| N/A ||| 신규 개발 | | | |Batch IDE| N/A ||| 신규 개발 | | | |UML Editor|AmaterasUML| 1.3.2 |EPL 1.0| | | | |ERD Editor|AmaterasERD| 1.0.8 |EPL 1.0| | | | |DBIO Editor| N/A |||신규 개발 | | | |Web Flow| Spring Web Flow | 2.0.7 | | | | | |Code Generation| N/A |||신규 개발 | | | |Code Inspection| PMD, FindBugs | 3.2.6, 1.3.9 | BSD, LGPL | | | | |Server Connection Management| N/A |||신규 개발 | | |Debug|Local Debug|Eclipse| 3.6.2 |EPL & EDL| | | | |Remote Debug|Eclipse| 3.6.2 |EPL & EDL| | |TestTool|Unit Test|Test Case|JUnit| 4.8.2, 3.8.2 |CPL| | | | |Mock Support|EasyMock| 3.0 |MIT| | | | |DB Support|DbUnit| 2.4.8 |LGPL 2.1| | | |Test Automation||Ant, Maven| 1.8.2, 3.0.3 |Apache License 2.0| | | |Test Reporting||Ant, Maven| 1.8.2, 3.0.3 |Apache License 2.0|기능 추가| | |Test Coverage||EMMA| 2.1 |CPL| | | |TestCase Generator|| N/A |||신규 개발 | | |Batch Test|| N/A |||신규 개발 | |Deployment Tool|Build|Build Tool|Maven| 3.0.3 |Apache License 2.0| | | | |CI Server|Hudson| 1.398 |Creative Commons Attribution \\ Share-Alike License,MIT| | | | |Nexus| Nexus | 1.8.0.1 |GPL| | | |Deploy||N/A|||신규 개발 | |Conf.& Change Mgt.Tool|Configuration Management||Subversion| |Subversion License| | | |Change Management||jTrac| |Apache License 2.0|UI 재개발| ✔ DBUnit, EasyMock, Emma, Ant 사용이 필요한 경우 제공된 pom.xml 파일에 있는 주석을 풀고 Maven Install을 실행하도록 한다.