1. 개발환경개요 1. 개발환경개요 개발환경은프레임워크이해관계자중응용 S/W 개발자를위한환경 전자정부개발프레임워크이해관계자주요관심사분석 응용 SW 개발자는전자정부개발프레임워크를기반으로어플리케이션을개발하며, 개발생산성향상을위해전자정부개발프레임워크로부터의개발지원기능이필요함 응용 SW 개발자 개발 실행 응용 SW 응용 SW 는젂자정부개발프레임워크를기반으로개발되는어플리케이션으로써어플리케이션의효과적인동작을위한젂자정부개발프레임워크의실행지원기능이필요함 전자정부표준프레임워크 개발프레임워크관리자는젂자정부개발프레임워크의지속적인개선및유지보수를담당하며, 젂자정부개발프레임워크의효과적인관리지원기능이필요함 관리 개발프레임워크관리자 운영 운영 SW 운영자 응용 SW 운영자는응용소프트웨어의운영과정에서어플리케이션의기반인젂자정부개발프레임워크로부터의운영지원기능이필요함 Page l 4 4
2. 서비스도출 (1/2) 1. 개발환경개요 응용 SW 개발자의역할인요구분석자, 분석설계자, 구현자, 테스터, 배포자, 형상및변경관리자, 프로젝트관리자등을지원하는사례분석결과는다음과같음개발환경서비스그룹사례분석 개발프레임워크기술구조사례연구 개발프레임워크 ( 사업자명 ) SYSTEMiER ( 삼성 SDS) Nexcore (SK C&C) DevOn (LG CNS) Live Framework ( 현대정보기술 ) 한화프레임워크 ( 한화 S&C) ProFrame (TmaxSoft) 요구분석자지원서비스 N/A N/A N/A 분석설계자지원서비스 * N/A 모델링 모델링, MDSD 구현자지원서비스 Code/Conf. Generation, Debugging IDE, 템플릿및개발표준, 코드 Inspection 개발홖경설치, IDE, Prototype, 코드 Inspection 테스터지원서비스 Test Automation, Test Reporting 단위테스트, 성능테스트 단위테스트, 성능테스트 배포자지원서비스 형상 / 변경관리자지원서비스 프로젝트관리자지원서비스 Deployment 형상관리 N/A 자동빌드형상관리 N/A 자동빌드형상관리 N/A N/A N/A Debugging Testing Deployment Version Control N/A N/S N/A N/A N/A 빌드 N/A RSD/RSA Transformatio n 디버깅, EMB Designer, ProMapper, DBIO Editor Service Tester Deploy Management 소스형상관리, 버그추적관리 버젂관리, 개발자권한관리 N/A N/A Page l 5 5
2. 서비스도출 (2/2) 1. 개발환경개요 전자정부개발프레임워크개발환경의서비스그룹은 Implementation Tool, Test Tool, Deployment Tool, 그리고 Configuration & Change Management Tool로구성됨 개발환경서비스그룹도출 개발환경 서비스그룹 Implementation Tool 설명 업무프로그램구현을지원하는도구임 Implementation Tool Test Tool Deployment Tool Configuration & Change Management Tool Test Tool Deployment Tool 구현된업무프로그램의테스트를지원하는도구임 구현완료된업무프로그램을실행홖경에배포가능한형태로패키징하고, 패키징된업무프로그램을실행홖경에배포하는도구임 홖경 서비스그룹 Configuration & Change Management Tool 형상및변경관리지원도구임 Page l 6 6
3. 개발환경구성요소 1. 개발환경개요 개발환경은개발자 PC 에서개발서버, 운영서버로연결되는개발흐름을지원함 Implementation Tool Debug Code Generation Test Tool Test Reporting Deployment Tool Build Conf. & Change Mgt. Tool Configuration Mgt. Editor Code Inspection Unit Test Deployment Change Management Methodology & Template Batch Batch Test 개발자 PC 개발서버 Coding Build 정상 예 Commit 여부 Source TestCase Compile Test Packaging Inspection 아니오 형상관리 CheckOut Build Compile Test Packaging Inspection Debugging 운영서버 WAS 재기동 Deploy Page l 7 7
4. 개발환경선정오픈소스 (1/2) 1. 개발환경개요 개발환경오픈소스 SW 1,2 차평가를통해선정된 22 개의오픈소스 SW 는다음과같음 개발환경오픈소스 SW 선정결과 No 서비스그룹서비스오픈소스라이선스 1 5 Editor Code Inspection PMD, FindBugs BSD, LGPL 구현도구 Source Editor Eclipse EPL & EDL 2 UML Editor AmaterasUML EPL 1.0 3 ERD Editor AmaterasERD EPL 1.0 4 Web Flow Spring Web Flow N/A 6 New Batch Template Project Spring Batch Apache License 2.0 7 New Batch Job Spring Batch Apache License 2.0 8 New Batch Job Launcher Spring Batch Apache License 2.0 9 Local Debug Eclipse EPL & EDL Debug 10 Remote Debug Eclipse EPL & EDL Page l 8 8
4. 개발환경선정오픈소스 (2/2) 1. 개발환경개요 개발환경오픈소스 SW 1,2 차평가를통해선정된 22 개의오픈소스 SW 는다음과같음 개발환경오픈소스 SW 선정결과 No 서비스그룹서비스오픈소스라이선스 11 TestCase Junit CPL 12 Unit Test Mock Support EasyMock MIT 13 DB Support DbUnit LGPL 2.1 테스트도구 14 Test Automation Ant, Maven Apache License 2.0 15 Test Reporting Ant, Maven Apache License 2.0 16 Test Coverage EMMA CPL 17 Batch Job Test Spring Batch Apache License 2.0 18 Build Tool Maven Apache License 2.0 배포도구 19 Build CI Server Hudson Creative Commons Attribution Share-Alike License,MIT 20 Nexus Nexus GPL 21 형상관리도구 Configuration Management Subversion Subversion License 22 Change Management jtrac Apache License 2.0 Page l 9 9
5. 서비스별소개 - 구현도구 1. 개발환경개요 개발자의코드작성및디버깅을지원하는도구로 Eclipse 기반하에추가 Plug-in 을제공 구성요소별상세 구성요소에디터디버거방법롞 ( 개발절차 ) 템플릿프로젝트공통컴포넌트맞춤형개발환경배치템플릿프로젝트배치 Job 생성배치 Job Launcher 설명 SourceCode Editor 로편리한소스코드작성홖경제공 UML, ERD 에디터제공 DBIO 에디터를통해 SQL 작성및수행결과확인가능 WebFlow Editor 를통해설정파일의유효성검사및 Edit 편집모드와디버깅모드의젂홖을통한작업의편의성향상 Remote 디버깅제공 애플리케이션을개발가이드제공 애플리케이션개발시자동으로템플릿을생성마법사제공 애플리케이션개발시마법사를통해공통컴포넌트를추가기능제공 프로젝트에서필요로하는기능만을선택적으로구성할수있는도구제공 New egovframe Batch Template Project 생성마법사실행 배치처리구성별예제제공 배치작업파일생성마법사실행 배치 Job / Step / Item 설정으로 XML 파일생성 배치작업실행파일생성마법사실행 배치처리구성시최초에필요한 Launcher, Repository 의설정 XML 파일생성 10 Page l 10
5. 서비스별소개 테스트도구 1. 개발환경개요 개발자가자신의코드를테스트하기위해 JUnit 기반으로 TestCase 의작성및수행을지원하고, 자 동으로테스트하고리포팅하도록지원하는도구 주요메커니즘 구성요소별상세 구성요소 설명 구현도구 작성 작성 테스트클래스 분석 실행 테스트도구 Coverage 분석 테스트기반홖경 Test Reporting 테스트기반환경 Test Reporting Junit 기반의 Unit Test 작성지원 Mock 및 DB Support Eclipse 기반의 Green Bar GUI HTML/XML/Excel 형식의 Reporting 지원 Coverage 분석 TestCase 가커버하는정도를수치및코드영역을통해확인 테스트대상모듈 Coverage 리포트 결과리포트 Batch Job Test 배치관련파일을홗용하여간단히테스트할수있는테스트마법사실행 11 Page l 11
5. 서비스별소개 배포도구 1. 개발환경개요 Maven 기반의개발자빌드와 CI 서버를통한지속적인통합을지향 주요메커니즘 구성요소별상세 구현도구 정책적용 배포도구 프로젝트팀 구성요소 설명 결과알림 리포트 결과확인 배포정책 빌드도구 Maven 기반의빌드수행 3 rd Party 라이브러리관리편의성을위한 Nexus Repository 제공 테스트도구 빌드자동화도구빌드도구 저장소 서버 형상관리도구 PM, QM 등 개발자 빌드자동화도구 형상관리도구와연계하여소스가변경된경우에만빌드를수행 배포정책에따라설정된주기에자동수행 빌드결과에대한리포트및피드백기능제공 서버이관및 WAS 기동 / 중지 12 Page l 12
5. 서비스별소개 형상관리 1. 개발환경개요 형상요소의식별, 이력관리를지원하는형상도구와 JAVA 기반의이슈관리시스템제공 주요메커니즘 구성요소별상세 프로젝트팀형상관리배포도구 개발자 Check in/out Configuration Management 배포 빌드자동화도구 구성요소 Config. Mgmt 설명 Subversion 을그대로홗용 이슈 ID 등록을통한이슈연계 백업 PL 이슈관리 Change Management 백업 저장소 Change Mgmt JAVA 기반의이슈관리시스템 이슈등록, 검색, 처리기능제공 CMO 13 Page l 13
6. 개발자개발환경구성 (1/9) 1. 개발환경개요 설치 egovframe-3.6.0.exe 파일을 C:\ 드라이브에서실행한다. 디렉토리정보 디렉토리 설명 bin 실행파일 android-sdk-windows apache-tomcat-7.0.59 apache-tomcat-8.0.24 윈도우용안드로이드 SDK 폴더 Apache Tomcat eclipse 개발환경이포함된 Eclipse JEE Mars.2 Release (4.5.2) jdk1.7.0_80 jdk1.8.0_45 mysql-5.6.21 maven/repository textbook workspace.edu JDK_HOME 실습용 DB Local Maven Repository 교육교재파일 Eclipse Workspace 14 Page l 14
6. 개발자개발환경구성 (2/9) 1. 개발환경개요 실행 C:\eGovFrame-3.6.0\eclipse 를더블클릭하여 Eclipse 를실행한다. 15 Page l 15
6. 개발자개발환경구성 (3/9) 1. 개발환경개요 설정 Maven Installations 설정확인 16 Page l 16
6. 개발자개발환경구성 (4/9) 1. 개발환경개요 설정 Apache Tomcat 설정 17 Page l 17
6. 개발자개발환경구성 (5/9) 1. 개발환경개요 설정 대상프로젝트 DB 구동을확인한다. ( example project name: lab102-code-generation) C:\egovFrame-3.6.0\workspace.edu\lab102-code-generation\DATABASE\db\runHsqlDB.cmd 를더블클릭하여 Sample용 DB를띄운다. 18 Page l 18
6. 개발자개발환경구성 (6/9) 1. 개발환경개요 설정 Eclipse의 Data Source Explorer View에서 SampleHSQLDB 에서오른쪽버튼의 connect 를선택하여다음과같이테이블이설정되어있는지확인한다. 19 Page l 19
6. 개발자개발환경구성 (7/9) 1. 개발환경개요 설정 Eclipse 에서 Build Automatically 가선택되어있다. 20 Page l 20
6. 개발자개발환경구성 (8/9) 1. 개발환경개요 설정 프로젝트앞에빨간아이콘이있어오류가있다면 Maven Update Project 을실행해본다. 21 Page l 21
6. 개발자개발환경구성 (9/9) 1. 개발환경개요 개발자개발환경선택적구성 개발환경구성시필요기능만을선택하여개발환경을선택적으로구성하는기능을제공 제공기능 egovframework AmaterasERD egovframework AmaterasUML egovframework Batch IDE egovframework CodeGen egovframework CodeGen Templates egovframework DBIO egovframework DeviceAPI IDE egovframework Mobile IDE egovframework RTE Distribution Tool egovframework TestCase Templates egovframework Web Standard Verification 필요한기능만을선택후설치 Spring IDE Web Flow Extension(optional) 22 Page l 22
7. 서버개발환경구성 1. 개발환경개요 다운로드 egovframe 포털 (http://www.egovframe.go.kr/) 에접속하여 다운로드 > 개발홖경 에서제공하는서버용개 발홖경 (Windows, Unix 계열 ) 설치파일을다운로드한다. 23 Page l 23
7. 서버개발환경구성 - Windows 1. 개발환경개요 설치 egovci-3.5.0_xxbit.exe 파일을실행하여압축을해제한다. 24 Page l 24
7. 서버개발환경구성 - Windows 1. 개발환경개요 설치 C:\eGovCI-3.5.0_XXbit\bin\VisualSVN-Server-3.3.1-x64.msi 파일을실행하여 VisualSVN 을설치한다. 25 Page l 25
7. 서버개발환경구성 - Windows 1. 개발환경개요 실행 C:\eGovCI-3.5.0_XXbit\start.bat 파일을실행하여진행한다. 브라우저주소입력창에 Nexus, Hudson 가설치된 URL 을입력하여설치여부를확인할수있다. [ 그림 1] Nexus 가설치된모습 [ 그림 2] Hudson 이설치된모습 26 Page l 26
1. 개요 2. 구현도구 구현도구는 UML, ERD, Source Code, WebFlow, DBIO Editor 와 Template Project, Common Component, Customize Development Tool, 배치 Template 및 Job 생성그리고 Debug 로구성 전자정부개발프레임워크구현도구 Debug Batch Configuration New Batch Job Launcher New Batch Job New Batch Template Project Customize Development Tool Common Component Template Project DBIO Editor WebFlow Editor Source Code Editor ERD Editor UML Editor Eclipse platform (JEE package) 28 Page l 28
1. 개요 - Package 구성 2. 구현도구 구현도구는 Eclipse Java EE 를기반으로 Package 와 UML, ERD, DBIO Editor 와 Template Project, Common Component, Customize Development Tool, 배치 Template 및 Job 생성플러그인으로 구성 구현도구가 Eclipse JEE 를기반으로하고있으므로아래와같은패키지가포함되어있다. - RCP/Platform(Rich Client Platform) - CVS(Concurrent Versions System) - EMF(Eclipse Modeling Framework) - GEF(Graphical Editing Framework) - JDT(Eclipse Java development tools) - Mylyn - WTP (Web Tools Platform ) : Web Tools, Java EE Tools, XML Tools - RSE(RSE, Target Management ) - Eclipse Link - PDE(The Plug-in Development Environment) - Datatools(DTP, Data Tools Platform ) 29 Page l 29
1. 개요 Eclipse 기본화면구성 2. 구현도구 Eclipse 기본화면은메뉴바, 툴바, 퍼스펙티브바, 4 개의뷰영역으로크게구분된다. 이 4 개의뷰를포함 하는전체영역을퍼스펙티브 (Perspective) 라고하고, 이 Eclipse Window 전체를워크벤치 (Workbench) 라부름 메뉴바 툴바 워크벤치 (Workbench) 퍼스펙티브바 퍼스펙티브 (Perspective) 좌측 View 영역 중앙 View 영역 우측 View 영역 하단 View 영역 Fast 뷰 : 잘사용하지않는화면들을최소화시켜놓고필요한시점에만잠깐활성화시킬때사용된다. 30 Page l 30
1. 개요 화면구성 2. 구현도구 구현도구는개발자가개발환경을쉽고편리하게개발할수있도록특성화된통합메뉴, 퍼스펙티브, 뷰, 에디터등을제공 egovframe 통합메뉴 egovframe 퍼스펙티브전환 DBIO, UML, ERD 등의다양한 Editor 제공 Package Explorer, DataSource Explorer 등의뷰제공 OutlineView 등의활용 DBIO Search, Query Result 등의뷰기능제공 31 Page l 31
2. egovframe IDE (1/2) - egovframe Menu 2. 구현도구 egovframe Perspective 에서만활성화되는메뉴로 eclipse 내에서분산되어있는플러그인들의기능 (egovframe 에서필히사용되어지는기능 ) 을빠르게접근할수있는통합메뉴제공 * 세부메뉴항목별설명 Start - New Core Project : egovframe Core Project 생성 - New Web Project : egovframe Web Project 생성 - New Template Project : egovframe Template Project 생성 Analysis - New Usecase Diagram : Usecase Diagram 생성 Design - New ER Diagram : ER Diagram 생성 - New Class Diagram : Class Diagram 생성 Implementation - Add egovframe Common Component : Common Component 생성 - New SQL Map Config : SQL Map Config 파일의생성 - New SQL Map : SQL Map 파일의생성 - Show DBIO Search View : DBIO Search View 를나타나게함 Configuration - Customize Development Tool : 필요한기능을선택적으로설치 - Server Connection Management Show SVN Repositories View : SVN Repositories View 를나타나게함 Nexus : Nexus Repository 정보관리 32 Page l 32
2. egovframe IDE (2/2) egovframe Batch Menu 2. 구현도구 egovframe Perspective 에서만활성화되는메뉴로 eclipse 내에서분산되어있는플러그인들의기능 (egovframe 에서필히사용되어지는기능 ) 을빠르게접근할수있는통합메뉴를제공 * 세부메뉴항목별설명 Start - New Batch Template Project : egovframe Batch Template Project 생성 Implementation - New Batch Job : Job/ Step/ Item 을구성해서배치작업파일생성 - New Batch Job Launcher : 배치작업실행파일생성 Test - Batch Job Test : 구성한배치를 JUnit 을홗용하여테스트 33 Page l 33
3. UML 작성 2. 구현도구 오픈소스중선정된 UML 작성도구는 AmaterasUML로써 UseCase Diagram, Class Diagram 작성기능을제공 UseCase Diagram 작성 Use Case Diagram 작성할수있는기능을제공 Class Diagram 작성 Class Diagram 작성할수있는기능을제공 UseCase Diagram 작성 제약사항 UML 1.4 기반으로설계작업가능 UML 2.0 지원하지않음 Class Diagram 작성 34 Page l 34
4. ERD 작성 2. 구현도구 오픈소스중선정된 ERD 작성도구는 AmaterasERD 로서논리모델과물리모델작성을지원 ERD 생성 Entity 정의와 Entity 간의관계를표현할수있는작업창 DDL 작성 도구를이용해작성된 ER Diagram으로 Oracle, PostgreSQL, MySQL, hsqldb 등에맞게 DDL 스크립트를생성 Reverse Engineering 지원 Oracle, PostgreSQL, MySQL, hsqldb 등의 Database로부터테이블 Import가가능 테이블명세서 Export 도구를이용해작성된 Table 들의명세서를 HTML 형식 Export 제약사항 ERWIN 모델링도구와호환불가 35 Page l 35
5. DBIO 작성 (1/6) 2. 구현도구 DBIO Editor 는 ibatis SQL Map API 를통해 DBIO 를개발하고자할때이를쉽고편리하게작성할 수있도록다음과같은 Editor 기능을제공 (ibatis 전용 ) SQL Map Config Editor - SQL Maps 설정파일을 UI 형태로편집가능하도록지원 SQL Map Editor - SQL Maps 파일을 UI 형태로편집가능하도록지원 * ibatis SQL Map API 에서는기본적으로 SQL Map 파일과 SQL Map 설정파일이요구된다. 36 Page l 36
5. DBIO 작성 (2/6)- SqlMap Config Editor 2. 구현도구 SqlMap Config Editor는 ibatis SQL Maps 설정파일을 UI 형태로편집가능하도록지원 Transaction Manager 주요트랜잭션 Type과 DataSource Type 에필요한 Properties 항목을정의한다. SqlMap 목록 SqlMap 항목을추가, 삭제, 신규생성하고 SQLMapConfig 파일내등록을지원한다. Transaction Manager SQL Map 목록 37 Page l 37
5. DBIO 작성 (3/6)- SqlMap Editor 화면구성 2. 구현도구 SqlMap Editor 는 ibatis SQL Maps 파일을 UI 형태로편집가능하도록지원하는도구 그룹별구성요소 Tree 구성요소생성, 삭제, 검색, 바로가기기능 사용자 Layout 조정 수평, 수직레이아웃선택기능 In/out Section Parameter, Result 설정 (class, map 선택 ) Query Section SQL 쿼리작성시 Query Builder 기능제공 Test Section 쿼리에따른 Parameter Name 자동설정 Row Limit ( 쿼리테스트결과행길이제한 ) 쿼리 Test 결과에따른 VO 자동생성기능 Query Result : 쿼리수행결과확인 Source Tab : SqlMap XML 편집기능지원 SqlMap Outline View 구성요소바로가기기능지원 Source Tab 그룹별구성요소 Tree 사용자 Layout 조정 In/Out Section Query Section Test Section Query Result SQL Map Outline 뷰 38 Page l 38
5. DBIO 작성 (4/6)- 쿼리작성 2. 구현도구 SqlMap Editor 에서는쿼리작성을용이하게하기위해 Query Builder 기능을제공함 39 Page l 39
5. DBIO 작성 (5/6)- 쿼리 Test 및결과확인 2. 구현도구 SqlMap Editor 는 Test Section 과 Result View 를통해쿼리테스트기능을지원함 1 DB Info 를선택 쿼리 Test 절차 1 Query Section 에서 DB Info 를선택한다. 2 Query 작성 2 Query Section 에서 Query 를작성한다. 3 Test Section 에서 Parameter 값을입력한다. 3 Parameter 값입력 4 결과값을확인한다 Test Section 버튼설명 4 Query Result 확인 - Set Param : Parameter Name 을자동세팅한다. - Query Test : 쿼리테스트를수행한다. - Create VO : 쿼리결과에따른 VO 를생성한다. - Row Limit : 쿼리결과행길이제한 ( 기본값 =100) 40 Page l 40
5. DBIO 작성 (6/6)- VO 자동생성 2. 구현도구 SqlMap Editor 는개발자편이성을위해 VO(Value Object) 를자동생성기능제공 1 Create VO 클릭 3 쿼리수행결과에따른 VO Class 가생성됨 2 VO Class 명입력 41 Page l 41
6. Code Generation - 모델기반 2. 구현도구 설계모델을기반으로 Skeleton 소스코드를생성하는기능을제공 절차 1. 구현도구에서클래스다이어그램 (*.cld) 를더블클릭한다. 2. 클래스다이어그램에디터화면내에서오른쪽버튼클릭하여메뉴에서 egovframe > Model Based CodeGen 메뉴를클릭한다. 3. Output Folder 입력항목에소스디렉토리를입력하고 Finish 버튼을클릭한다. 42 Page l 42
7. egovframe Java Project 2. 구현도구 프로젝트생성마법사는일반혹은 Web 기반프로젝트자동생성기능을제공 egovframe Core Project - 일반적인 JAVA Project 생성 egovframe Web Project - Web 기반프로젝트생성 egovframe 기반의어플리케이션개발에적합한프로젝트환경구성 2 가지생성방식 43 Page l 43
8. Common Component(1/3) - 기본설치 2. 구현도구 개발자의편의성을위하여전자정부표준프레임워크에서제공하는공통컴포넌트 251 종의설치마법사 를제공 1 설치할공통컴포넌트를선택 2 테이블생성방식선택 사용자지정선택시 Next 버튼활성화 기본설치선택시 Finish 버튼활성화 44 Page l 44
8. Common Component(2/3) 사용자지정 2. 구현도구 개발자의편의성을위하여전자정부표준프레임워크에서제공하는공통컴포넌트 251 종의설치마법사 를제공 1 DB 선택 Table 생성절차 1 Select DB 에서사용할 DB 를선택한다. 2 Connection Test 수행 2 Connection Test 를수행한다. 3 Create Table 버튼을눌러테이블을생성한다. 4 테이블생성결과를확인한다. 3 테이블생성 ('Prepared', Success', 'Already Exist', 'Failed 의 4 개의결과값으로결과확인가능 ) 4 테이블생성결과확인 45 Page l 45
8. Common Component(3/3) 공통컴포넌트설정 2. 구현도구 개발자의편의성을위하여전자정부표준프레임워크에서제공하는공통컴포넌트 251 종의설치마법사 를제공 운영체제유형 사용자의운영체제를선택한다. 메인페이지 선택한공통컴포넌트설치후실행시시작화면을보여준다. G4C 연결용 IP G4C 인증용 IP 를보여준다. Select DB Data Source Explorer에사용자가등록한 DB 중공통컴포넌트설치시선택한 DB 정보가선택된다. 설정변경시변경된내용은 globals.properties 에서확인이가능하다. 46 Page l 46
9. Batch Job 2. 구현도구 배치작업생성도구를통해 Job, Step 등일괄처리를위한기본기능부터 Flow Control, Partitioning 등확장기능까지설정값입력만으로사용자가원하는배치작업파일을생성 1 배치 Job 정보생성 2 배치 Step 정보생성 3 Reader/Writer 정보생성 배치작업생성절차 1 배치 Job 정보를생성한다. 2 Batch Step 정보를생성한다. 3 Reader/Writer 정보를생성한다. 4 배치작업파일을생성한다. 4 배치작업파일생성 47 Page l 47
10. Batch Job Launcher 2. 구현도구 배치실행생성도구를통해 Job Launcher, Job Operator 등배치실행정보를생성하고, 필요시사용 자가현재사용중인 DB 정보를배치작업에서활용할수있도록하는기능을제공 1 배치 Job Execution 정보생성 2 DataSource 정보생성 배치실행작업생성절차 1 배치 Job Execution 정보를생성한다. 2 DataSource 정보를생성한다. 3 배치실행파일을생성한다. 3 배치실행파일생성 48 Page l 48
11. Batch Configuration 2. 구현도구 배치개발환경사용시 Job Parameter, Job Reader/Writer, Listener 를직관적으로등록및사용하기 위한관리환경을제공 Reader/Writer 선택 Reader/Writer 생성정보입력 Reader/Writer 생성버튼 Job Parameter - 배치개발환경에서제공하는테스트마법사를이용할경우사용자의편의성을위해배치구성파라미터를추가하는관리환경을제공 Job Reader/Writer - 배치수행시사용되는입력데이터를등록하여사용할수있는관리환경을제공 - 배치수행시사용되는출력데이터를등록하여사용할수있는관리환경을제공 Listener - 배치수행시각 Job, Step, Chunk의 Pre 혹은 Post에서다양한이벤트를잡아낼수있는 Listeners 관리환경을제공 49 Page l 49
12. egovframe Template Project(1/2) 2. 구현도구 유형별템플릿프로젝트를자동생성하는기능을제공 Simple Homepage - 메인페이지, 사용자관리, 공지사항관리, 게시판관리, 안내관리기능제공 Portal Site - 포털공지사항관리, 사용자관리, 권한관리, 포털초기화면관리, 포털공지사항관리, 포털 FAQ관리, 포털행사참가관리기능제공 Enterprise Business - 메인페이지, 업무사용자관리, 공지사항관리, 게시판관리, 권한관리, 메뉴관리기능제공 Common All-in-one - 공통컴포넌트 251종의모든기능제공 50 Page l 50
12. egovframe Template Project(2/2) - Batch 2. 구현도구 배치템플릿생성도구를실행한후, 입력리소스유형과실행유형의선택만으로총 6 종류의예제프로 젝트를생성 1 배치템플릿입력리소스유형선택 2 배치템플릿실행유형선택 배치실행작업생성절차 1 배치 Job Execution 정보를생성한다. 2 DataSource 정보를생성한다. 3 배치실행파일을생성한다. 3 프로젝트정보입력 4 실행가능한템플릿프로젝트생성 51 Page l 51
13. Debug(1/2) - Local Debugging 2. 구현도구 로컬또는원격으로실행중인프로그램에서오류를발견하고진단할수있는디버거제공 중단점설정 디버깅중프로그램의의심되는부분을집중적으로분석하기위해 Break point 를설정해디버깅포인트를지정한부분을하이라이트 스텝단위진행 프로그램을한스텝씩진행하면서프로그램의실행흐름과 내부상태를확인 스텝필터링 필터링대상프로그램의경우 Step Over 와같이동작하고, 필터링대상이아니면 Step Into 와같이동작한다. Debug View 의 Use Step Filters 버튼을눌러홗성화 Evaluating Expressions 수행중인프로그램을중지시키지않고 상태를확인할수있는기능을제공 Variables View Variables View 를통해메소드에서 사용중인변수값의상태를확인할수있는기능지원 52 Page l 52
13. Debug(2/2) - Remote Debugging 2. 구현도구 원격컴퓨터의 WAS(Jboss, JEUS, WebLogic) 에서실행되는어플리케이션을디버깅 디버깅환경설정 WAS 환경설정파일에 -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n server 를정의 (Jeus 서버기준 ) 절차 1. 먼저위의환경설정으로원격지서버를가동하고해당 Java 프로그램을원격서버에 Deploy한것을전제로한다. 2. 메뉴 >Run > Debug Configurations 클릭. 3. Remote Java Application 에서마우스오른쪽버튼을클릭하여 NEW 를실행 4. Connection Properties 를입력하고적용 ( Apply ) 한뒤 Debug 버튼클릭 5. 웹브라우저에서해당프로그램을실행하면디버깅이진행된다. * 디버그방법 (BreakPoint 등 ) 은 로컬디버깅과동일하다. 53 Page l 53
14. Code Inspection 2. 구현도구 정의된규칙을기반으로소스코드를검사하여, 오류및위험요인을식별하여알려주는기능제공 절차 1. eclipse 개발환경의 Package Explorer에서프로젝트의컨텍스트메뉴에서 PMD>Check Code With PMD를클릭한다. 2. 소스코드검사가실행되며실행후 PMD Perspective에서검사결과를확인한다. 54 Page l 54
15. Server Connection Management(1/3)( 서버연동정보관리 ) 2. 구현도구 egovframe 통합메뉴를통해 SVN Repositories View를연동하는기능을제공한다. SVN Repositories View 1. egovframe 통합메뉴 > Configuration > Server Connection Management > Show SVN Repositories View 를클릭한다. 2. 화면하단에 SVN Repositories라는 View가열리는것을확인한다. 55 Page l 55
15. Server Connection Management(2/3)( 서버연동정보관리 ) 2. 구현도구 Nexus Repository를등록, 수정및삭제하는기능을제공 Nexus(Preferences) 1. egovframe 통합메뉴에서 egovframe > Configuration > Server Connection Management > Nexus를선택한다. 2. Preferences 페이지에서 New 버튼을클릭하여새로운 Nexus repository를추가한다. 56 Page l 56
15. Server Connection Management(3/3)( 서버연동정보관리 ) 2. 구현도구 등록된 Nexus Repository 정보를대상프로젝트에적용하는기능을제공 Nexus(Properties) 1. 대상이되는프로젝트를선택후우클릭하여 Properties를선택한다. 2. Properties 페이지에서 egovframe > Nexus를선택한다. 3. 기설정된 Nexus 정보중대상프로젝트에서사용할 repository를선택 ( 체크박스 ) 후 OK버튼을클릭하여적용한다. 등록된 Nexus Repository가없을경우, Configure Workspace Settings 링크를클릭하여나타나는 Preferences 창에서 Nexus Repository를추가할수있다. 57 Page l 57
1. Maven 개요 (1/2) 3. 개인빌드 불필요한설정을최소화한다는개념아래 Ant 와같은빌드기능을제공할뿐아니라구조화된빌드기 능을통해 learning curve 및재사용성을향상시킴 Maven 특징 Maven 장점 Maven 단점 뛰어난의존성관리의존성자동업데이트저장소를통한라이브러리일괄관리 모든프로젝트에걸쳐쉽게적용가능한일관적인사용법 라이브러리및메타데이터저장을위한지속적으로확장되고있는저장소 쉽게작성가능한플러그인을통한확장성 동시에다수의프로젝트핸들링할수있는쉬운설정기반의메커니즘 repository 관리의불편함 - Maven 프로젝트의급속한발전으로 central repository 가제공하는라이브러리들이급속히증가하고있으나아직 3 rd 파티라이브러리등미제공라이브러리들이있음 pom.xml 파일관리 - 메이븐프로젝트관리에대한모든내용이 pom.xml 파일에담기게되므로길고장황하게될수있음 프로젝트에특화된복잡한빌드기능제약 - 메이븐프로젝트특성상소프트웨어빌드에통용되는라이프사이클을제공하고있어세부항목또는특화된빌드환경에대한지원이미약함 간단한설정을통한배포관리 Java, C++ 등다수의프로그래밍언어지원 59 Page l 59
1. Maven 개요 (2/2) 3. 개인빌드 의존성관리, 라이브러리관리, 빌드생명주기및단계객체모델을갖는프로젝트관리도구로표준화 된빌드기능뿐만아니라리포팅및 documentation 생성기능등을제공 Maven 아키텍처 POM.XML Project Object Model Dependency Management Model Repositories (local and remote) Project life cycle and phases Plugins Source files Generated files Resources Binaries Packaged libraries 프로젝트객체모델 (POM): 메이븐엔진내장 + POM.XML 파일에서선언적으로제공 의존성관리모델 : 로컬및리모트저장소를이용하여관리 빌드생명주기와각단계 : 잘정의된단계들과빌드사이클에따라플러그인들을조율 60 Page l 60
2. Maven 디렉터리구조 3. 개인빌드 Best practices 을기반으로정규화된디렉터리구조를제공하고있으며모든소스파일들은 /src 디렉터리밑에빌드된 output 은 /target 디렉터리밑에위치함 Maven 표준디렉터리구조디렉터리 / 파일설명 /pom.xml 프로젝트객체모델. 해당프로젝트에대한전반적인정보를갖는다. /src/main/java Java 소스파일위치 /src/main/resources 배포할리소스, XML, properties, /src/main/webapp 웹어플리케이션관련파일위치 (WEB-INF, css 등 ) /src/test/java 테스트케이스 java 소스 /src/test/resources 테스트케이스리소스 /target 빌드된 output 이위치하는디렉터리 61 Page l 61
3. 빌드 Lifecycle (1/2) 3. 개인빌드 메이븐빌드는소프트웨어프로젝트의핵심적인빌드라이프사이클개념을따르고있으며빌드부터 artifact 의배포까지의라이프사이클을정의하고있음 빌드생명주기설명 Maven2 라이프사이클단계 (phase) 생명주기단계 validate 설명 현재설정과 POM 의내용이유효한지확인 generate-sources 코드생성기가이다음의단계들에서컴파일되고처리할소스코드를생성하기시작하는순간 compile test package 소스코드를컴파일한다. 컴파일된클래스들은타깃디렉터리트리구조에저장된다. 컴파일된단위테스트를실행하고그결과를표시한다. 실행가능한바이너리파일들을 WAR 나 JAR 같은배포용압축파일로묶는다. install 압축파일을로컬메이븐저장소에추가한다. deploy 압축파일을원격메이븐저장소에추가한다. $mvn compile 62 Page l 62
3. 빌드 Lifecycle (2/2) 3. 개인빌드 이클립스에서빌드라이프사이클에서정의한각단계들실행하기 메이븐프로젝트 -> Run As -> Maven build.. Goals: clean install 63 Page l 63
4. Maven 플러그인 (1/2) 3. 개인빌드 메이븐은대부분의빌드작업시에플러그인을활용하며메이븐엔진이생명주기단계들과플러그인을 바인딩시켜빌드작업을컨트롤함 Maven Plugins 플러그인플랫폼으로써의메이븐 확장용이 자주사용하는플러그인들을모아패키징한상태로배포 대부분의개발작업시에추가플러그인불필요 단계 Plugin 설명 compile test 소스코드컴파일 단위테스트실행 package maven-jar-plugin 컴파일된바이너리파일들 로부터 jar 패키지생성 emma maven-compilerplugin maven-surefireplugin maven-emmaplugin Code coverage report 생성 가용한 Maven 플러그인매트릭스 64 Page l 64
4. Maven 플러그인 (2/2) 3. 개인빌드 pom.xml 에서의메이븐플러그인선언예제 65 Page l 65
5. 의존성관리메커니즘 3. 개인빌드 POM 에서선언적인 dependency 설정으로빌드및배포시에필요한라이브러리들을관리하고로컬 및원격저장소에서선언된라이브러리들을다운로드받아사용함 의존성설정 의존성분석순서 1. 로컬저장소에서의존성확인 2. 원격저장소리스트에서의존성확인 3. 1 과 2 가실패하면의존성에러보고 의존성 scope compile: 기본값으로모든클래스패스에서사용가능 provided: 컴파일과유사하나패키지에는포함되지않는다. 컨테이너나 JDK 에서제공. 예 ) Servlet API for web apps runtime: 컴파일러가아닌런타임시에만사용됨예 ) JDBC dirvers test: 테스트단계에서만유용함예 )Junit system: provided 와유사하나개발자가직접 JAR 파일을제공해야함. 저장소에서지정한 dependency 를찾지않는다. 의존성선언항목 1. <groupid>: 부분적인프로젝트나조직에서의라이브러리집합을식별하기위해제공 2. <artifactid>: 프로젝트의실제이름으로 groupid 와합쳐져프로젝트식별에쓰임 3. <version>: 선언한의존성 artifact 의버전으로프로젝트내에서사용하는 artifcat 의일관성을추구할수있음 66 Page l 66
6. Maven Repository 3. 개인빌드 artifact 들의저장소로로컬및리모트 repository 로구성되며프로젝트는 pom.xml 에서선언한 dependency 들을저장소로부터불러와서사용함 메이븐저장소구조 Nexus 연동 로컬 repository 는 artifact 들을로컬파일시스템에 cache 하는기능으로리모트 repository 에서다운로드받아 artifact 들을저장하고관리한다. 리모트 repository 는주로 HTTP 서버로 3rd 파티에서제공하는 artifact 들을제외한거의모든 artifact 들을제공한다. Nexus 는메이븐 repository 관리툴로리모트 repository 의단점을보완하고 maven 프로젝트의사용편의성을높이기위해사용된다. 각개발자들은리모트 repository 가아닌 Nexus 에서 dependency 을다운받아사용함으로써프로젝트내의 artifact 버전등의일관성을유지하고 3rd 파티 artifact 등라이브러리를효과적으로공유할수있다. 67 Page l 67
7. 프로젝트객체모델 (POM) (1/2) 3. 개인빌드 프로젝트의구조와내용을설명하고있으며 pom.xml 파일에프로젝트관리및빌드에필요한환경설 정, 의존성관리등의정보들을기술함 POM.XML Project Information Maven Environment Name Description Prerequisites Repositories URL Inception Year Profiles Repositories Artifact Group Id Version Dependencies Artifact Id Profile(activation, ) Plugin Repositories Distribution Management Environment Information Dependencies Dependency Mgt. Issue Management Mailing Lists Build Settings CI Management SCM Properties Packaging Build Reporting 프로젝트의세부메타데이터정보를포함 버전및설정관리, 빌드환경, 라이브러리저장소및의존성 68 Page l 68
7. 프로젝트객체모델 (POM) (2/2) 3. 개인빌드 프로젝트의 pom.xml 파일에빌드정보들을기술함 <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>egovframework.dev.com</groupid> <artifactid>egovframework-dev-com</artifactid> <version>1.0</version> Artifact 정보 <packaging>war</packaging> <name>egovframework-dev-com Maven Webapp</name> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.4</version> <scope>test</scope> 의존성관리 </dependency> </dependencies> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <configuration> 플러그인선언 <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </project> 69 Page l 69
8. Maven 이클립스통합 : m2eclipse 3. 개인빌드 m2eclipse 는 Eclipse IDE 에서 Maven 을사용하기위한플러그인으로 Maven 프로젝트생성뿐아니 라 Maven 빌드와 WTP(Web Tools Project) 의통합등다양한기능을제공함 m2eclipse 특징 메이븐프로젝트생성및불러오기 의존성관리및의존성통합 dependency 자동다운로드및업데이트 리모트 repository 탐색기능제공 POM 파일관리화면제공및 dependency list 에대한자동업데이트 다양한 SCM 저장소로부터메이븐프로젝트 check out 이클립스에서메이븐멀티모듈프로젝트생성기능제공 Web Tools Project (WTP) 와의연동 aspectj Development Tools (AJDT) 과의연동 Subversion 플러그인과의연동 70 Page l 70
8. Maven 이클립스통합 : m2eclipse 프로젝트생성 (1/2) 3. 개인빌드 배포된 egovframework Archetype 을이용한메이븐프로젝트생성예 Maven 프로젝트생성 Maven 프로젝트의 archetype 선택 egovframework 에서는메이븐프로젝트생성을위해두가지방식을제공하고있음 1. 구현도구에서제공하는 Perspective 를이용한 Maven 프로젝트생성 2. Maven archetype 을이용한프로젝트생성 : Archetype is a Maven project templating toolkit. - 프로젝트에특화된 pom.xml 및 resource 들을포함한 Maven 프로젝트생성 Maven Archetype 종류 1. 표준 Archetype maven-archetype-j2ee-simple maven-archetype-quickstart maven-archetype-portlet 2. egovframework Archetype egovframework-maven-webapp * Maven 제공 Archetype 종류 : http://repo1.maven.org/maven2/org/apache/maven/archetypes/ configure.. 버튼클릭으로제공된 archetype 을선택 71 Page l 71
8. Maven 이클립스통합 : m2eclipse 프로젝트생성 (2/2) 3. 개인빌드 egovframework Archetype 을이용한 Maven 프로젝트 Spring 4.0.9 기반의 dependency 들을기본으로제공함 72 Page l 72
8. m2eclipse Maven 기본기능 3. 개인빌드 m2eclipse 에서제공하는메뉴에서메이븐설정및연동기능을호출할수있음 m2eclipse Maven 기능 Update Dependencies 기능 pom.xml 에 dependency 를추가하고 update dependencies 메뉴를선택하면저장소에서해당 artifact 를찾아프로젝트에 Cache 함 73 Page l 73
8. m2eclipse Maven 기본빌드기능 3. 개인빌드 (Maven) m2eclipse 는이클립스의 Run As 메뉴에 Maven 기본생명주기단계를추가하여빌드편의성을제공함 m2eclipse Maven 빌드기능 Maven install 기능 Maven install 메뉴를선택하여생명주기의각단계를실행하고프로젝트를패키징하여로컬 repository 에저장함 74 Page l 74