본문 바로가기

교육 및 세미나/전자정부 표준 프레임워크

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

1.개발환경 개요

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

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

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

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

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

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

2. 구현도구

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

전자정부_개발프레임워크_구현도구.PNG

3.개인빌드

*Maven 개요

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

*Maven 특징

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

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

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

*Maven 아키텍처

maven_architecture.PNG

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

*Maven 디렉터리 구조

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

maven_directory.PNG