검수요청.png검수요청.png

"전자정부 표준 프레임워크"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
(특징)
(관리환경)
 
(사용자 7명의 중간 판 112개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[파일:전자정부 표준 프레임워크 로고.png|썸네일|300픽셀|'''전자정부 표준 프레임워크'''(eGovFrame; Electronic Government Standard Framework)로고와 글자]]
+
[[파일:전자정부 표준 프레임워크 로고.png|썸네일|200픽셀|'''전자정부 표준 프레임워크'''(eGovFrame) 로고]]
 +
[[파일:전자정부 표준 프레임워크 글자.png|썸네일|300픽셀|'''전자정부 표준 프레임워크'''(eGovFrame) 로고와 글자]]
 +
 
 
'''전자정부 표준 프레임워크'''(eGovFrame; Electronic Government Standard Framework)는 [[오픈소스]] 기반으로 대한민국 정부가 만든 [[표준 프레임워크]]이다. 각 업체별로 서로 다른 [[프레임워크]]와 [[컴포넌트]]를 사용함에 따르는 중복 개발을 막기 위해 정부 차원에서 단일한 표준 [[프레임워크]]를 개발하였다. 주로 [[스프링]] 프레임워크(Spring Framework)와 [[아이바티스]](iBatis) 프레임워크를 활용하여 개발했으며, [[아파치 라이선스]](Apache License)로 배포하고 있다. 2009년 6월 1.0 버전이 배포되었고, 2015년 6월 3.5 버전이 배포되었다. '전자정부 프레임웍'이 아니라 '전자정부 표준 프레임워크'가 올바른 표기법이다.
 
'''전자정부 표준 프레임워크'''(eGovFrame; Electronic Government Standard Framework)는 [[오픈소스]] 기반으로 대한민국 정부가 만든 [[표준 프레임워크]]이다. 각 업체별로 서로 다른 [[프레임워크]]와 [[컴포넌트]]를 사용함에 따르는 중복 개발을 막기 위해 정부 차원에서 단일한 표준 [[프레임워크]]를 개발하였다. 주로 [[스프링]] 프레임워크(Spring Framework)와 [[아이바티스]](iBatis) 프레임워크를 활용하여 개발했으며, [[아파치 라이선스]](Apache License)로 배포하고 있다. 2009년 6월 1.0 버전이 배포되었고, 2015년 6월 3.5 버전이 배포되었다. '전자정부 프레임웍'이 아니라 '전자정부 표준 프레임워크'가 올바른 표기법이다.
 +
 +
==개요==
 +
개발 프레임워크는 정보시스템 개발을 위해 필요한 기능과 아키텍처를 미리 만들어 제공함으로써 효율적인 [[애플리케이션]] 구축을 지원한다. 전자정부 표준 프레임워크는 공공사업에 적용되는 개발프레임워크의 표준 정립으로 응용 [[소프트웨어]] 표준화, 품질 및 재 사용성 향상을 목표로 한다.<ref name="그린컴퓨터아카데미">그린컴퓨터아카데미, 〈[https://blog.naver.com/green_lsj/220549514772 웹프로그래밍, 자바기반의 전자정부 표준프레임워크]〉, 《네이버 블로그》, 2015-11-25</ref> 이를 통해 전자정부 서비스의 품질향상 및 정보화 투자 효율성 향상을 달성하고, 대기업 및 중소기업이 동일한 개발기반 위에서 공정 경쟁이 가능하게 된다. 표준 프레임워크는 기존의 다양한 [[플랫폼]]([[닷넷]], [[PHP]] 등) 환경을 대체하기 위한 표준은 아니며, [[자바]] 기반의 정보시스템 구축에 활용할 수 있는 개발·운영 표준 환경을 제공하기 위한 것이다.
 +
 +
전자정부 표준 프레임워크는 1) 국가적 표준화 지향, 2) 변화 유연성, 3) 편리하고 다양한 환경 제공, 4) 모바일 환경 지원, 5) 개방형 표준 준수, 6) 상용 솔루션 연계 등의 특징을 가지고 있다. 전자정부 표준 프레임워크는 민, 관, 학계로 구성된 자문협의회를 통해 국가적 차원의 표준화를 수행하고, 각 서비스의 모듈화로 교체가 용이하며 [[인터페이스]] 기반 연동으로 모듈 간 변경 영향을 최소화한다. 또한 이클립스 기반의 모델링([[UML]], [[ERD]]), 에디팅, 컴파일링, [[디버깅]] 환경을 제공하고 [[모바일]] 환경을 위한 [[모바일 웹]]([[UX]]/[[UI]]) 및 하이브리드 앱을 지원하며 [[오픈소스]] 기반의 범용화되고 공개된 기술의 활용으로 특정 사업자에 대한 종속성을 배제한다. 더불어 상용 솔루션과 연계가 가능한 표준을 제시하여 상호운용성을 보장한다.
 +
 +
전자정부 표준 프레임워크는 정보시스템을 개발하거나 운영할 때 필요한 기본 기능을 미리 구현한 것으로, 이를 기반으로 추가 기능을 개발하여 조립함으로써 전체 정보시스템을 완성할 수 있다. 건설/건축 분야에서 핵심자재를 모듈화하여 비용 및 공사 기간을 단축하는 기법과 유사하게 표준 프레임워크와 민원발급 게시판 공인인증을 모듈화하여 행정민원을 위한 시간을 단축할 수 있게 된다. 표준 프레임워크 적용 전에는 정보화 사업별 동일한 기능들이 중복으로 개발되었으나 표준 프레임워크 적용 후에는 공통 컴포넌트 재사용으로 중복 예산을 절감할 수 있게 된다. 또한 기술 족속으로 인해 선생사업자의 의존도가 높았던 현상들을 표준화된 개발기반으로 사업자 종속성을 해소한다. [[프레임워크]]를 보유하지 않은 업체는 경쟁에서 불리했으나 프레임워크 무상제공으로 중소기업 경쟁력이 향상되고, 정보시스템 간 상호 연계 시 소요된 많은 기간과 인력이 표준화된 연계 모듈의 활용으로 상호운용성이 향상된다. 뿐만 아니라 개발자 미흡으로 유지보수가 어려웠던 상황들이 표준 프레임워크를 적용함으로써 개발표준에 의한 모듈화로 유지보수가 용이해진다.<ref name="공홈">전자정부 표준프레임워크 공식 홈페이지 - https://www.egovframe.go.kr/</ref>
 +
 
==역사==
 
