2-1. 개발환경 개요
개발환경 개요
- 개발환경 개요
- 개발 환경은 프레임워크 이해관계자 중 응용 S/W 개발자를 위한 환경
- 서비스 도출
- 응용 SW 개발자의 역할인 요구 분석자, 분석 설계자, 구현자, 테스터, 배포자, 형상 및 변경 관리자, 프로젝트 관리자 등을 지원하는 사례 분석 결과는 다음과 같음
- 전자정부 개발프레임워크 개발 환경의 서비스 그룹은 Implementation Tool, Test Tool, Deployment Tool, 그리고 Configuration & Change Management Tool 로 구성됨
- 개발환경 구성요소
- 개발환경은 개발자 PC에서 개발서버, 운영서버로 연결되는 개발 흐름을 지원함
- 개발환경 선정 오픈 소스
- 개발환경 오픈소스 SW 1, 2차 평가를 통해 선정된 22개의 오픈소스
- 서비스 별 소개
- 테스트 도구 : 개발자가 자신의 코드를 테스트하기 위해 JUnit 기반으로 TestCase의 작성 및 수행을 지원하고, 자동으로 테스트하고 리포팅하도록 지원하는 도구
- 배포도구 : Maven 기반의 개발자 빌드와 CI 서버를 통한 지속적인 통합을 지향
- 형상관리 : 형상요소의 식별, 이력관리를 지원하는 형상도구와 JAVA 기반의 이슈관리시스템 제공
- 변경관리
- 개발자 개발환경 구성
- 서버 개발환경 구성
2-2. 구현도구
구현도구
- 구현도구
- 구현도구는 UML, ERD, Source Code, WebFlow, DBIO Editor 와 Template Project, Common Component, Customize Development Tool, 배치 Templete 및 Job 생성 그리고 Debug로 구성
- Pakage 구성 / Eclipse 기본화면구성 / 화면구성 /
- eGovFrame IDE
- eGovFrame Menu
- UML 작성
- 오픈소스 중 선정된 UML 작성도구는 AmaterasUML 로써 UseCase Diagrma, Class Diagram 작성 기능을 제공
- ERD 작성
- 오픈소스 중 선정된 ERD 작성도구는 AmaterasERD로서 논리모델과 물리모델 작성을 지원
- DBIO 작성
- DBIO Editor는 iBatis SQL Map API 를 통해 DBIO 를 개발하고자 할 때 이를 쉽고 편리하게 작성할 수 있도록 다음과 같은 Editor 기능을 제공 (iBatis 전용) : SQL Map Config Editor / SQL Map Editor
- DBIO Editor는 MyBatis API 를 통해 DBIO 를 개발하고자 할 때 이를 쉽고 편리하게 작성할 수 있도록 다음과 같은 Editor 기능을 제공 (MyBatis 전용) : Mapper Configuration Editor / Mapper Editor
- Code Generation
- 모델기반: 설계 모델을 기반으로 Skeleton 소스코드를 생성하는 기능을 제공
- eGovFrame Java Project
- 프로젝트 생성 마법사는 일반 혹은 Web 기반 프로젝트 자동 생성 기능을 제공
- Common Component
- 개발자의 편의성을 위하여 전자정부 표준 프레임워크에서 제공하는 공통컴포넌트 252종의 설치 마법사를 제공
- Batch Job
- 배치 작업 생성 도구를 통해 Job, Step 등 일괄처리를 위한 기본 기능부터 Flow Control, Partirioning 등 확장 기능까지 설정 값 입력만으로 사용자가 원하는 배치 작업 파일을 생성
- Batch Job Launcher
- 배치 실행 생성 도구를 통해 Job Launcher, Job Operator 등 배치 실행 정보를 생성하고, 필요 시 사용자가 현재 사용 중인 DB 정보를 배치작업에서 활용할 수 있도록 하는 기능을 제공
- Batch Configuration
- 배치개발환경 사용시 Job Parameter, Job Reader/Writer, Listener를 직관적으로 등록 및 사용하기 위한 관리 환경을 제공
- eGovFrame Template Project
- 유형별 템플릿 프로젝트를 자동 생성하는 기능을 제공
- Batch: 배치 템플릿 생성도구를 실행한 후, 입력 리소스 유형과 실행 유형의 선택만으로 총 6종류의 예제 프로젝트를 생성
- Debug
- Local Debugging : 로컬 또는 원격으로 실행 중인 프로그램에서 오류를 발견하고 진단할 수 있는 디버거 제공
- Remote Debugging : 원격 컴퓨터의 WAS(Jboss, JEUS, WebLogic) 에서 실행되는 어플리케이션을 디버깅
- Code Inspection
- 정의된 규칙을 기반으로 소스코드를 검사하여, 오류 및 위험 요인을 식별하여 알려주는 기능 제공
- Server Connection Management
- 서버 연동 정보 관리 : eGovFrame 통합메뉴를 통해 SVN Repositories View 를 연동하는 기능을 제공, Nexus Repository를 등록, 수정 및 삭제하는 기능을 제공
2-3. 개인 빌드 (Maven)
개인빌드 (Maven)
- Maven 개요
- 불필요한 설정을 최소화 한다는 개념 아래 Ant와 같은 빌드 기능을 제공할 뿐 아니라 구조화 된 빌드 기능을 통해 learning curve 및 재사용성을 향상시킴
- 의존성 관리, 라이브러리 관리, 빌드 생명 주기 및 단계 객체 모델을 갖는 프로젝트 관리 도구로 표준화된 빌드 기능 뿐만 아니라 리포팅 및 documentation 생성 기능 등을 제공
- Maven 디렉터리 구조
- Best practices 을 기반으로 정규환된 디렉터리 구조를 제공하고 있으며 모든 소스 파일들은 /src 디렉터리 밑에 빌드 된 output은 /target 디렉터리 및에 위치함
- 빌드 LifeCycle
- 메이븐 빌드는 소프트웨어 프로젝트의 핵심적인 빌드 라이프 사이클 개념을 따르고 있으며 빌드부터 artifact의 배포까지의 라이프 사이클을 정의하고 있음
- 이클립스에서 빌드 라이프 사이클에서 정의한 각 단계들 실행하기
- Maven 플러그인
- 메이븐은 대부분의 빌드 작업 시에 플러그인을 활용하여 메이븐 엔진이 생명주기 단계들과 플러그인을 바인딩 시켜 빌드 작업을 컨트롤 함
- 의존성 관리 매커니즘
- POM에서 선언적인 dependency 설정으로 빌드 및 배포 시에 필요한 라이브러리들을 관리하고 로컬 및 원격 저장소에서 선언된 라이브러리들을 다운로드 받아 사용함
- Maven 저장소
- artifact 들의 저장소로 로컬 및 리모트 repository로 구성되며 프로젝트는 pom.xml 에서 선언한 dependency 들을 저장소로부터 불러와서 사용함
- 프로젝트 객체 모델 (Project Object Model)
- 프로젝트의 구조와 내용을 설명하고 있으며 pom.xml 파일에 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등의 정보들을 기술함
- Maven 이클립스 통합: m2eclipse
- m2eclipse는 Eclipse IDE 에서 Maven 을 사용하기 위한 플러그인으로 Maven 프로젝트 생성 뿐 아니라 Maven 빌드와 WTP(Web Tools Project) 의 통합 등 다양한 기능을 제공함
- 참고자료