잊지 않겠습니다.

* 사내 강의용으로 사용한 자료를 Blog에 공유합니다. Spring을 이용한 Web 개발에 대한 전반적인 내용에 대해서 다루고 있습니다.



이번 장에서는 전자정부 표준 프레임워크에 대해서 알아보도록 하겠습니다.

전자 정부 표준프레임워크는 국가 정보화 투자 효율성 제고, 중소 SI 경쟁력 확보, 선진 국가정보화 추진 기반환경의 제공이라는 목적하에 2007년 12월부터 시작하여 2010년 11월까지 총 3단계에 걸쳐 사업이 진행된 결과입니다. 
최종적으로는 효율적 운영에 필수적인 "운영환경" 및 47종의 공통 컴포넌트를 선정하고 신규 사업 및 고도화 사업을 대상으로 점진적 확대 적용을 하고 있는 추세입니다. 당장 정부쪽 SI 사업은 모두 이 전자정부 표준 프레임워크를 통해서 구축, 운영되고 있습니다. 국가대표포털, 기업 경쟁력 지원 등 총 69개의 공공,민간 정보화 사업(89개 System)에 적응되었습니다. (2011년 2월 기준) 그리고 정부 소프트웨어 기술성 평가 기준에 표준 프레임워크 도입여부를 반영함으로서 표준프레임워크 도입을 하지 않으면 정부측 SI를 할 수 없게 막아버린 효과를 가져왔습니다.


해야지 됩니다. 지금 이 바닥에서 먹고 살려면요. ㅋ



표준 프레임워크의 개발 - 개념

전자 정부 프레임워크의 구축 이유 : 정보 시스템 개발을 위해 필요한 기능 및 아키텍쳐를 미리 만들어 제공함으로써 효율적인 애플리케이션 구축을 지원하고 있습니다.
개발프레임워크는 일련의 문제 해결을 위한 추상화된 디자인을 구현한 클래스들의 집합으로서 클래스 보다는 큰 규모의 재사용을 지원하는 것을 목적으로 가지고 있습니다. 라이브러리와 개발 프레임워크의 차이는 어플리케이션의 틀과 구조를 프레임워크에서 제어하며, 프레임워크 위에서 개발자의 코드가 동작하는 차이가 있습니다. 반면에 라이브러리는 개발자의 코드 안에서 재 사용되는 것을 총칭합니다.






정부가 기대하는 전자 정부 프레임워크의 효과는 다음과 같습니다.

  1. 전자 정부 서비스의 품질 향상
  2. 정보화 투자 효율성의 향상
  3. 대/중/소 기업이 동일한 개발기반 위에서 공정경쟁을 한다.

라는 효과를 표방하고 있습니다. 개인적으로는 3번째인 대/중/소 기업이 동일한 개발기반 위에서 공정 경쟁을 한다는 것이 인상적인데요. 공정 경쟁이라는 것이 어떤 것인가.. 라는 생각은 조금 하게됩니다. 다행인 것이 예전의 my platform과 같은 기업 독자적인 framework를 따로 공부를 해야지 되는 상황은 조금 피하게 된 것 같습니다.



표준 프레임워크의 개발

실행, 개발, 운영 등 4개의 환경과 13개의 서비스 그룹, 그리고 54개의 서비스로 구성. 대기업/중소기업 대상 온라인 설문과 인터뷰 및 자료조사를 통해 구축되었습니다. 구축 과정을 보시면 아시겠지만, 설문조사를 기반으로 개발되었습니다. 현장에서 주로 사용되고 있는 open source framework가 무엇인지에 대한 설문 조사 결과가 표준프레임워크이다. 라고 할 수 있습니다. 다음은 각 open source의 선정 기준입니다.






표준 프레임워크의 개발 범위

표준 프레임워크의 개발 범위는 다음과 같습니다.





Open source framework & library

