2024.05.11 (토)

  • 구름많음속초19.3℃
  • 구름많음10.8℃
  • 구름많음철원13.6℃
  • 흐림동두천15.5℃
  • 흐림파주12.3℃
  • 구름많음대관령10.8℃
  • 흐림춘천10.2℃
  • 흐림백령도14.4℃
  • 구름많음북강릉18.2℃
  • 구름많음강릉19.3℃
  • 맑음동해16.3℃
  • 흐림서울15.8℃
  • 구름많음인천15.8℃
  • 구름많음원주11.6℃
  • 구름조금울릉도15.9℃
  • 구름많음수원12.8℃
  • 구름많음영월9.7℃
  • 구름조금충주10.4℃
  • 흐림서산16.8℃
  • 맑음울진17.5℃
  • 맑음청주15.6℃
  • 맑음대전13.1℃
  • 맑음추풍령7.9℃
  • 맑음안동10.6℃
  • 맑음상주10.8℃
  • 맑음포항16.8℃
  • 맑음군산15.7℃
  • 맑음대구13.2℃
  • 맑음전주16.1℃
  • 맑음울산15.4℃
  • 구름조금창원15.8℃
  • 맑음광주16.9℃
  • 맑음부산16.8℃
  • 맑음통영18.1℃
  • 구름조금목포16.9℃
  • 구름조금여수16.4℃
  • 박무흑산도14.8℃
  • 구름많음완도14.7℃
  • 맑음고창15.3℃
  • 흐림순천12.1℃
  • 구름많음홍성(예)15.9℃
  • 맑음10.2℃
  • 구름많음제주15.9℃
  • 구름많음고산18.0℃
  • 구름많음성산18.1℃
  • 흐림서귀포19.1℃
  • 맑음진주13.5℃
  • 구름많음강화16.2℃
  • 흐림양평10.8℃
  • 맑음이천10.4℃
  • 흐림인제12.0℃
  • 흐림홍천9.1℃
  • 맑음태백13.5℃
  • 구름많음정선군14.2℃
  • 구름많음제천9.8℃
  • 맑음보은9.2℃
  • 맑음천안9.4℃
  • 맑음보령17.3℃
  • 맑음부여10.3℃
  • 맑음금산13.2℃
  • 맑음12.4℃
  • 맑음부안16.8℃
  • 맑음임실13.4℃
  • 맑음정읍17.5℃
  • 맑음남원12.0℃
  • 맑음장수14.9℃
  • 구름많음고창군16.0℃
  • 맑음영광군15.1℃
  • 맑음김해시16.6℃
  • 맑음순창군14.7℃
  • 맑음북창원17.0℃
  • 맑음양산시15.0℃
  • 맑음보성군13.8℃
  • 맑음강진군12.2℃
  • 맑음장흥16.6℃
  • 구름많음해남17.6℃
  • 맑음고흥14.7℃
  • 흐림의령군13.6℃
  • 맑음함양군7.7℃
  • 흐림광양시16.1℃
  • 구름많음진도군18.0℃
  • 맑음봉화8.1℃
  • 맑음영주9.0℃
  • 맑음문경9.2℃
  • 맑음청송군7.2℃
  • 맑음영덕18.0℃
  • 맑음의성8.6℃
  • 맑음구미11.2℃
  • 맑음영천15.8℃
  • 맑음경주시11.2℃
  • 맑음거창7.7℃
  • 맑음합천12.0℃
  • 맑음밀양12.3℃
  • 흐림산청9.1℃
  • 맑음거제17.7℃
  • 구름많음남해16.4℃
  • 맑음15.4℃
기상청 제공
NIA | 전자정부 프레임워크 ② 표준프레임워크의 구조 및 기능
  • 해당된 기사를 공유합니다

COLUMN

NIA | 전자정부 프레임워크 ② 표준프레임워크의 구조 및 기능

   
 