==역사==
* 2007년,2008년 : [[ISP]]을 수립,[[삼성 SDS]] [[LG CNS]],[[SK C&C]] 같은 대기업이나 [[티맥소프트]]같은 중소기업이[[JAVA]]기반으로한 표준프레임워크 실행, 개발 , 관리환경,공통컴포넌트172종의 1.0 버전을 발표했다
+
2009년 대한민국 행정안전부에서 국내 공공부문 국가정보화사업(전자정부) 자바 플랫폼 기반의 추진 시에 개발 프레임워크의 표준 정립으로 [[응용 소프트웨어]]의 표준화, 품질 및 재사용성을 향상을 목표로 하며 특정 업체의 종속성 심화와 사업별 공통 컴포넌트 중복 개발을 막기 위해 개발하여 [[아파치]] 라이선스 2.0으로 배포하고 있다. 2007년 12월에서 2008년 6월까지 정보화 전략계획(ISP)을 수립하였고 2008년 11월부터 2009년 11월까지 1, 2단계 구축사업을 추진하여 대기업([[삼성SDS㈜]], [[㈜엘지씨엔에스]], [[에스케이㈜ 씨앤씨]]) 및 중소기업([[티맥스소프트]] 등 6개)이 공동으로 자바 플랫폼 기반의 표준 프레임워크 실행/개발/관리환경 및 공통 컴포넌트 172종을 개발하여 1.0 버전을 발표하였다. 그 후 2010년 4월부터 11월까지 3단계 구축사업을 통해 공통 컴포넌트 47종을 구축하고 CMMI 인증을 획득하였고, 2011년 4월부터 11월까지 4단계 구축사업을 통해 오픈소스의 버전 업그레이드, 경량화, 모바일 프레임워크 등을 구축하고 2.0 버전을 발표하였으며, 배치 프레임워크를 포함한 2012년 5단계 구축사업이 완료되었다. 2017년 3월 22일 표준 프레임워크 버전 3.6.0이 배포되었다. 2017년 11월 1일 표준 프레임워크 버전 3.7.0이 발표되었다.<ref>〈[https://ko.wikipedia.org/wiki/%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80_%ED%91%9C%EC%A4%80%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC 전자정부 표준프레임워크]〉, 《위키백과》</ref>
* 2009년 : [[대한민국 행정안전부]]에서 국내공공부분에서 [[전자정부]] [[JAVA]]프로그램언어 기반의 프레임 워크 표준 정립으로  [[응용 소프트웨어]]의 표준화및 품질 재사용 향상을 위해서 특정 업체의 종속성 심화와 사업별 공통 컴포넌트 공통개발의 방지를 웨해 ([[아파치]]라이선스 2.0) 으로 배포되고있다.
+
{{다단2|
* 2010년,2011년 : 3단계 구축사업을 통해서 공통 컴포넌트 47종 구축과 [[CMMI]]인증을 획득하였고, 4단계 구축사업을 통해서 오픈소스 버전업글과  경량화,모바일 프레임을 구축 버전 2.0을 발표했다. 5단계 구축사업은 배치프레임워크까지 포함한다.
+
* 2009년 06월 : 표준 프레임워크 1.0 공개
 +
# 실행환경, 개발환경, 운영환경, 관리환경 및 공통 컴포넌트 공개
 +
* 2011년 11월 : 표준 프레임워크 2.0 공개
 +
# 표준 프레임워크 1.0의 오픈소스SW 업그레이드
 +
# 실행환경 핵심 및 선택 기능 분리 및<br>공통컴포넌트 의존성 최소화를 통한 경량화
 +
# 모바일 웹 서비스를 지원하기 위한 모바일 실행환경,<br>모바일 개발환경, 모바일 공통컴포넌트 확보
 +
# 보안성, 웹 표준 및 접근성 반영을 통한 표준준수 지원
 +
# 공통컴포넌트 생성 위저드 및 모바일 개발환경 기능 개선 및<br>적용 오픈소스SW 업그레이드 반영
 +
* 2012년 11월 : 표준 프레임워크 2.5 공개
 +
# 대용량 일괄처리를 위한 배치 프레임워크 추가
 +
# 모바일 하이브리드 앱 지원을 위한 모바일 디바이스 API 제공
 +
# 모바일 화면처리 적용 오픈소스SW 업그레이드 반영
 +
# 향상된 성능 및 안정화 지원
 +
* 2013년 06월 : 표준 프레임워크 2.6 공개
 +
# 개발환경 안정화 지원
 +
# 공통기반 오픈소스SW 업그레이드 반영
 +
# 데이터처리 신규 기능 추가를 통하여 데이터 서비스 개선
 +
# 구현도구 적용 오픈소스SW 업그레이드 반영
 +
* 2013년 12월 : 표준 프레임워크 2.7 공개
 +
# 모바일 화면처리 오픈소스SW 업그레이드 반영
 +
# 모바일 디바이스 API 오픈소스SW 업그레이드 반영
 +
# 공통컴포넌트 JFile 업로드/다운로드 컴포넌트 추가 및 패치 개선 수행
 +
* 2014년 06월 : 표준 프레임워크 3.0 공개
 +
# 오픈소스SW 39종 업그레이드 반영
 +
# 실행환경 신규기능 추가
 +
# 실행환경 적용 오픈소스SW 업그레이드 반영
 +
# 개발환경 적용 오픈소스SW 업그레이드 반영
 +
# 템플릿 프로젝트 실행환경 3.0 반영 등 개발환경 개선
 +
|
 +
* 2015년 06월 : 표준 프레임워크 3.5 공개
 +
# 실행환경 적용 오픈소스SW 업그레이드 반영
 +
# 실행환경 오픈소스 변경기능 수정
 +
# 개발환경 적용 오픈소스SW 업그레이드 반영
 +
# 템플릿 프로젝트 실행환경 3.5 반영 등 개발환경 개선
 +
# 공통컴포넌트 오픈소스 변경기능 적용 및 버그수정
 +
# 모바일 화면처리 오픈소스SW 업그레이드 반영
 +
# 모바일 디바이스 API 오픈소스SW 업그레이드 반영
 +
* 2017년 03월 : 표준 프레임워크 3.6 공개
 +
# 실행환경 적용 오픈소스SW 업그레이드 반영
 +
# 실행환경 오픈소스 버전 변경
 +
# 개발환경 오픈소스 SW 업그레이드 반영
 +
# 공통컴포넌트 실행환경 3.6.0 적용
 +
# 공통컴포넌트 3.6.0 개선 30종
 +
# Device API 가이드프로그램 10종 추가
 +
# Device API 오픈소스 업그레이드
 +
* 2018년 03월 : 표준 프레임워크 3.7 공개
 +
# 실행환경 적용 오픈소스SW 업그레이드 반영
 +
# 실행환경 오픈소스 버전 변경
 +
# 실행환경 eGovFrame Batch 신규 기능 18종 추가
 +
# 개발환경 오픈소스 SW 업그레이드 반영
 +
# 개발환경 공통컴포넌트 개선 50종 템플릿 추가
 +
# 공통컴포넌트 실행환경 3.7.0 적용
 +
# 공통컴포넌트 3.7.0 개선 20종
 +
* 2019년 02월 : 표준 프레임워크 3.8 공개
 +
# 실행환경 적용 오픈소스SW 업그레이드 반영
 +
# 실행환경 오픈소스 버전 변경
 +
# 실행환경 eGovFrame Crypto 간소화 서비스 추가
 +
# 개발환경 오픈소스 SW 업그레이드 반영
 +
# 개발환경 공통컴포넌트 개선 251종 all-in-one 템플릿 추가
 +
# 공통컴포넌트 실행환경 3.8.0 적용
 +
# 공통컴포넌트 3.8.0 개선 251종<ref name="츠키나미">츠키나미, 〈[https://blog.naver.com/losthk/220359576780 전자정부 표준 프레임워크 구성 및 버전별 내용]〉, 《네이버 블로그》, 2015-05-14</ref>
 +
}}
  
==특징==
+
==등장배경==
*상용 솔루션 연계가 가능하다.
+
* '''소프트웨어 패러다임의 변화'''
* 오픈소스 기반으로 특정사업자에 대한 종속성을 배제한다.
+
: 소프트웨어 패러다임은 변화하는 시대적 요구에 맞춰 빠르게 변화해 왔고 궁극적으로 그 변화의 방향은 재사용성 극대화에 맞추어져 왔다. 1940년부터 1960년까지는 [[하드웨어]] 중심의 시대로, 이해하기 쉽고 유지보수가 용이한 [[고급 프로그래밍 언어]] 및 환경이 요구되었다. 1970년대에 들어 프로그래밍 언어의 전성기가 찾아왔고, 1990년대는 복잡도를 증가시키고 시스템 간 통합을 어렵게 만드는 절차지향 [[프로그래밍]]의 방식을 대체할 새로운 개발 패러다임이 요구됐다. 그 후 2000년 직전, [[]]의 등장으로 객체 지향 중심의 시대가 열려 다양한 소프트웨어에 대한 수요가 증대하였으나 소프트웨어 개발 생산성 및 효율이 떨어지게 됐다. 객체지향 패러다임이 소프트웨어 모듈화를 제공했지만, 재사용성은 매우 떨어졌다. 현재는 컴포넌트와 프레임워크 기반 개발의 시대로, 대단위 프로젝트 진행에 있어 모든 컴포넌트를 하나하나 구입하거나 개발 적용시키는 것은 너무 많은 의사결정을 필요로 하였으며 이렇게 선택한 컴포넌트를 재조립하는 것 또한 매우 어렵다.<ref name="공홈"></ref>
*[[이클립스]] 기반의 모델링,[[디버깅]],[[컴파일링]]등의 편한 환경을 제공한다.
 
*기술발전에 따른 모듈교체가 용이하다.
 
*지속적인 의견수렴과 정보교환을 통한 국가적차원의 표준화
 
*실행환경을 필수적인 부분과 선택적 부분으로 분리하여 배포하므로 경량화된 환경을 구성한다.<ref>바다, 〈[https://blog.naver.com/james2021/220688676867 전자정부 표준프레임워크 설명]〉, 《네이버》, 2016-04-20</ref>
 
  
==활용==
+
* '''재사용 방식의 발전 방향'''
===해양수산과학기술진흥원(kimst)===
+
: 재사용을 극대화해주고 생산성, 확장성, 성능, 효과적인 유지보수를 지원해주기 위해 재사용 방식은 ‘소스 재사용 → 재사용 메소드 → 재사용 객체 → 디자인 패턴 → 프레임워크’와 같이 발전해 왔으며 궁극적으로 프레임워크가 등장하게 됐다.
*내부 업무시스템인 경영정보시스템,그룹웨어시스템을 교체하여 사용자 중심의 기능으로 업무 효율성이 높아졌다.
+
# 소스 재사용 : 초보적인 재사용 방식으로 과거에 유사한 문제를 코딩한 적이 있거나 아니면 비슷한 예제를 다른 소스에서 발견했을 때 해당 부분을 복사해서 사용했다. 이후에 JDK 버전이 바뀌어 동일한 기능을 제공하는 향상된 인터페이스가 나왔다고 하면, 이런 심플포맷을 사용한 A, B 클래스를 모두 변경해야 한다는 문제점이 있다.
*향후에도 경영혁신의 기반이 될 것이라며 확대할 계획이다.
+
# 재사용 메소드 : 복사/붙이기 방식과 동일한 코드가 여러 클래스에서 나오는 것을 지양하기 위한 방법으로 [[C 언어]]에서 하던 것처럼 자주 이용하는 기능을 [[라이브러리]]로 만들어 재사용하는 것이다. 메소드 재사용 방법은 동일한 작업 영역에서는 유용하게 사용될 수 있으나 작업 영역이 서로 다른 경우, 특정한 기능의 메소드를 사용하기 위하여 다른 작업 영역의 메소드를 사용한다면 유지보수 시 복잡해질 수 있다는 단점이 있다.
===아이온컴즈===
+
# 재사용 객체 : 앞의 재사용 방식들은 비단 자바뿐 아니라 다른 언어를 사용한 개발자들도 흔히 경험한 재사용 방법이다. 자바와 같은 [[객체 지향 언어]]에서 새로 소개되는 재사용 방식이 클래스를 통한 재사용이다. 이 경우 구조적인 객체만을 놓고 분석할 때는 이와 같이 수직적인 재사용 방식이 유용하나 상황적인 문제를 놓고 보았을 때 다른 접근 방식이 요구된다.
*전지정보프레임워크호환성 레벨 1을 휙득했다.
+
# 디자인 패턴 : 클래스의 재사용 방식이 객체의 수직적인 재사용에 초점을 맞추었다며 디자인 패턴은 상황적인 문제를 해결하여 주는 재사용 방식이다. 디자인 패턴은 전체 애플리케이션의 입장에서 본다면 시스템의 부분적인 문제를 해결하는 것에 불과하다는 문제점이 있다.
*공공시장영역까지도 안정적인 솔루션으로 공급하겠다 밝힘.
+
# 프레임워크 : 하나의 주어진 상황 문제를 어떻게 해결하는지를 보는 것은 협의의 디자인 패턴 또는 메커니즘이라면, 전체 프로그램을 어떻게 구성할 것인가를 생각하는 디자인 패턴이 바로 프레임워크이다. 프레임워크란 디자인 패턴과 같은 부분적인 해결책을 전체적인 관점에서 통합하여 애플리케이션의 설계 및 구현 틀을 제공하는 것으로, 건축설계사에서 기본 설계 템플릿이 있는 것처럼 프레임워크가 마련되면 애플리케이션 개발 시 시스템의 재사용도가 높아지게 되고 나아가 개발 기간과 리소스를 절감할 수 있다. 프레임워크란 반제품 상태의 성능 튜닝된 제품을 토대로 도메인 별로 필요한 서비스 컴포넌트를 만들어 삽입하는 형태로 시스템 구축을 도와준다. 이를 통해 기존 컴포넌트의 재사용성이 확대되고 성능 또한 보장받을 수 있다.<ref name="Hankyo">Hankyo, 〈[https://www.slideshare.net/Hankyo/01-69564834 01.표준프레임워크개요]〉, 《슬라이드셰어》, 2016-11-27</ref>
 +
 
 +
== 구성 ==
 +
전자정부 표준 프레임워크 각 구성요소의 기능 및 역할은 다음과 같다.
 +
 
 +
;* 공통컴포넌트
 +
[[파일:공통 컴포넌트.PNG|가운데|700픽셀]]
 +
 
 +
;* 표준 프레임워크
 +
[[파일:표준 프레임워크.PNG|가운데|700픽셀]]
 +
 
 +
전자정부 표준 프레임워크는 웹 기반 정보화시스템 구축 시 필요로 하는 애플리케이션 아키텍처, 기본기능 및 공통컴포넌트를 제공하는 표준 프레임워크로서 실행환경, 개발환경, 운영환경, 관리환경과 공통컴포넌트로 구성되어 있다. 구성 요소의 기능 및 역할은 다음과 같다.
 +
 
 +
* 실행환경 : 전자정부 사업에서 개발하는 업무 프로그램의 실행에 필요한 공통모듈 등 업무 프로그램 개발 시 화면, 서버 프로그램, 데이터 개발, 배치처리기능 개발을 표준화가 용이하도록 지원하는 응용프로그램환경이다.
 +
* 개발환경 : 전자정부 업무 프로그램의 개발에 필요한 환경을 제공한다. 데이터개발도구, 테스트자동화도구, 코드검사도구, 템플릿 프로젝트 생성도구, 공통컴포넌트 조립도구, 맞춤형 개발환경 구성도구, 서버환경관리도구, 모바일용 표준 소스코드 생성도구, 모바일용 템플릿 프로젝트 생성도구, 모바일용 공통컴포넌트 조립도구, 모바일용 맞춤형 개발환경 구성도구, 서버용 개발환경([[윈도우]], [[유닉스]] 계열)설치, 배치템플릿프로젝트 생성도구, 배치작업파일 생성도구, 배치실행파일 생성도구 등이 있다.
 +
* 운영환경 : 실행환경에서 운영되는 서비스를 위한 모니터링, 배포, 관리시스템 등의 환경을 제공하고, 배치실행, 스케줄링, 결과모니터링 등 배치환경을 운영하기 위한 환경을 제공한다.
 +
* 관리환경 : 개발프레임워크 및 공통서비스를 각 개발 프로젝트에 배포 및 관리하기 위한 모듈이다.
 +
* 공통컴포넌트 : 전자정부 사업에서 응용소프트웨어 개발 시 공통적으로 활용하기 위하여, 재사용이 가능하도록 개발한 애플리케이션의 집합이다.
 +
* 모바일 디바이스 API
 +
# 코어API(Core API) : 모바일 하이브리드 애플리케이션에서 모바일 디바이스 자원에 대한 직접적인 접근과 활용이 가능한 다양한 API를 제공한다.
 +
# 가이드 애플리케이션 : 디바이스 API를 손쉽게 접근할 수 있도록 제공하는 디바이스 API의 활용 예제이다.
 +
* 모바일 디바이스 API 실행환경 : 디바이스 애플리케이션이 웹 리소스 기반으로 구현 및 실행될 수 있도록 지원하는 [[응용 프로그램]] 환경 디바이스 API이다. 자바스크립트 프레임워크, 하이브리드 프레임워크 등이 해당된다.
 +
* 모바일 디바이스 API 개발환경 : [[안드로이드]] 기반환경에서의 디바이스 애플리케이션 개발을 위한 이클립스 [[플러그인]]과 [[아이오에스]] 환경에서의 개발을 위한 엑스코드(Xcode) 내의 프레임워크 프로젝트로 구성되어 있다.
 +
 
 +
전자정부 표준 프레임워크의 기대효과로는 첫 번째, 개발 생산성 증대와 동반한 품질 향상 효과가 있다. 공통적으로 필요한 기능의 사전 제공으로 개발 공수 최소화 등 생산성 증대 및 교체 손실비용 절감으로 전반적인 품질향상이 예상된다. 일선 개발자들이 숙지한 프레임워크를 활용함으로써 개발자 교육기간이 점차 감소되고, 일관된 적용으로 전문성이 강화된다.<ref name="heycoding">heycoding, 〈[https://coding-restaurant.tistory.com/146 전자정부 프레임워크 (1) 정의, 장점, 구성, 신버전 등]〉, 《티스토리》, 2019-11-05</ref> 검증된 아키텍처 및 공통기능을 활용함으로써 개발자 개인별 능력, 성향에 따른 품질편차를 최소화하고 그로 인한 애플리케이션 시스템의 품질향상과 산출물의 신뢰성 확보를 이끌어내어 서비스 전반적인 신뢰도가 향상된다. 두 번째, 재사용성 및 상호운용성이 극대화된다. 표준 프레임워크 기반으로 개발된 컴포넌트들이 타 사업에서 쉽게 사용할 수 있어 재사용성이 극대화된다. 선행사업에서 개발된 컴포넌트를 후속사업에서 쉽게 재사용 가능하며, 전자정부 표준 프레임워크 기반 시스템들간 컴포넌트 공유 및 연계가 용이하여 상호운용성이 극대화된다. 마지막으로 정보화 서비스 표준화율이 향상된다. 템플릿 기반의 정형화된 개발 패턴과 방법을 제공함으로써 설계, 개발 등 시스템 구축 전반에 걸친 표준을 제시하여 선행사업에서 갭라된 컴포넌트를 후속사업에서 쉽게 재사용 가능하다.<ref name="공홈"></ref>
 +
 
 +
==구조==
 +
[[파일:실행환경 구성.PNG|오른쪽|500픽셀|썸네일|'''전자정부 표준 프레임워크''' 실행환경 구성]]
 +
 
 +
===실행환경===
 +
전자정부 표준 프레임워크 실행환경의 주요 특징은 실행환경을 경량화하였다는 것이다. 하나의 파일로 일괄 배포 및 설치되던 실행환경을 필수적 부분과 선택적 부분으로 나누어 배포하여 각 사업에 적합한 최적의 실행환경을 구성한다.
 +
 
 +
실행환경 사용 시 필수적인 서비스들과 타 서비스의 의존성이 높은 서비스들을 핵심 계층으로 제공하고, 실행환경 사용에 필수적이지 않은 서비스들은 선택계층으로 분류하여 각 사업에서 선택적으로 설치할 수 있도록 제공한다.<ref name="네모">네모, 〈[https://blog.naver.com/ospace99/70069497424 대한민국 전자정부 표준 프레임워크]〉, 《네이버 블로그》, 2009-09-19</ref> 핵심서비스는 기본적으로 설치되며 이외 각 사업에서 필요한 서비스는 개발환경에서 선택적으로 설치할 수 있다.<ref name="멋진승현">멋진승현, 〈[https://kimseunghyun76.tistory.com/332 실행환경 아키텍쳐 구성(2.5)]〉, 《티스토리》, 2013-08-06</ref> 전자정부 표준 프레임워크 실행환경은 7개 그룹으로 구성되며 38개 서비스를 제공한다.<ref name="바다">바다, 〈[https://blog.naver.com/james2021/220688676867 전자정부 표준프레임워크 설명]〉, 《네이버 블로그》, 2016-04-20</ref> 실행환경 서비스 구조는 오른쪽 그림과 같다.<ref name="공홈"></ref>
 +
 
 +
===개발환경===
 +
전자정부 표준 프레임워크 개발환경의 첫 번째 특징은 개발환경 구축을 자동화 및 최적화한다는 것이다. 라이트버전의 개발환경 제공으로 개발환경을 경량화했고, 필요 기능만을 선택적으로 설치함으로써 최적화된 개발환경을 구성하는 기능을 제공하며, 한 번의 설치로 쉽고 빠르게 운영체제별 서버 환경을 구성하는 기능을 제공한다. 두 번째 특징은 편리한 조립식 구현환경을 갖췄다는 것이다. 위저드 방식을 이용하여 한 번의 클릭으로 공통 컴포넌트를 선택 및 설치하는 기능을 제공하고, 공통 컴포넌트 설정부터 테이블 생성까지 바로 실행 가능한 코드를 생성하는 기능을 제공하며, 홈페이지, 포털사이트, 내부 업무 시스템 등 유형별 사이트 템플릿 프로젝트를 제공한다. 전자정부 표준 프레임워크 개발환경의 또 다른 특징은 모바일 웹 구현 기능을 제공한다는 것이다. 설치와 동시에 바로 적용 가능한 모바일에 최적화된 표준 소스코드를 제공하고, 모바일 템플릿 및 공통 컴포넌트 적용을 위한 위저드 방식의 조립식 구현환경을 제공하며, 웹 검증 도구를 개발환경에 내장하여 모바일 웹을 포함한 웹 호환성을 개발과 동시에 검증하는 기능을 제공한다. 개발환경의 마지막 특징은 배치작업 구현기능을 제공한다는 것이다. 배치 템플릿 적용을 위한 위저드 방식의 조립식 구현환경을 제공하고, 배치작업에 대한 설정만으로 파일을 생성할 수 있는 배치작업 및 배치 실행 파일 생성 도구를 제공하며, 배치작업 테스트 도구를 개발환경에 포함하여 이미 개발된 배치작업을 검증하는 기능을 제공한다.<ref name="공홈"></ref>
 +
 
 +
===운영환경===
 +
운영환경은 표준 프레임워크 애플리케이션에 대한 모니터링 도구와 정보시스템의 효율적인 운영을 위한 커뮤니케이션 도구를 제공한다.
 +
* 모니터링 도구 : 애플리케이션에서 발생하는 동작 정보와 수행 로그를 수집하고 시스템 상태에 대한 모니터링 기능을 제공한다.
 +
# 에이전트 관리 : 에이전트는 스케줄, 로깅 등의 설정을 기반으로 모니터링 대상 시스템에서 실행
 +
# 모니터링 정보 수집 : 에이전트가 실행되면서 시스템 정보 및 프로그램 로그 수집 기록
 +
# 운영자 GUI : 운영자에게 수집된 정보를 그래프, 차트를 활용하여 다양한 형태로 표현
 +
* 커뮤니케이션 도구 : 개발 및 운영 시에 관련 이해당사자 간의 원활한 의사소통을 지원하고 프로젝트에서 발생하는 각종 관리항목에 대한 등록 및 관리기능을 제공한다.
 +
* 배치운영 도구 : 일괄(배치) 개발 및 실행환경에서 작성된 [[배치잡]]을 등록 및 실행하고 수행현황을 모니터링하며 처리 결과를 확인하기 위한 표준화된 운영환경을 제공한다.<ref name="정보자원정책과">정보자원정책과, 〈[http://www.korea.kr/archive/expDocView.do?docId=37094 행정·공공기관 웹사이트 구축·운영 가이드]〉, 《대한민국 정책브리핑》, 2016-01-29</ref>
 +
 
 +
===관리환경===
 +
관리환경은 정보화 사업 지원적용을 위한 서비스 요청처리(SR) 및 지원현황을 관리하고 표준 프레임워크 기능개선 및 버전 업그레이드 등을 위한 체계적이고 효율적인 관리기능을 제공한다. 관리환경은 공통 컴포넌트 및 표준 프레임워크를 관리하기 위한 기능으로 구성되며 배포되는 모듈이 아니다.
 +
* 변경관리 : 프레임워크 관련 개발소스, 배포파일, 산출물 등의 변경 및 형상을 관리하는 기능을 제공
 +
* 서비스 요청관리 : 프레임워크를 활용하는 기관으로부터 서비스 및 지원에 대한 요청을 접수받아 이를 처리하고 결과를 피드백하는 기능을 제공
 +
* 현황관리 : 프레임워크 배포 현황 및 지원사항에 대한 관리 기능을 제공
 +
* 표준관리 : 프레임워크 버전업, 변경버전 반영, 신규기능 추가 검토 등 프레임워크 표준을 관리하기 위한 기능을 제공<ref name="㈜크로센트">㈜크로센트, 〈[https://www.cisp.or.kr/wp-content/uploads/2014/07/20161106_131109.pdf 전자정부 표준프레임워크 발전방향 수립에 관한 연구보고서 - 공공부문 개발표준프레임워크 참조모델]〉, 《한국정보화진흥원》, 2013-12-30</ref>
 +
 
 +
===공통 컴포넌트===
 +
공통 컴포넌트는 정보시스템 구축 시 공통으로 재사용이 가능한 기능위주로 개발한 컴포넌트의 집합이다. 표준 프레임워크 기반으로 실행환경의 MVC 아키텍처를 준수하여 설계 및 개발되었다. 전자정부 사업에서 쉽게 커스터마이징 하여 재사용할 수 있도록 전자정부 표준 프레임워크 포털을 통해 소스 코드와 가이드를 제공한다. 중복개발의 빈도, 재사용 가능성, 표준화 적용성 등을 고려하여 개발 생산성 및 투자 효율성이 높은 250종을 먼저 도출하여 개발하였으며, 모바일 사용자 경험 지원기능을 활용하여 모바일 디바이스에 최적화된 모바일 공통 컴포넌트를 추가 및 신규 모바일 공통 컴포넌트 개발 및 웹 공통 컴포넌트를 모바일로 전환하여 개발했다.<ref name="공홈"></ref>
 +
 
 +
=== 모바일 디바이스 API 실행환경===
 +
모바일 디바이스 API는 각 플랫폼별 구현환경 위에서 [[HTML]], [[CSS]], [[자바스크립트]]로 구성된 웹 리소스를 통한 디바이스 하이브리드 애플리케이션 구현을 지원하며 플랫폼별 [[SDK]]를 활용하여 구현된 웹 리소스 내의 자바스크립트 형태의 디바이스 API와 각 플랫폼별 네이티브 코드가 하이브리드 프레임워크 및 웹 뷰 인터페이스를 통해 연동되어 실제 디바이스의 고유 기능을 호출할 수 있도록 지원한다. 모바일 디바이스 API는 안드로이드, 아이오에스 두 가지 모바일 플랫폼을 지원한다.  웹 리소스와 네이티브 모듈과의 연계를 위한 하이브리드 프레임워크로 폰갭(PhoneGap)을 사용한다. 오픈소스 하이브리드 프레임워크인 폰갭은 네이티브 플랫폼 종속적인 디바이스 API와 플랫폼 비종속적인 영역인 애플리케이션 부분으로 나누어지며 웹 뷰 클라이언트를 이용해 애플리케이션을 구동시킨다. 하이브리드 애플리케이션 영역은 플랫폼에 비종속적인 언어인 [[HTML5]], 자바스크립트, CSS로 구현되며 앱 빌드 시 컴파일되지 않는다. 애플리케이션이 동작하면 디바이스 API의 웹 뷰에 의해 인터프리팅 방식으로 렌더링 된다.
 +
 
 +
웹 리소스와 각 SDK 사이에서 인터페이스 역할을 수행한다. 웹 뷰 인터페이스는 각 디바이스 플랫폼에 내장되어있는 웹키트(Web Kit) 기능을 통하여 수행된다. 각 플랫폼별 SDK 내에 내장되어 있는 브라우저 기능을 포함한 웹 툴키트로서 하이브리드 애플리케이션의 디바이스 API 호출을 위한 브릿지 역할을 해준다. SDK로부터 상속받은 웹 뷰를 생성해서 그 웹 뷰에 내 소스를 로드한 후 네이티브 API를 사용할 수 있도록 연계한다. 모바일 하이브리드 애플리케이션 구현 시 모바일 디바이스 API 실행환경에서는 자바스크립트 객체를 이용하여, 디바이스에 접근이 가능토록 다양한 API를 제공한다. 하이브리드 애플리케이션 동작하기 위한 기반 구성요소로 네이티브 플랫폼에 종속적인 언어로 구성된다. HTML5와 자바스크립트 표준 코드 이외의 디바이스 종속 기능을 사용하기 위한 기능을 구현하며 사용자의 커스텀 라이브러리가 포함된다. 폰갭 프로젝트는 일반적인 웹 리소스(HTML5, CSS3, 자바스크립트) 등을 활용하여 모바일 하이브리드앱을 구현하며 해당 웹 리소스는 디바이스의 종류와 관계없이 재활용이 가능하다. HTML, CSS, 이미지, js 등의 파일을 추가할 수 있으며 디바이스의 종류에 관계없이 재활용이 가능하다. 전자정부 디바이스 API 실행환경에서는 HTML5, CSS3를 적용한 웹 리소스 구현을 지원한다.<ref name="공홈"></ref>
 +
 
 +
===모바일 디바이스 API 개발환경===
 +
전자정부 디바이스 API 개발환경은 안드로이드 환경에서의 개발을 위한 이클립스 플러그인과 아이오에스 환경에서의 개발을 위한 엑스코드 내의 프레임워크 프로젝트로 구성되어 있다.
 +
* 안드로이드 : 기존의 전자정부 표준 프레임워크 개발환경을 제공한다. 비즈니스 프로그램 개발, 버전 관리, 단위 테스트, 빌드 등의 개발 라이프사이클 전반에 대한 지원 도구를 제공한다.
 +
* 아이오에스 : [[맥]](Mac) 운영체제에서 아이오에스 개발을 위해 제공되어지는 엑스코드 개발환경을 제공한다.
 +
 
 +
디바이스 API 실행환경 기반 프로젝트를 위저드 방식의 생성 환경 제공하고 디바이스API 실행환경을 기반으로 하는 표준 샘플 템플릿 및 디바이스API별 가이드 프로그램 개발 생성된 표준 샘플 템플릿 및 가이드 프로그램을 기반으로 하이브리드 앱을 생성하는 도구 개발한다.<ref name="공홈"></ref>
 +
 
 +
===모바일 디바이스 API 가이드프로그램===
 +
모바일 디바이스 고유 기능의 호출을 위한 모바일 하이브리드 애플리케이션을 개발할 때, 개발자가 손쉽게 접근할 수 있는 활용예제를 제공한다. 각 디바이스 API별 특성에 따른 기능을 쉽게 이해하여 활용할 수 있도록 각 디바이스 API의 특징을 잘 들어낼 수 있는 활용 예제를 개발했고, 각 디바이스 API별 특성에 따라 서버 모듈 연계 기능을 쉽게 이해하여 활용할 수 있도록 각 디바이스 API에 대해 전자정부 표준 프레임워크 서버 연계 활용 예제 제공하며, 각 디바이스API 기능의 서버 연계 기능에 대한 일반적인 특성이 잘 드러날 수 있도록 일반적인 형태의 로직을 갖는 서버 연계 활용 예제를 구성했다. 전자정부 서비스 구현 시에 사용자가 활용 할 수 있는 NPKI API 템플릿 예제 프로그램과 전자정부 표준 프레임워크와 연계 할 때 사용될 수 있는 인터페이스 API 템플릿 예제 프로그램을 쉽게 이용 할 수 있는 구조로 개발하여 제공한다. 아이오에스, 안드로이드 플랫폼에 대해 각 샘플 템플릿 및 디바이스 API 가이드 프로그램을 제공한다.<ref name="공홈"></ref>
  
 
==문제점==
 
==문제점==
*black box 형태로 제공되어서 사업자의 기술지원없이는 응용SW의 유지,보수가 힘들다.
+
전자정부 표준 프레임워크, 약칭 eGov는 공공기관 웹사이트 개발 과정을 표준화하기 위한 의도에서 시작되었으나, 그러한 의도로 인해 구조가 경직되고 최신 기술을 반영하지 못하는 보수적인 기술이라는 것이 문제점으로 작용하고 있다. 특히 정부의 프로젝트에 기대는 시스템 통합(SI) 회사가 절대다수를 차지하는 현실로 인해 한국의 소프트웨어 시장이 ‘자바 + 스프링’으로 획일화되다시피 하는 결과를 낳았으며, 이는 곧 국내 소프트웨어 기술력 자체의 저하로 이어졌다. 시스템 통합은 기본적으로 안정적과 유지보수를 추구하는 업계이며, 새로운 기술과 변화를 추구하는 곳이 아니기 때문이다. 그런데 사용하는 프레임워크와 제반 기술들까지 일원화되니 다양성이 없어져 버린 것이다. 그나마 [[삼성전자㈜]]와 [[네이버㈜]] 등의 극소수 대기업들이 어느 정도 받쳐주고 있다. 물론 eGov의 잘못이라 하기는 어렵다. 진짜 원인은 시스템 통합 쪽으로 편중된 한국의 소프트웨어 시장에 있다. 공공기관에 쓰이는 기술이 파편화되면 오히려 그게 문제이다. 어느 나라든 관공서가 아닌 민간 시장을 대상으로 자사 솔루션을 개발, 판매하는 기업들이 소프트웨어 시장의 기술 발전을 선도하는 편인데, 한국에는 이런 업체가 상대적으로 부족하다는 것이 근본적인 문제이다.<ref>〈[https://namu.wiki/w/%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80%ED%91%9C%EC%A4%80%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC 전자정부표준프레임워크]〉, 《나무위키》</ref>
*복수개일 경우엔 프레임워크의 중복투자가 우려되고 관리 절차의 마비로 버전관리가 힘들다.
 
  
==미래전망 및 평가 ==
 
*대규모의 프로젝트에서는 전자정부프레임워크는 필수적으로 요구될 것이다.
 
*해외에도 수출되는 기술이므로 [[iot]],[[cloud]],[[big data]],[[mobile]]같은4차산업혁명에서는 더 늘어날 것이다.<ref>비젠트로 이야기, 〈[https://blog.naver.com/bizentro2011/221094887679 ICBM으로 4차 산업혁명의 중심에 서다...]〉, 《네이버》, 2017-09-12</ref>
 
 
{{각주}}
 
{{각주}}
 +
 
==참고자료==
 
==참고자료==
* 바다, 〈[https://blog.naver.com/james2021/220688676867 전자정부 표준프레임워크 설명]〉, 《네이버》, 2016-04-20
+
* 전자정부 표준 프레임워크 공식 홈페이지 - https://www.egovframe.go.kr/
* 비젠트로 이야기, 〈[https://blog.naver.com/bizentro2011/221094887679 ICBM으로 4차 산업혁명의 중심에 서다...]〉, 《네이버》, 2017-09-12
+
* 〈[https://ko.wikipedia.org/wiki/%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80_%ED%91%9C%EC%A4%80%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC 전자정부 표준프레임워크]〉, 《위키백과》
 +
* 〈[https://namu.wiki/w/%EC%A0%84%EC%9E%90%EC%A0%95%EB%B6%80%ED%91%9C%EC%A4%80%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC 전자정부표준프레임워크]〉, 《나무위키》
 +
* 그린컴퓨터아카데미, 〈[https://blog.naver.com/green_lsj/220549514772 웹프로그래밍, 자바기반의 전자정부 표준프레임워크]〉, 《네이버 블로그》, 2015-11-25
 +
* 츠키나미, 〈[https://blog.naver.com/losthk/220359576780 전자정부 표준 프레임워크 구성 및 버전별 내용]〉, 《네이버 블로그》, 2015-05-14
 +
* Hankyo, 〈[https://www.slideshare.net/Hankyo/01-69564834 01.표준프레임워크개요]〉, 《슬라이드셰어》, 2016-11-27
 +
* heycoding, 〈[https://coding-restaurant.tistory.com/146 전자정부 프레임워크 (1) 정의, 장점, 구성, 신버전 등]〉, 《티스토리》, 2019-11-05
 +
* 네모, 〈[https://blog.naver.com/ospace99/70069497424 대한민국 전자정부 표준 프레임워크]〉, 《네이버 블로그》, 2009-09-19
 +
* 멋진승현, 〈[https://kimseunghyun76.tistory.com/332 실행환경 아키텍쳐 구성(2.5)]〉, 《티스토리》, 2013-08-06
 +
* 바다, 〈[https://blog.naver.com/james2021/220688676867 전자정부 표준프레임워크 설명]〉, 《네이버 블로그》, 2016-04-20
 +
* 정보자원정책과, 〈[http://www.korea.kr/archive/expDocView.do?docId=37094 행정·공공기관 웹사이트 구축·운영 가이드]〉, 《대한민국 정책브리핑》, 2016-01-29
 +
* ㈜크로센트, 〈[https://www.cisp.or.kr/wp-content/uploads/2014/07/20161106_131109.pdf 전자정부 표준프레임워크 발전방향 수립에 관한 연구보고서 - 공공부문 개발표준프레임워크 참조모델]〉, 《한국정보화진흥원》, 2013-12-30
 +
 
 
== 같이 보기 ==
 
== 같이 보기 ==
 
* [[프레임워크]]
 
* [[프레임워크]]
44번째 줄: 188번째 줄:
 
* [[빅데이터]]
 
* [[빅데이터]]
 
* [[모바일]]
 
* [[모바일]]
 +
* [[전자정부]]
 +
* [[대한민국 전자정부]]
  
{{프로그래밍|토막글}}
+
{{솔루션|검토 필요}}

2020년 11월 11일 (수) 13:12 기준 최신판

전자정부 표준 프레임워크(eGovFrame) 로고
전자정부 표준 프레임워크(eGovFrame) 로고와 글자

전자정부 표준 프레임워크(eGovFrame; Electronic Government Standard Framework)는 오픈소스 기반으로 대한민국 정부가 만든 표준 프레임워크이다. 각 업체별로 서로 다른 프레임워크컴포넌트를 사용함에 따르는 중복 개발을 막기 위해 정부 차원에서 단일한 표준 프레임워크를 개발하였다. 주로 스프링 프레임워크(Spring Framework)와 아이바티스(iBatis) 프레임워크를 활용하여 개발했으며, 아파치 라이선스(Apache License)로 배포하고 있다. 2009년 6월 1.0 버전이 배포되었고, 2015년 6월 3.5 버전이 배포되었다. '전자정부 프레임웍'이 아니라 '전자정부 표준 프레임워크'가 올바른 표기법이다.

개요[편집]

개발 프레임워크는 정보시스템 개발을 위해 필요한 기능과 아키텍처를 미리 만들어 제공함으로써 효율적인 애플리케이션 구축을 지원한다. 전자정부 표준 프레임워크는 공공사업에 적용되는 개발프레임워크의 표준 정립으로 응용 소프트웨어 표준화, 품질 및 재 사용성 향상을 목표로 한다.[1] 이를 통해 전자정부 서비스의 품질향상 및 정보화 투자 효율성 향상을 달성하고, 대기업 및 중소기업이 동일한 개발기반 위에서 공정 경쟁이 가능하게 된다. 표준 프레임워크는 기존의 다양한 플랫폼(닷넷, PHP 등) 환경을 대체하기 위한 표준은 아니며, 자바 기반의 정보시스템 구축에 활용할 수 있는 개발·운영 표준 환경을 제공하기 위한 것이다.

전자정부 표준 프레임워크는 1) 국가적 표준화 지향, 2) 변화 유연성, 3) 편리하고 다양한 환경 제공, 4) 모바일 환경 지원, 5) 개방형 표준 준수, 6) 상용 솔루션 연계 등의 특징을 가지고 있다. 전자정부 표준 프레임워크는 민, 관, 학계로 구성된 자문협의회를 통해 국가적 차원의 표준화를 수행하고, 각 서비스의 모듈화로 교체가 용이하며 인터페이스 기반 연동으로 모듈 간 변경 영향을 최소화한다. 또한 이클립스 기반의 모델링(UML, ERD), 에디팅, 컴파일링, 디버깅 환경을 제공하고 모바일 환경을 위한 모바일 웹(UX/UI) 및 하이브리드 앱을 지원하며 오픈소스 기반의 범용화되고 공개된 기술의 활용으로 특정 사업자에 대한 종속성을 배제한다. 더불어 상용 솔루션과 연계가 가능한 표준을 제시하여 상호운용성을 보장한다.

전자정부 표준 프레임워크는 정보시스템을 개발하거나 운영할 때 필요한 기본 기능을 미리 구현한 것으로, 이를 기반으로 추가 기능을 개발하여 조립함으로써 전체 정보시스템을 완성할 수 있다. 건설/건축 분야에서 핵심자재를 모듈화하여 비용 및 공사 기간을 단축하는 기법과 유사하게 표준 프레임워크와 민원발급 게시판 공인인증을 모듈화하여 행정민원을 위한 시간을 단축할 수 있게 된다. 표준 프레임워크 적용 전에는 정보화 사업별 동일한 기능들이 중복으로 개발되었으나 표준 프레임워크 적용 후에는 공통 컴포넌트 재사용으로 중복 예산을 절감할 수 있게 된다. 또한 기술 족속으로 인해 선생사업자의 의존도가 높았던 현상들을 표준화된 개발기반으로 사업자 종속성을 해소한다. 프레임워크를 보유하지 않은 업체는 경쟁에서 불리했으나 프레임워크 무상제공으로 중소기업 경쟁력이 향상되고, 정보시스템 간 상호 연계 시 소요된 많은 기간과 인력이 표준화된 연계 모듈의 활용으로 상호운용성이 향상된다. 뿐만 아니라 개발자 미흡으로 유지보수가 어려웠던 상황들이 표준 프레임워크를 적용함으로써 개발표준에 의한 모듈화로 유지보수가 용이해진다.[2]

역사[편집]

2009년 대한민국 행정안전부에서 국내 공공부문 국가정보화사업(전자정부) 자바 플랫폼 기반의 추진 시에 개발 프레임워크의 표준 정립으로 응용 소프트웨어의 표준화, 품질 및 재사용성을 향상을 목표로 하며 특정 업체의 종속성 심화와 사업별 공통 컴포넌트 중복 개발을 막기 위해 개발하여 아파치 라이선스 2.0으로 배포하고 있다. 2007년 12월에서 2008년 6월까지 정보화 전략계획(ISP)을 수립하였고 2008년 11월부터 2009년 11월까지 1, 2단계 구축사업을 추진하여 대기업(삼성SDS㈜, ㈜엘지씨엔에스, 에스케이㈜ 씨앤씨) 및 중소기업(티맥스소프트 등 6개)이 공동으로 자바 플랫폼 기반의 표준 프레임워크 실행/개발/관리환경 및 공통 컴포넌트 172종을 개발하여 1.0 버전을 발표하였다. 그 후 2010년 4월부터 11월까지 3단계 구축사업을 통해 공통 컴포넌트 47종을 구축하고 CMMI 인증을 획득하였고, 2011년 4월부터 11월까지 4단계 구축사업을 통해 오픈소스의 버전 업그레이드, 경량화, 모바일 프레임워크 등을 구축하고 2.0 버전을 발표하였으며, 배치 프레임워크를 포함한 2012년 5단계 구축사업이 완료되었다. 2017년 3월 22일 표준 프레임워크 버전 3.6.0이 배포되었다. 2017년 11월 1일 표준 프레임워크 버전 3.7.0이 발표되었다.[3]

  • 2009년 06월 : 표준 프레임워크 1.0 공개
  1. 실행환경, 개발환경, 운영환경, 관리환경 및 공통 컴포넌트 공개
  • 2011년 11월 : 표준 프레임워크 2.0 공개
  1. 표준 프레임워크 1.0의 오픈소스SW 업그레이드
  2. 실행환경 핵심 및 선택 기능 분리 및
    공통컴포넌트 의존성 최소화를 통한 경량화
  3. 모바일 웹 서비스를 지원하기 위한 모바일 실행환경,
    모바일 개발환경, 모바일 공통컴포넌트 확보
  4. 보안성, 웹 표준 및 접근성 반영을 통한 표준준수 지원
  5. 공통컴포넌트 생성 위저드 및 모바일 개발환경 기능 개선 및
    적용 오픈소스SW 업그레이드 반영
  • 2012년 11월 : 표준 프레임워크 2.5 공개
  1. 대용량 일괄처리를 위한 배치 프레임워크 추가
  2. 모바일 하이브리드 앱 지원을 위한 모바일 디바이스 API 제공
  3. 모바일 화면처리 적용 오픈소스SW 업그레이드 반영
  4. 향상된 성능 및 안정화 지원
  • 2013년 06월 : 표준 프레임워크 2.6 공개
  1. 개발환경 안정화 지원
  2. 공통기반 오픈소스SW 업그레이드 반영
  3. 데이터처리 신규 기능 추가를 통하여 데이터 서비스 개선
  4. 구현도구 적용 오픈소스SW 업그레이드 반영
  • 2013년 12월 : 표준 프레임워크 2.7 공개
  1. 모바일 화면처리 오픈소스SW 업그레이드 반영
  2. 모바일 디바이스 API 오픈소스SW 업그레이드 반영
  3. 공통컴포넌트 JFile 업로드/다운로드 컴포넌트 추가 및 패치 개선 수행
  • 2014년 06월 : 표준 프레임워크 3.0 공개
  1. 오픈소스SW 39종 업그레이드 반영
  2. 실행환경 신규기능 추가
  3. 실행환경 적용 오픈소스SW 업그레이드 반영
  4. 개발환경 적용 오픈소스SW 업그레이드 반영
  5. 템플릿 프로젝트 실행환경 3.0 반영 등 개발환경 개선
  • 2015년 06월 : 표준 프레임워크 3.5 공개
  1. 실행환경 적용 오픈소스SW 업그레이드 반영
  2. 실행환경 오픈소스 변경기능 수정
  3. 개발환경 적용 오픈소스SW 업그레이드 반영
  4. 템플릿 프로젝트 실행환경 3.5 반영 등 개발환경 개선
  5. 공통컴포넌트 오픈소스 변경기능 적용 및 버그수정
  6. 모바일 화면처리 오픈소스SW 업그레이드 반영
  7. 모바일 디바이스 API 오픈소스SW 업그레이드 반영
  • 2017년 03월 : 표준 프레임워크 3.6 공개
  1. 실행환경 적용 오픈소스SW 업그레이드 반영
  2. 실행환경 오픈소스 버전 변경
  3. 개발환경 오픈소스 SW 업그레이드 반영
  4. 공통컴포넌트 실행환경 3.6.0 적용
  5. 공통컴포넌트 3.6.0 개선 30종
  6. Device API 가이드프로그램 10종 추가
  7. Device API 오픈소스 업그레이드
  • 2018년 03월 : 표준 프레임워크 3.7 공개
  1. 실행환경 적용 오픈소스SW 업그레이드 반영
  2. 실행환경 오픈소스 버전 변경
  3. 실행환경 eGovFrame Batch 신규 기능 18종 추가
  4. 개발환경 오픈소스 SW 업그레이드 반영
  5. 개발환경 공통컴포넌트 개선 50종 템플릿 추가
  6. 공통컴포넌트 실행환경 3.7.0 적용
  7. 공통컴포넌트 3.7.0 개선 20종
  • 2019년 02월 : 표준 프레임워크 3.8 공개
  1. 실행환경 적용 오픈소스SW 업그레이드 반영
  2. 실행환경 오픈소스 버전 변경
  3. 실행환경 eGovFrame Crypto 간소화 서비스 추가
  4. 개발환경 오픈소스 SW 업그레이드 반영
  5. 개발환경 공통컴포넌트 개선 251종 all-in-one 템플릿 추가
  6. 공통컴포넌트 실행환경 3.8.0 적용
  7. 공통컴포넌트 3.8.0 개선 251종[4]

등장배경[편집]

  • 소프트웨어 패러다임의 변화
소프트웨어 패러다임은 변화하는 시대적 요구에 맞춰 빠르게 변화해 왔고 궁극적으로 그 변화의 방향은 재사용성 극대화에 맞추어져 왔다. 1940년부터 1960년까지는 하드웨어 중심의 시대로, 이해하기 쉽고 유지보수가 용이한 고급 프로그래밍 언어 및 환경이 요구되었다. 1970년대에 들어 프로그래밍 언어의 전성기가 찾아왔고, 1990년대는 복잡도를 증가시키고 시스템 간 통합을 어렵게 만드는 절차지향 프로그래밍의 방식을 대체할 새로운 개발 패러다임이 요구됐다. 그 후 2000년 직전, 의 등장으로 객체 지향 중심의 시대가 열려 다양한 소프트웨어에 대한 수요가 증대하였으나 소프트웨어 개발 생산성 및 효율이 떨어지게 됐다. 객체지향 패러다임이 소프트웨어 모듈화를 제공했지만, 재사용성은 매우 떨어졌다. 현재는 컴포넌트와 프레임워크 기반 개발의 시대로, 대단위 프로젝트 진행에 있어 모든 컴포넌트를 하나하나 구입하거나 개발 적용시키는 것은 너무 많은 의사결정을 필요로 하였으며 이렇게 선택한 컴포넌트를 재조립하는 것 또한 매우 어렵다.[2]
  • 재사용 방식의 발전 방향
재사용을 극대화해주고 생산성, 확장성, 성능, 효과적인 유지보수를 지원해주기 위해 재사용 방식은 ‘소스 재사용 → 재사용 메소드 → 재사용 객체 → 디자인 패턴 → 프레임워크’와 같이 발전해 왔으며 궁극적으로 프레임워크가 등장하게 됐다.
  1. 소스 재사용 : 초보적인 재사용 방식으로 과거에 유사한 문제를 코딩한 적이 있거나 아니면 비슷한 예제를 다른 소스에서 발견했을 때 해당 부분을 복사해서 사용했다. 이후에 JDK 버전이 바뀌어 동일한 기능을 제공하는 향상된 인터페이스가 나왔다고 하면, 이런 심플포맷을 사용한 A, B 클래스를 모두 변경해야 한다는 문제점이 있다.
  2. 재사용 메소드 : 복사/붙이기 방식과 동일한 코드가 여러 클래스에서 나오는 것을 지양하기 위한 방법으로 C 언어에서 하던 것처럼 자주 이용하는 기능을 라이브러리로 만들어 재사용하는 것이다. 메소드 재사용 방법은 동일한 작업 영역에서는 유용하게 사용될 수 있으나 작업 영역이 서로 다른 경우, 특정한 기능의 메소드를 사용하기 위하여 다른 작업 영역의 메소드를 사용한다면 유지보수 시 복잡해질 수 있다는 단점이 있다.
  3. 재사용 객체 : 앞의 재사용 방식들은 비단 자바뿐 아니라 다른 언어를 사용한 개발자들도 흔히 경험한 재사용 방법이다. 자바와 같은 객체 지향 언어에서 새로 소개되는 재사용 방식이 클래스를 통한 재사용이다. 이 경우 구조적인 객체만을 놓고 분석할 때는 이와 같이 수직적인 재사용 방식이 유용하나 상황적인 문제를 놓고 보았을 때 다른 접근 방식이 요구된다.
  4. 디자인 패턴 : 클래스의 재사용 방식이 객체의 수직적인 재사용에 초점을 맞추었다며 디자인 패턴은 상황적인 문제를 해결하여 주는 재사용 방식이다. 디자인 패턴은 전체 애플리케이션의 입장에서 본다면 시스템의 부분적인 문제를 해결하는 것에 불과하다는 문제점이 있다.
  5. 프레임워크 : 하나의 주어진 상황 문제를 어떻게 해결하는지를 보는 것은 협의의 디자인 패턴 또는 메커니즘이라면, 전체 프로그램을 어떻게 구성할 것인가를 생각하는 디자인 패턴이 바로 프레임워크이다. 프레임워크란 디자인 패턴과 같은 부분적인 해결책을 전체적인 관점에서 통합하여 애플리케이션의 설계 및 구현 틀을 제공하는 것으로, 건축설계사에서 기본 설계 템플릿이 있는 것처럼 프레임워크가 마련되면 애플리케이션 개발 시 시스템의 재사용도가 높아지게 되고 나아가 개발 기간과 리소스를 절감할 수 있다. 프레임워크란 반제품 상태의 성능 튜닝된 제품을 토대로 도메인 별로 필요한 서비스 컴포넌트를 만들어 삽입하는 형태로 시스템 구축을 도와준다. 이를 통해 기존 컴포넌트의 재사용성이 확대되고 성능 또한 보장받을 수 있다.[5]

구성[편집]

전자정부 표준 프레임워크 각 구성요소의 기능 및 역할은 다음과 같다.

  • 공통컴포넌트
공통 컴포넌트.PNG
  • 표준 프레임워크
표준 프레임워크.PNG

전자정부 표준 프레임워크는 웹 기반 정보화시스템 구축 시 필요로 하는 애플리케이션 아키텍처, 기본기능 및 공통컴포넌트를 제공하는 표준 프레임워크로서 실행환경, 개발환경, 운영환경, 관리환경과 공통컴포넌트로 구성되어 있다. 구성 요소의 기능 및 역할은 다음과 같다.

  • 실행환경 : 전자정부 사업에서 개발하는 업무 프로그램의 실행에 필요한 공통모듈 등 업무 프로그램 개발 시 화면, 서버 프로그램, 데이터 개발, 배치처리기능 개발을 표준화가 용이하도록 지원하는 응용프로그램환경이다.
  • 개발환경 : 전자정부 업무 프로그램의 개발에 필요한 환경을 제공한다. 데이터개발도구, 테스트자동화도구, 코드검사도구, 템플릿 프로젝트 생성도구, 공통컴포넌트 조립도구, 맞춤형 개발환경 구성도구, 서버환경관리도구, 모바일용 표준 소스코드 생성도구, 모바일용 템플릿 프로젝트 생성도구, 모바일용 공통컴포넌트 조립도구, 모바일용 맞춤형 개발환경 구성도구, 서버용 개발환경(윈도우, 유닉스 계열)설치, 배치템플릿프로젝트 생성도구, 배치작업파일 생성도구, 배치실행파일 생성도구 등이 있다.
  • 운영환경 : 실행환경에서 운영되는 서비스를 위한 모니터링, 배포, 관리시스템 등의 환경을 제공하고, 배치실행, 스케줄링, 결과모니터링 등 배치환경을 운영하기 위한 환경을 제공한다.
  • 관리환경 : 개발프레임워크 및 공통서비스를 각 개발 프로젝트에 배포 및 관리하기 위한 모듈이다.
  • 공통컴포넌트 : 전자정부 사업에서 응용소프트웨어 개발 시 공통적으로 활용하기 위하여, 재사용이 가능하도록 개발한 애플리케이션의 집합이다.
  • 모바일 디바이스 API
  1. 코어API(Core API) : 모바일 하이브리드 애플리케이션에서 모바일 디바이스 자원에 대한 직접적인 접근과 활용이 가능한 다양한 API를 제공한다.
  2. 가이드 애플리케이션 : 디바이스 API를 손쉽게 접근할 수 있도록 제공하는 디바이스 API의 활용 예제이다.
  • 모바일 디바이스 API 실행환경 : 디바이스 애플리케이션이 웹 리소스 기반으로 구현 및 실행될 수 있도록 지원하는 응용 프로그램 환경 디바이스 API이다. 자바스크립트 프레임워크, 하이브리드 프레임워크 등이 해당된다.
  • 모바일 디바이스 API 개발환경 : 안드로이드 기반환경에서의 디바이스 애플리케이션 개발을 위한 이클립스 플러그인아이오에스 환경에서의 개발을 위한 엑스코드(Xcode) 내의 프레임워크 프로젝트로 구성되어 있다.

전자정부 표준 프레임워크의 기대효과로는 첫 번째, 개발 생산성 증대와 동반한 품질 향상 효과가 있다. 공통적으로 필요한 기능의 사전 제공으로 개발 공수 최소화 등 생산성 증대 및 교체 손실비용 절감으로 전반적인 품질향상이 예상된다. 일선 개발자들이 숙지한 프레임워크를 활용함으로써 개발자 교육기간이 점차 감소되고, 일관된 적용으로 전문성이 강화된다.[6] 검증된 아키텍처 및 공통기능을 활용함으로써 개발자 개인별 능력, 성향에 따른 품질편차를 최소화하고 그로 인한 애플리케이션 시스템의 품질향상과 산출물의 신뢰성 확보를 이끌어내어 서비스 전반적인 신뢰도가 향상된다. 두 번째, 재사용성 및 상호운용성이 극대화된다. 표준 프레임워크 기반으로 개발된 컴포넌트들이 타 사업에서 쉽게 사용할 수 있어 재사용성이 극대화된다. 선행사업에서 개발된 컴포넌트를 후속사업에서 쉽게 재사용 가능하며, 전자정부 표준 프레임워크 기반 시스템들간 컴포넌트 공유 및 연계가 용이하여 상호운용성이 극대화된다. 마지막으로 정보화 서비스 표준화율이 향상된다. 템플릿 기반의 정형화된 개발 패턴과 방법을 제공함으로써 설계, 개발 등 시스템 구축 전반에 걸친 표준을 제시하여 선행사업에서 갭라된 컴포넌트를 후속사업에서 쉽게 재사용 가능하다.[2]

구조[편집]

전자정부 표준 프레임워크 실행환경 구성

실행환경[편집]

전자정부 표준 프레임워크 실행환경의 주요 특징은 실행환경을 경량화하였다는 것이다. 하나의 파일로 일괄 배포 및 설치되던 실행환경을 필수적 부분과 선택적 부분으로 나누어 배포하여 각 사업에 적합한 최적의 실행환경을 구성한다.

실행환경 사용 시 필수적인 서비스들과 타 서비스의 의존성이 높은 서비스들을 핵심 계층으로 제공하고, 실행환경 사용에 필수적이지 않은 서비스들은 선택계층으로 분류하여 각 사업에서 선택적으로 설치할 수 있도록 제공한다.[7] 핵심서비스는 기본적으로 설치되며 이외 각 사업에서 필요한 서비스는 개발환경에서 선택적으로 설치할 수 있다.[8] 전자정부 표준 프레임워크 실행환경은 7개 그룹으로 구성되며 38개 서비스를 제공한다.[9] 실행환경 서비스 구조는 오른쪽 그림과 같다.[2]

개발환경[편집]

전자정부 표준 프레임워크 개발환경의 첫 번째 특징은 개발환경 구축을 자동화 및 최적화한다는 것이다. 라이트버전의 개발환경 제공으로 개발환경을 경량화했고, 필요 기능만을 선택적으로 설치함으로써 최적화된 개발환경을 구성하는 기능을 제공하며, 한 번의 설치로 쉽고 빠르게 운영체제별 서버 환경을 구성하는 기능을 제공한다. 두 번째 특징은 편리한 조립식 구현환경을 갖췄다는 것이다. 위저드 방식을 이용하여 한 번의 클릭으로 공통 컴포넌트를 선택 및 설치하는 기능을 제공하고, 공통 컴포넌트 설정부터 테이블 생성까지 바로 실행 가능한 코드를 생성하는 기능을 제공하며, 홈페이지, 포털사이트, 내부 업무 시스템 등 유형별 사이트 템플릿 프로젝트를 제공한다. 전자정부 표준 프레임워크 개발환경의 또 다른 특징은 모바일 웹 구현 기능을 제공한다는 것이다. 설치와 동시에 바로 적용 가능한 모바일에 최적화된 표준 소스코드를 제공하고, 모바일 템플릿 및 공통 컴포넌트 적용을 위한 위저드 방식의 조립식 구현환경을 제공하며, 웹 검증 도구를 개발환경에 내장하여 모바일 웹을 포함한 웹 호환성을 개발과 동시에 검증하는 기능을 제공한다. 개발환경의 마지막 특징은 배치작업 구현기능을 제공한다는 것이다. 배치 템플릿 적용을 위한 위저드 방식의 조립식 구현환경을 제공하고, 배치작업에 대한 설정만으로 파일을 생성할 수 있는 배치작업 및 배치 실행 파일 생성 도구를 제공하며, 배치작업 테스트 도구를 개발환경에 포함하여 이미 개발된 배치작업을 검증하는 기능을 제공한다.[2]

운영환경[편집]

운영환경은 표준 프레임워크 애플리케이션에 대한 모니터링 도구와 정보시스템의 효율적인 운영을 위한 커뮤니케이션 도구를 제공한다.

  • 모니터링 도구 : 애플리케이션에서 발생하는 동작 정보와 수행 로그를 수집하고 시스템 상태에 대한 모니터링 기능을 제공한다.
  1. 에이전트 관리 : 에이전트는 스케줄, 로깅 등의 설정을 기반으로 모니터링 대상 시스템에서 실행
  2. 모니터링 정보 수집 : 에이전트가 실행되면서 시스템 정보 및 프로그램 로그 수집 기록
  3. 운영자 GUI : 운영자에게 수집된 정보를 그래프, 차트를 활용하여 다양한 형태로 표현
  • 커뮤니케이션 도구 : 개발 및 운영 시에 관련 이해당사자 간의 원활한 의사소통을 지원하고 프로젝트에서 발생하는 각종 관리항목에 대한 등록 및 관리기능을 제공한다.
  • 배치운영 도구 : 일괄(배치) 개발 및 실행환경에서 작성된 배치잡을 등록 및 실행하고 수행현황을 모니터링하며 처리 결과를 확인하기 위한 표준화된 운영환경을 제공한다.[10]

관리환경[편집]

관리환경은 정보화 사업 지원적용을 위한 서비스 요청처리(SR) 및 지원현황을 관리하고 표준 프레임워크 기능개선 및 버전 업그레이드 등을 위한 체계적이고 효율적인 관리기능을 제공한다. 관리환경은 공통 컴포넌트 및 표준 프레임워크를 관리하기 위한 기능으로 구성되며 배포되는 모듈이 아니다.

  • 변경관리 : 프레임워크 관련 개발소스, 배포파일, 산출물 등의 변경 및 형상을 관리하는 기능을 제공
  • 서비스 요청관리 : 프레임워크를 활용하는 기관으로부터 서비스 및 지원에 대한 요청을 접수받아 이를 처리하고 결과를 피드백하는 기능을 제공
  • 현황관리 : 프레임워크 배포 현황 및 지원사항에 대한 관리 기능을 제공
  • 표준관리 : 프레임워크 버전업, 변경버전 반영, 신규기능 추가 검토 등 프레임워크 표준을 관리하기 위한 기능을 제공[11]

공통 컴포넌트[편집]

공통 컴포넌트는 정보시스템 구축 시 공통으로 재사용이 가능한 기능위주로 개발한 컴포넌트의 집합이다. 표준 프레임워크 기반으로 실행환경의 MVC 아키텍처를 준수하여 설계 및 개발되었다. 전자정부 사업에서 쉽게 커스터마이징 하여 재사용할 수 있도록 전자정부 표준 프레임워크 포털을 통해 소스 코드와 가이드를 제공한다. 중복개발의 빈도, 재사용 가능성, 표준화 적용성 등을 고려하여 개발 생산성 및 투자 효율성이 높은 250종을 먼저 도출하여 개발하였으며, 모바일 사용자 경험 지원기능을 활용하여 모바일 디바이스에 최적화된 모바일 공통 컴포넌트를 추가 및 신규 모바일 공통 컴포넌트 개발 및 웹 공통 컴포넌트를 모바일로 전환하여 개발했다.[2]

모바일 디바이스 API 실행환경[편집]

모바일 디바이스 API는 각 플랫폼별 구현환경 위에서 HTML, CSS, 자바스크립트로 구성된 웹 리소스를 통한 디바이스 하이브리드 애플리케이션 구현을 지원하며 플랫폼별 SDK를 활용하여 구현된 웹 리소스 내의 자바스크립트 형태의 디바이스 API와 각 플랫폼별 네이티브 코드가 하이브리드 프레임워크 및 웹 뷰 인터페이스를 통해 연동되어 실제 디바이스의 고유 기능을 호출할 수 있도록 지원한다. 모바일 디바이스 API는 안드로이드, 아이오에스 두 가지 모바일 플랫폼을 지원한다. 웹 리소스와 네이티브 모듈과의 연계를 위한 하이브리드 프레임워크로 폰갭(PhoneGap)을 사용한다. 오픈소스 하이브리드 프레임워크인 폰갭은 네이티브 플랫폼 종속적인 디바이스 API와 플랫폼 비종속적인 영역인 애플리케이션 부분으로 나누어지며 웹 뷰 클라이언트를 이용해 애플리케이션을 구동시킨다. 하이브리드 애플리케이션 영역은 플랫폼에 비종속적인 언어인 HTML5, 자바스크립트, CSS로 구현되며 앱 빌드 시 컴파일되지 않는다. 애플리케이션이 동작하면 디바이스 API의 웹 뷰에 의해 인터프리팅 방식으로 렌더링 된다.

웹 리소스와 각 SDK 사이에서 인터페이스 역할을 수행한다. 웹 뷰 인터페이스는 각 디바이스 플랫폼에 내장되어있는 웹키트(Web Kit) 기능을 통하여 수행된다. 각 플랫폼별 SDK 내에 내장되어 있는 브라우저 기능을 포함한 웹 툴키트로서 하이브리드 애플리케이션의 디바이스 API 호출을 위한 브릿지 역할을 해준다. SDK로부터 상속받은 웹 뷰를 생성해서 그 웹 뷰에 내 소스를 로드한 후 네이티브 API를 사용할 수 있도록 연계한다. 모바일 하이브리드 애플리케이션 구현 시 모바일 디바이스 API 실행환경에서는 자바스크립트 객체를 이용하여, 디바이스에 접근이 가능토록 다양한 API를 제공한다. 하이브리드 애플리케이션 동작하기 위한 기반 구성요소로 네이티브 플랫폼에 종속적인 언어로 구성된다. HTML5와 자바스크립트 표준 코드 이외의 디바이스 종속 기능을 사용하기 위한 기능을 구현하며 사용자의 커스텀 라이브러리가 포함된다. 폰갭 프로젝트는 일반적인 웹 리소스(HTML5, CSS3, 자바스크립트) 등을 활용하여 모바일 하이브리드앱을 구현하며 해당 웹 리소스는 디바이스의 종류와 관계없이 재활용이 가능하다. HTML, CSS, 이미지, js 등의 파일을 추가할 수 있으며 디바이스의 종류에 관계없이 재활용이 가능하다. 전자정부 디바이스 API 실행환경에서는 HTML5, CSS3를 적용한 웹 리소스 구현을 지원한다.[2]

모바일 디바이스 API 개발환경[편집]

전자정부 디바이스 API 개발환경은 안드로이드 환경에서의 개발을 위한 이클립스 플러그인과 아이오에스 환경에서의 개발을 위한 엑스코드 내의 프레임워크 프로젝트로 구성되어 있다.

  • 안드로이드 : 기존의 전자정부 표준 프레임워크 개발환경을 제공한다. 비즈니스 프로그램 개발, 버전 관리, 단위 테스트, 빌드 등의 개발 라이프사이클 전반에 대한 지원 도구를 제공한다.
  • 아이오에스 : (Mac) 운영체제에서 아이오에스 개발을 위해 제공되어지는 엑스코드 개발환경을 제공한다.

디바이스 API 실행환경 기반 프로젝트를 위저드 방식의 생성 환경 제공하고 디바이스API 실행환경을 기반으로 하는 표준 샘플 템플릿 및 디바이스API별 가이드 프로그램 개발 생성된 표준 샘플 템플릿 및 가이드 프로그램을 기반으로 하이브리드 앱을 생성하는 도구 개발한다.[2]

모바일 디바이스 API 가이드프로그램[편집]

모바일 디바이스 고유 기능의 호출을 위한 모바일 하이브리드 애플리케이션을 개발할 때, 개발자가 손쉽게 접근할 수 있는 활용예제를 제공한다. 각 디바이스 API별 특성에 따른 기능을 쉽게 이해하여 활용할 수 있도록 각 디바이스 API의 특징을 잘 들어낼 수 있는 활용 예제를 개발했고, 각 디바이스 API별 특성에 따라 서버 모듈 연계 기능을 쉽게 이해하여 활용할 수 있도록 각 디바이스 API에 대해 전자정부 표준 프레임워크 서버 연계 활용 예제 제공하며, 각 디바이스API 기능의 서버 연계 기능에 대한 일반적인 특성이 잘 드러날 수 있도록 일반적인 형태의 로직을 갖는 서버 연계 활용 예제를 구성했다. 전자정부 서비스 구현 시에 사용자가 활용 할 수 있는 NPKI API 템플릿 예제 프로그램과 전자정부 표준 프레임워크와 연계 할 때 사용될 수 있는 인터페이스 API 템플릿 예제 프로그램을 쉽게 이용 할 수 있는 구조로 개발하여 제공한다. 아이오에스, 안드로이드 플랫폼에 대해 각 샘플 템플릿 및 디바이스 API 가이드 프로그램을 제공한다.[2]

문제점[편집]

전자정부 표준 프레임워크, 약칭 eGov는 공공기관 웹사이트 개발 과정을 표준화하기 위한 의도에서 시작되었으나, 그러한 의도로 인해 구조가 경직되고 최신 기술을 반영하지 못하는 보수적인 기술이라는 것이 문제점으로 작용하고 있다. 특히 정부의 프로젝트에 기대는 시스템 통합(SI) 회사가 절대다수를 차지하는 현실로 인해 한국의 소프트웨어 시장이 ‘자바 + 스프링’으로 획일화되다시피 하는 결과를 낳았으며, 이는 곧 국내 소프트웨어 기술력 자체의 저하로 이어졌다. 시스템 통합은 기본적으로 안정적과 유지보수를 추구하는 업계이며, 새로운 기술과 변화를 추구하는 곳이 아니기 때문이다. 그런데 사용하는 프레임워크와 제반 기술들까지 일원화되니 다양성이 없어져 버린 것이다. 그나마 삼성전자㈜네이버㈜ 등의 극소수 대기업들이 어느 정도 받쳐주고 있다. 물론 eGov의 잘못이라 하기는 어렵다. 진짜 원인은 시스템 통합 쪽으로 편중된 한국의 소프트웨어 시장에 있다. 공공기관에 쓰이는 기술이 파편화되면 오히려 그게 문제이다. 어느 나라든 관공서가 아닌 민간 시장을 대상으로 자사 솔루션을 개발, 판매하는 기업들이 소프트웨어 시장의 기술 발전을 선도하는 편인데, 한국에는 이런 업체가 상대적으로 부족하다는 것이 근본적인 문제이다.[12]

각주[편집]

  1. 그린컴퓨터아카데미, 〈웹프로그래밍, 자바기반의 전자정부 표준프레임워크〉, 《네이버 블로그》, 2015-11-25
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 전자정부 표준프레임워크 공식 홈페이지 - https://www.egovframe.go.kr/
  3. 전자정부 표준프레임워크〉, 《위키백과》
  4. 츠키나미, 〈전자정부 표준 프레임워크 구성 및 버전별 내용〉, 《네이버 블로그》, 2015-05-14
  5. Hankyo, 〈01.표준프레임워크개요〉, 《슬라이드셰어》, 2016-11-27
  6. heycoding, 〈전자정부 프레임워크 (1) 정의, 장점, 구성, 신버전 등〉, 《티스토리》, 2019-11-05
  7. 네모, 〈대한민국 전자정부 표준 프레임워크〉, 《네이버 블로그》, 2009-09-19
  8. 멋진승현, 〈실행환경 아키텍쳐 구성(2.5)〉, 《티스토리》, 2013-08-06
  9. 바다, 〈전자정부 표준프레임워크 설명〉, 《네이버 블로그》, 2016-04-20
  10. 정보자원정책과, 〈행정·공공기관 웹사이트 구축·운영 가이드〉, 《대한민국 정책브리핑》, 2016-01-29
  11. ㈜크로센트, 〈전자정부 표준프레임워크 발전방향 수립에 관한 연구보고서 - 공공부문 개발표준프레임워크 참조모델〉, 《한국정보화진흥원》, 2013-12-30
  12. 전자정부표준프레임워크〉, 《나무위키》

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 전자정부 표준 프레임워크 문서는 솔루션에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.