그리고, 선정된 Open source 및 Solution은 다음과 같습니다. (2010년 8월 기준)
레이어서비스명open sourcedescriptionurl
화면처리ajax supportAjax Tags 1.5jquery로 인하여 거의 사용되지 않음http://sourceforge.net/projects/ajaxtags/?source=navbar
InternationalizationSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
MVCSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
SecurityApache Commons Validator 1.3
UI Adaptor선정하지 않음
업무처리Process ControlSpring Web Flow 3.0http://springsource.org
Exception HandlingSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
데이터 처리Data AccessiBatis SQL Maps 2.3
Data SourceSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
ORMHibernatehttp://www.hibernate.org
TransactionSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
연계 통합Naming Service SupportSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
Integration Service선정하지 않음
Web Service InterfaceApache CXF 2.2
공통 기반AOPSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
CacheEhcache
Compress/DecompressApache Commons Compress 1.0
Encryption/Decryptionjava simplified encrypion (jasypt) 1.5
ExcelApache POI 3.0Excel File Handling
File HandlingJakarta Commons VFS 1.0
File Upload/DownloadApache Commons FileUpload 1.2
FTPApache Commons NET 2.0
ID Generator선정하지 않음UUID 생성 기능 개발
IoC ContainserSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
LoggingLog4j 1.3
MailApache Commons Email 1.1
Marsharling/unmarsharlingCastor 1.2, Apache XML Beans 2.4
PropertySpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
ResourceSpring 2.52012년 8월 Spring 3.1로 upgradehttp://www.springsource.org
SchedulingQuartz 1.6
Server SecuritySpring Security 2.0http://www.springsource.org
String UtilsJakarta Regexp 1.5
XML ManipulationApache Xerces2 2.9, JDOM 1.0
MobileMobile WebJquery Mobile 1.22012년 8월 선정

개발 Tool

EditorEclipse
AmaterasUML
AmaterasERD
DebugEcliopse
Unit TestJUnit
Easy Mock
Dbunit
emma
ant
maven
Buildmaven
hudson
jenkins
Configuration managementSVN
Change ManagementjTrac

보시면 아시겠지만, 35개의 open source component (개발 환경 제외)중에서 10개가 Spring입니다. 그리고 나머지 기능들에서 Spring 기능을 사용한 Web Flow와 Security를 합치면 1/3이 Spring이라고 할 수 있습니다. 거기에다가 Excel, Encrypt/decrypt와 같은 일반 기능성 component를 제외시키면 그냥 정부 표준 프레임워크는 spring framework를 사용해서 만드는 것이다. 라고 할 수도 있습니다. 이제 java를 알아도 개발을 하지 못하고, spring을 알아야지만 개발을 할 수 있는 상황이 되어버렸습니다.


정부 표준 프레임워크의 특징

  • 5개 서비스 그룹, 34개 서비스로 구성
    • 화면처리, 업무처리, 데이터처리, 연계통합, 공통기반의 5개 서비스 그룹으로 구성
    • MVC, IoC 컨테이너, AOP, Data Access, Integration 등의 핵심 서비스를 제공
  • 전자정부 프로젝트에 최적화된 오픈 소스 소프트웨어 선정
    • 34개 서비스 별 최적의 오픈 소스 소프트웨어 선정 과정을 통해 32개 오픈 소스 소프트웨어를 선정
  • 경량화된 개발프레임워크로서 사실상 업계 표준에 가까운 Spring 프레임워크를 적용
    • J2EE 표준을 준수하는 Spring 프레임워크를 채택
    • 특정 업체의 WAS나 DBMS에 독립적인 환경을 제공
  • DI 방식의 의존 관계 처리
    • Dependency Injection을 통해 개체나 컴포넌트 간의 의존성을 정의함으로써 변경용이성과 재사용성을 향상
  • AOP 지원
    • 트랜잭션, 예외처리와 같은 공통 관심 대상을 분리하여 정의함
  • MVC Model2 아키텍처 구조 제공 및 다양한 UI 클라이언트 연계 지원
    • Spring MVC를 기반으로 하며, 다양한 UI 클라이언트 연계를 위한 인터페이스를 정의함
  • 전자정부 개발프레임워크 표준 연계 인터페이스 정의
    • 표준 연계 인터페이스를 정의하여 연계 솔루션에 대한 의존성을 배제하고 독립적인 어플리케이션 개발이 가능함

이와 같이 정부 표준 프레임워크가 어떻게 구성이 되어있는지에 대해서 간략하게 알아봤습니다. 그럼 다음 장에서는 정부 표준 프레임워크를 이용한 개발 환경의 구성을 해보도록 하겠습니다.


Posted by Y2K
,