표준프레임워크 활용 가속화 최근 전자정부 표준프레임워크 다운로드가 10만회를 돌파했다. 지난 2009년 6월에 공개된 표준프레임워크가 매우 빠르게 확산되고 있다. 지난달 16일 열린 표준프레임워크 정책 우수 사례 설명회에서는 정부를 비롯해 공공기관 정보화 담당자부터 민간 IT 관계자 등 다수가 참석해 뜨거운 관심을 나타냈다. 주목받고 있는 전자정부 표준프레임워크에 대해 4회에 걸쳐 개념과 의미, 성과 및 계획에 대해 알아본다. 김영우 삼성SDS 공공아키텍처 그룹 수석 youngwoo@samsung.com 연재순서 1 표준프레임워크 동향 및 개요 2 표준프레임워크 개발 내용과 의미 3 표준프레임워크 구축 활용 사례 4 글로벌화 전략과 대중소기업 상생 방안 이번 7월호에서는 △표준프레임워크의 구성 △실행, 개발환경 및 공통컴포넌트 △공통컴포넌트 △표준프레임워크의 활용 △예상효과 등에 대해 살펴본다. 정보전략계획(ISP)을 통한 미래모형 정립 개발프레임워크는 업종, 사용자, 범위, 기술 등의 관점에서 다양하게 정의할 수 있으나 전자정부 표준프레임워크(이하 표준프레임워크)는 ‘웹 시스템 구축시에 재사용 가능한 기능과 아키텍처를 제공해 주는 반제품 형태의 자바 애플리케이션 구현체’로 범위를 정의했다. 개발프레임워크라는 것은 시스템통합(SI) 및 응용 애플리케이션 개발과정에서 개발자의 노하우가 집약되고 그것들을 재사용할 수 있는 아키텍처와 기능으로 정제하면서 개념 및 기능, 특징 등이 정립되기 시작했다. 국내에서는 SI 업체들이 애플리케이션의 품질 제고 및 개발생산성(품질 및 납기) 향상을 위한 재활용 자산으로 전자정부, 금융권 등의 다양한 정보시스템에 활용하면서부터 본격적으로 활성화됐다. 정부는 다양하고 상이한 개발프레임워크로 인한 혼란 및 중복 개발로 인한 예산낭비를 해결하고 국가적인 개발기반의 표준화를 위해 행정안전부가 정보전략계획(ISP)을 통해 표준프레임워크의 미래모형을 정립했고, 2008년도부터 구축사업을 진행했다. ISP에서 바라본 중점 항목은 업체 종속성을 최소화함과 동시에 고품질의 개발기반을 확보하는 것이었다. 이를 충족하기 위해 코드의 자체 개발 보다는 글로벌하게 쓰이며 성능 및 안정성이 검증된 오픈 소스를 채택해 목적을 달성했다. 또 정보화사업 추진시 동일 기능(게시판, 로그인 등)을 반복적으로 개발하는 문제를 예방하고자 공통 기능을 컴포넌트화해 219종의 공통컴포넌트를 도출했다. 이러한 ISP 결과를 기반으로 표준프레임워크를 개발했으며, 2009년부터 공개되어 공공 및 민간에서 폭넓게 적용하고 있다. 지식경제부가 주관한 ‘2009 대한민국 소프트웨어 기술대상’ 우수상 수상, 싱가포르 주관 미래정부 시상식(FutureGov Award) 올해의정부상(대상), 기술선도상, 정부혁신상 3개 부문 수상 등 국내는 물론 해외에서도 기술의 우수성을 검증받았다. 이제 표준프레임워크의 구성 및 기능을 상세하게 살펴보자. 표준프레임워크의 구성 실행*개발*운영*관리환경 제공 표준프레임워크는 실행*개발*운영*관리 등 4대 환경으로 구성되어 있다. 각각의 환경은 서비스 사용 목적에 따라 묶은 서비스 그룹을 포함하고 있으며, 각 서비스 그룹은 표준프레임워크가 제공하는 실질적인 서비스를 포함하고 있다. ●실행환경은 전자정부 표준프레임워크의 핵심 환경으로써 애플리케이션 개발시 아키텍처와 필요한 기능을 제공하며 애플리케이션의 일부를 구성하게 된다. ●개발환경은 실행환경을 사용해 애플리케이션 개발시 필요한 설계, 구현, 테스트 및 배포와 관련된 기능을 통합적으로 제공해 개발 효율성을 극대화하는 지원 기능을 제공한다. ●운영환경은 애플리케이션을 개발 및 운영시 필요한 각종 정보의 모니터링 및 이해당사자 간의 의사소통 기능을 제공한다. ●관리환경은 표준프레임워크를 구성하고 있는 실행, 개발, 운영환경을 유지보수 및 개선하기 위한 각종 관리 기능을 제공하고 있다. 이 중 표준프레임워크 관련 서비스 요청(SR)을 접수 및 처리하는 서비스를 대외적으로 제공하고 있다. 표준프레임워크 4대 환경 중에서 애플리케이션의 기반이 되는 실행환경, 개발환경 및 공통컴포넌트의 상세내용은 다음과 같다. 실행ㆍ개발환경 및 공통컴포넌트 실행환경의 구성과 기능 실행환경은 화면처리, 업무처리, 데이터 처리, 연계통합 및 공통기반 계층으로 이루어져 있으며 애플리케이션 개발시 공통적으로 필요로 하는 기능 및 아키텍처를 제공한다. 실행환경의 가장 주요한 기능은 IoC(Inversion of Container), MVC(Model-View-Controller), 데이터 액세스(Data Access) 서비스라고 할 수 있는데, 표준프레임워크를 적용했다는 것은 기본적으로 이 3가지 서비스를 활용한 것으로부터 판단할 수 있다. ● IoC 서비스는 스프링(Spring, 기업 애플리케이션에서 필요한 기능을 제공하는 오픈 소스 프레임워크) 오픈 소스를 사용해 지원되며, 애플리케이션 개발시에 각 기능의 상호 호출관계인 의존성을 개발자가 직접 코드에 넣는 대신 외부(XML 파일 등)에 의존성을 기술하고 이 정보를 기반으로 IoC 컨테이너가 애플리케이션에서 필요한 기능을 서비스로 제공하는 기능을 말한다. ● IoC 서비스는 개발자가 애플리케이션 내부에서 상호 호출하는 관계를 코드로 직접 관리하지 않고 이를 외부, 즉 IoC 컨테이너에 위탁 관리하게 함으로써 코드간의 의존성을 분리해 개발 및 운영의 효율성을 높일 수 있다. ● MVC 서비스는 Spring MVC 오픈소스를 통해 제공되며 화면, 로직 및 데이터의 구성을 분리해 애플리케이션의 효과적인 구성을 지원하는 기능이다. MVC 서비스는 화면, 데이터 및 업무 로직이 분리됨에 따라 화면 디자이너와 개발자가 담당하는 분야의 업무를 개별적으로 개발할 수 있게 해준다. ● 데이터 액세스 서비스는 다양한 DB에 접속하기 위한 절차를 간소화 해주며 SQL(Structured Query Language, 구조화 질의어)의 관리도 XML(Extensible Markup Language, 다목적데이터표시언어)로 분리해 용이한 관리를 지원해 주는 기능이다. SQL을 코드와 분리해 별도로 관리하기 때문에 코드의 변경 및 리빌드(Rebuild) 없이 SQL의 튜닝이 가능하다. 이외에 실행환경은 아키텍처를 지원해주는 서비스 외에서 간단한 기능을 제공하는 유틸리티성의 서비스를 다수 포함하고 있다. 개발환경의 구성과 기능 개발환경은 구현도구, 테스트도구, 배포도구 및 형상???麗桓?도구의 계층으로 이루어져 있다. ● 구현도구는 애플리케이션 개발에 필요한 통합 개발 환경으로 오픈소스인 이클립스(Eclipse)를 활용하고 있으며 개발코드를 작성시 코드 편집기능을 기본으로 한다. 또한 서비스와는 플러그인으로 상호 연계돼 개발시에 필요한 다양한 기능을 통합적으로 지원한다. ● 편집기능은 소스코드, UML(Unified Modeling Language), ERD(Entity-Relationship Diagram), DBIO(DataBase Input/Output) 편집기 등의 기능을 제공하며 정형화된 개발 패턴에 대한 자동코드 생성 기능도 제공하고 있다. ●테스트도구는 애플리케이션 테스트에 필요한 단위 테스트, 목업 등의 도구들과 테스트 범위를 확인하는 기능을 제공한다. 제공되는 테스트도구들은 테스트 자동화 과정을 하나의 테스트 환경으로 통합되어 자동화된 테스트를 수행할 수 있도록 지원된다. ●배포도구는 개발이 완료된 소스코드를 실행할 수 있도록 컴파일 하는 빌드 및 빌드된 코드들이 실행될 환경(장비)으로 옮겨 넣는 기능을 제공하고 있다. 빌드 기능은 메이븐(Maven) 오픈소스를 통해 기능을 구현하고 있으며, 각 개발자의 빌드환경의 구성요소를 통합 관리해 프로젝트 전체의 빌드 환경을 관리할 수 있는 기능을 제공한다. ● 형상관리는 서브버전(Subversion) 오픈소스를 채택했으며, 개발자들이 개발하는 소스코드를 필요한 시점마다 복구할 수 있는 기능을 제공하고 있다. 공통컴포넌트 공통컴포넌트는 정보시스템 구축 시 재사용이 가능하도록 공통기술컴포넌트 129종, 요소기술컴포넌트(유틸리티) 90종의 총 219종으로 구성되어 있다. ● 공통기술컴포넌트는 비즈니스 프로세스를 포함하지 않고 공통으로 재사용 가능한 모듈이며 사용자 관리, 실명인증, 설문관리 등이 대표적이다. ● 요소기술컴포넌트는 응용 애플리케이션 개발시에 가장 기본이 되는 요소기술로 포맷/계산/변환 등이다. 요소기술 컴포넌트의 경우 표준프레임워크에 영향 없이 일반적인 자바환경에서 동작이 가능하다. 공통컴포넌트는 표준프레임워크 포털을 통해 기능명세, 개발소스, 산출물 및 가이드를 제공받을 수 있으며 각 사업의 특성에 맞게 최적화(Customizing)를 허용한다. 각 사업에서는 구현기능 중 공통컴포넌트를 활용하여 개발이 가능한 기능에 대해 공통컴포넌트 적용을 검토한 후 필요기능과의 차이를 분석한 후 최적화해서 필요한 기능을 획득할 수 있다. 표준프레임워크 활용 표준프레임워크는 자바 기반의 웹 응용시스템을 구현하는 데 필요한 플랫폼을 제공하는데, JavaEE 5 혹은 JDK 1.5 버전 이상에 최적화되어 있으며 대부분의 DBMS 및 WAS에서 운영이 가능하다. 또한 코딩과 테스트 및 빌드와 배포 등 전체 개발생명주기를 한 번에 관리할 수 있도록, 다양한 플러그인을 포함하고 있는 이클립스(eclipse) 기반의 개발환경을 로컬 PC에 손쉽게 설치해 활용할 수 있다. 그리고 게시판, 로그인 등 흔히 사용하는 기능을 공통컴포넌트로 패키지화해 배포하고 있으며, 개발자는 이들을 그대로 활용하거나 사이트 특성에 맞게 적절히 수정하여 적용할 수 있다. 표준프레임워크 예상효과 표준프레임워크는 예상효과는 다음과 같이 정리할 수 있다. 첫째, 정보시스템 개발 생산성 및 품질을 향상시키는 효과가 있다. 표준화된 소스코드, 템플릿 및 아키텍처 등을 재활용함으로써 실제로 정보시스템을 구축하는 시간을 단축할 수 있을 뿐만 아니라 성능 및 기능의 안정성에 대한 검증을 거친 아키텍처 및 기능의 표준프레임워크를 활용함으로써 고품질의 정보시스템을 구축할 수 있다. 또 초급 개발자도 일정 수준 이상의 품질을 유지할 수 있어 개발자의 역량에 대한 의존성을 경감시키는 효과를 거둘 수 있다. 둘째, 유지보수 효율성이 증대되는 효과가 있다. 오픈소스 기반의 표준프레임워크를 활용하여 정보시스템을 구축하게 되면, 구현된 애플리케이션의 아키텍처가 표준프레임워크로 표준화된 기반에서 이뤄지게 되어 특정 업체(개발업체 및 기존 유지보수 업체)의 기술 노하우에 의존하지 않고 용이하게 정보시스템의 구성 및 기능을 파악할 수 있게 된다. 셋째, 중소기업의 기술 경쟁력 향상에 기여한다. 개발프레임워크의 높은 획득비용(개발 및 운영비용)은 중소기업에게 경제적 부담 및 공정한 경쟁을 저해하는 주요 요인으로 작용했다. 그러나 오픈소스 기반의 표준프레임워크를 활용할 수 있게 됨으로써 정보화시장에 서 대기업과 동등하게 경쟁할 수 있고 품질 높은 정보시스템을 구축할 수 있게 된다. 넷째, 국가 정보화 시스템 상호호환성의 기반을 제공한다. 지금까지 공공정보화 사업은 각 업체의 고유한 기술력(개발프레임워크)에 의존해 구축돼 왔다. 이로 인한 종속성으로 시스템 간의 상호 호환성 확보가 매우 어려웠다. 그러나 표준프레임워크를 통한 정보화시스템의 표준이 제시됨으로써 향후 개발되는 기능의 상호호환성을 확보할 수 있다. 김영우 삼성SDS 공공아키텍처 그룹 수석 2008년 전자정부 표준프레임워크 ISP 사업 SA & PL 2009년 전자정부 표준프레임워크 1단계 사업 실행환경 개발 SA & PL 2009년 전자정부 표준프레임워크 2단계 사업 관리환경 개발 SA & PL 2010년 전자정부 표준프레임워크 3단계 사업 운영환경 개발 SA & PL 2011년 현 전자정부 표준프레임워크 4단계 사업 SA & PL