중소기업 경쟁력 강화, 전자정부프레임워크(eGovFramework)

    전자정부프레임워크(eGovFramework)가 등장하게 전(약 10년전)의 우리나라 SI는 그야말로 삼국지와 춘추전국시대를 합친 난장판같은 모습이었다. 필자는 당시 솔루션 회사를 다니면서 SI를 수행하였는데 한달에 하나꼴로 프레임워크를 새로 공부했던 것으로 기억한다.


    수많은 업체들이 자체 프레임워크를 만들고 있었고, 회사에는 프레임워크팀까지 별도로 있을 정도였다. 매번 300~400페이지 가까이 되는 독자적인 프레임워크를 매뉴얼로 봐가며 익혀야 했고 이놈의 프레임워크는 버전 업을 할때마다 개발자들을 괴롭혔다. (갑자기 잘 만들어진 소스가 버전업으로 인해서 안 돌아갔으니...)


    당시 프레임워크는 스트럿츠(Struts) 1 혹은 2, 그리고 스프링(Spring) 2.x 등에서 필요한 부분만 빼와서 독자적인 프레임워크를 많이들 구성하였는데 정말 공부하는데 환장할 노릇이었다. 삼성 SDS, LG CNS, SK C&C와 같은 거대한 3대 SI 업체들 역시 자체적인 프레임워크를 가지고 있었지만(물론 지금도 가지고 있지만) 그나마 이 업체들과는 자주 일하기 때문에 개발자들 역시 3대 업체가 아니면 타 회사 프로젝트에 들어가는걸 꺼려 하였었다.


    마치 삼국지같던 프레임워크 3파전


    프레임워크 전쟁에서 압도적인 지지를 받으며 선봉에 서게 된 3대 SI 업체를 보면서 국가는 쏠림 현상에 위기를 느낄 수 밖에 없었다. 갑 회사(공무원들, 대기업)는 물론이며, SI 업체들마저 3대를 선호하는 모습으로 인해서 국가는 칼을 뽑으며 시장에 개입하게 되었는데 그것이 바로 전자정부프레임워크이다.


    전자정부프레임워크는 3대 SI 업체들이 주축(물론 국가가 시켰지만)이 되어서, 만든 프레임워크이다. 처음에는 많은 업체들이 "또 새로운 거 배워야 하는건가?"라며 한탄 하였지만, 지금은 이거 하나만 배우면 모든 SI는 걱정 없기 때문에 필자는 국가의 올바른 개입이라 생각한다. 게다가 공공기관은 서로간에 연동을 해야 하기 때문에 동일한 프레임워크를 써야 한다 사실 전자정부프레임워크는 3대 SI 시대에서 벗어난 것과 더불어서 국가 입장에서도 꼭 필요한 프레임워크이다.



    공공부문 정보화 사업 표준, 전자정부 프레임워크

    개념

    - 전자정부 서비스의 품질향상 및 정보화 투자 효율성 향상을 위해 응용 SW의 구성기반 및 필요한 기본 기능을 제공하는 프레임워크



    등장배경 및 목적


    개방형 표준 준수

    - 오픈 소스 기반의 범용화되고 공개된 기술의 활용, 특정 사업자에 대한 종속성 배제(Apache License, Version 2.0)


    상용 솔루션 연계

    - 상용 솔루션과 연계가 가능한 표준을 제시하여 상호운용성 보장


    표준화 지향

    - 민.관.학계로 구성된 자문협의회를 통해 국가적 차원의 표준화 수행


    변화 유연성

    - 각 서비스의 모듈화로 교체가 용이하며 인터페이스 기반 연동으로 모듈간 변경영향 최소화


    다양한 환경제공

    - Eclipse 기반의 모델링(UML,ERD), 에디팅, 컴파일링, 디버깅 환경 제공 


    모바일 환경 지원

    - 모바일 환경을 위한 모바일 웹(UX/UI) 및 하이브리드 앱 지원






    전자정부 프레임워크의 적용 효과

    - 핵심자재를 모듈화하는 건설/건축 분야 기법과 유사


    관점

    적용전

    적용후

    중복 개발

    정보화사업별 동일한 기능들의 중복 개발 공통 컴포넌트 재사용으로 중복 개발 감소(예산 절감)

    사업자 종속성

    기술 종속으로 선행 사업자의 의존도 높음 표준화된 개발기반으로 사업자 종속성 해결

    기업 경쟁력

    프레임워크 미 보유업체는 경쟁 불리 무상제공으로 중소기업 경쟁력 강화

    시스템 연계

    정보시스템간 상호 연계 시 많은 기간과 인력 소요 표준화된 연계모듈 활용으로 상호운용성 향상

    유지보수

    개발표준 미흡으로 유지보수 어려움 개발표준에 의한 모듈화로 유지보수 용이



    전자정부프레임워크 구성요소


    구분

    기능 역할

    공통컴포넌트

    - 전자정부 사업에서 응용SW 개발 시 공통적으로 활용하기 위하여, 재사용이 가능하도록 개발한 어플리케이션의 집합

    개발환경

    - 전자정부 업무 프로그램의 개발에 필요한 환경 제공

    실행환경

    - 공통모듈등 업무 프로그램 개발시 화면,서버 프로그램, 데이터개발, 배치처리기능 개발을 표준화가 용이하도록 지원하는 응용프로그램환경

    관리환경

    - 개발프레임워크 및 공통서비스를 각 개발 프로젝트에 배포 및 관리 모듈

    운영환경

    - 실행환경에서 운영되는 서비스를 운영하기 위한 환경제공(모니터링, 배포, 관리시스템 등)

    - 배치환경을 운영하기 위한 환경제공(배치실행, 스케줄링, 결과모니터링 등)

    모바일 디바이스 API

    - CoreAPI : 모바일 하이브리드 어플리케이션에서 모바일 디바이스 자원에 대한 직접적인 접근과 활용이 가능한 다양한 API 제공

    - 가이드 어플리케이션() : 디바이스 API를 손쉽게 접근할 수 있도록 제공하는 디바이스 API의 활용 예제

    모바일 디바이스 API

    실행환경

    - 디바이스 어플리케이션이 웹 리소스 기반으로 구현 및 실행될 수 있도록 지원하는 응용 프로그램 환경 디바이스API, 자바스크립트 프레임워크, 하이브리드 프레임워크 등

    모바일 디바이스 API
    개발환경

    - Android 기반환경에서의 디바이스 어플리케이션 개발을 위한 Eclipse 플러그인과 iOS 환경에서의 개발을 위한 Xcode내의 프레임워크 프로젝트로 구성



    전자정부프레임워크 서비스 구조

    - 전자정부 표준프레임워크 실행환경은 7개 서비스 그룹으로 구성되며 38개 서비스를 제공



    화면처리

    - 업무처리 서비스와 사용자간의 인터페이스를 담당하는 서비스로 사용자 화면 구성 및 사용자 입력 정보 검증 등의 기능을 지원

    - Ajax Support, Internationalization, MVC, Security, UI Adaptor


    모바일 화면처리

    - 모바일 디바이스에 최적화 된 모바일 웹의 사용성과 편의성 증대를 위한 사용자 경험 기능을 제공

    - 모바일 UX 컴포넌트 (15종), Button, Panel, Internal/External Link, Label/Text, Tabs, Form, Menu, Processing Dialog/Bar, Dialog,  Grid View, Table/List View, Date/Time Picker, Check/Radio, Icon, Selector/Switches


    업무처리

    - 업무 프로그램의 업무 로직을 담당하는 서비스로 업무 흐름제어, 트랜잭션 관리, 에러 처리 등의 기능을 제공

    - Process Control, Exception Handling


    데이터처리

    - 업무 프로그램에서 사용할 수 있도록 데이터에 대한 CRUD 기능을 지원

    - Data Access, Data Source, ORM, Transaction


    배치처리

    - 일괄 데이터 처리를 위한 설정 및 실행 기능을 제공

    - Job Configuration, Step Configuration, ItemReader/ItemWriter, Job Execution, Step Execution, Tasklet, Job  Repository, Job Runner, Job Launcher, History Management, Scalability, Sync / Async Processing, Parallel Processing, Pre/Post Processing, Skip/Repeat/Retry


    연계통합

    - 타 시스템과의 연동기능 지원

    - Naming Service, Web Service, Integration Service


    공통기반

    - 실행환경 서비스 간에 공통적으로 사용되는 기능을 제공

    - AOP, Cache, Compress/Decompress, Encryption/Decryption, Excel, File Handling, File Upload/Download, FTP, ID Generation, IoC Container, Logging, Mail, Marshalling/Unmarshalling, Object Pooling, Property, Resource, Scheduling, Server Security, String Util, XML Manipulation



    버전별 구성

    3.8 (2019년 2월 공개)

    • 실행환경 적용 오픈소스SW 업그레이드 반영 (Spring Framework 4.2.4 -> 4.3.16)
    • 실행환경 오픈소스 버전 변경(Spring Security, myBatis, Log4j 등)
    • 실행환경 eGovFrame Crypto 간소화 서비스 추가
    • 개발환경 오픈소스 SW 업그레이드 반영 (Eclipse 4.6.3 Neon.3 -> 4.7.3 a)
    • 개발환경 공통컴포넌트 개선 251종 all-in-one 템플릿 추가
    • 공통컴포넌트 실행환경 3.8.0 적용
    • 공통컴포넌트 3.8.0 개선 251종(실행환경 v3.8.0, 신규 CSS 디자인, Servlet v3.1, MyBatis, 국제화, 시큐어코딩 적용)


    3.7 (2018년 3월)

    • 실행환경 적용 오픈소스SW 업그레이드 반영 (Spring Framework 4.1.2 -> 4.2.4)
    • 실행환경 오픈소스 버전 변경(Spring Security, Sprng Batch, Log4j, Apache CXF)
    • 실행환경 eGovFrame Batch 신규 기능 18종 추가
    • 개발환경 오픈소스 SW 업그레이드 반영 (Eclipse 4.5.2 -> 4.6.3 Neon.3)
    • 개발환경 공통컴포넌트 개선 50종 템플릿 추가
    • 공통컴포넌트 실행환경 3.7.0 적용
    • 공통컴포넌트 3.7.0 개선 20종(실행환경 v3.7.0, 신규 CSS 디자인, Servlet v3.1, MyBatis, 국제화, 시큐어코딩 적용)




    참고자료


    연관자료


    댓글

    Designed by JB FACTORY