표준프레임워크(전자정부 표준 프레임워크) 소개

“전자정부 표준프레임워크”는 공공사업에 적용되는 SW 프레임워크의 표준을 정립하고, 응용 SW 표준화, 품질 및 재사용성을 높일 수 있는 기반을 제공한다.


SW 프레임워크 등장배경

메인프레임 시대부터, Client/Server, 시대의 전환인 WEB의 등장 모바일/클라우드 시대까지 변화해오면서, 이제는 누구나 소프트웨어를 사용하고, 사용해야만 생활할 수 있는 시대가 되었다. 최근 들어서는 twitter, Facebook 등 소셜미디어의 등장으로 거대한 데이터들이 날마다 생산되고, 이러한 데이터를 분석하고 활용/처리하는데 대해 IT 업계의 대표적인 이슈로 자리매김하고 있다 이러한 변화 가운데에서도, 소프트웨어에 대한 사용자 요구사항 중 초기부터 현재에 이르기까지 가장 중요하게 생각되었던 부분은 “자동화”, “재사용” 처리이다. 이러한 자동화는 기술이 발전함에 따라 실시간(real-time) 처리 부분과 일괄(Batch)처리로 구분하게 되었고, 오늘날과 같이 대규모의 데이터가 관리되는 시점에서는 대용량 데이터 처리와 같은 수 많은 분야들이 만들어지게 되었다. 소프트웨어는 서비스 사용자 입장에서도 많은 변화가 있어왔지만, 소프트웨어 서비스를 개발하고 제공하는 방법 면에서도, 위기 극복을 위해 끊임없이 진화·발전하며 많은 변화가 있었다. 특히, 소프트웨어 규모의 대형화 및 복잡화로 개발비용이 증대 되었고, 일관되지 않은 개발방식으로인해 유지보수성이 악화되었으며, 새로운 기술에 대한 교육과 훈련이 부족 하여 SW 개발 및 운영에 많은 문제점이 발생되게 되었다. 이러한 문제를 해결하기 위해 재사용 방식을 높일 수 있도록 다양한 형태의 기술들이 발전되었다.

  1. 소스 재사용 초보적인 재사용 방식으로 과거에 유사한 문제를 코딩한 적이 있거나 비슷한 예제를 다른 코드에서 복사해서 사용하는 방법을 말한다.

  2. 재사용 메소드 복사/붙이기 방식과 동일한 코드가 여러 클래스에서 나오는 것을 지양하기 위한 방법으로 C언어에서 하던 것처럼 자주 이용하는 기능을 라이브러리로 만들어 재사용하는 방식을 말한다.

  3. 재사용 객체 기존의 재사용방식 – 소스 재사용, 재사용 메소드 – 들은 자바뿐만 아니라 다른 언어를 사용할 때도 가능한 방식이나, 확장이 쉽지 않은 방식이었다면, 자바 언어에서는 클래스를 설계하고 상속/확장하는 방식으로 재사용을 진행한다.

  4. 디자인패턴 클래스의 재사용방식이 객체의 수직적인 재사용 방식이었다면 디자인 패턴은 상황적인 문제를 해결해주는 재사용 방식이다. 공통적인 로직 문제에 대한 일반화된 해결 방법으로 클래스의 재사용이 아니라 메커니즘의 재사용으로 진행되는 방식이다.

  5. SW 프레임워크 디자인패턴은 상황에 대한 해결은 가능하였지만, 시스템 전체에 대해서는 건건이 직접패턴을 적용하여 문제를 해결해야 되었다. 이러한 문제점을 해결하기 위해 전체 시스템적 관점에서 표준화된 디자인 패턴을 적용한 설계 및 구현체가 SW 프레임워크이다


SW 프레임워크 정의

SW 프레임워크의 사전적 의미는 “무엇을 이루는 뼈대 혹은 기반 구조”를 말한다. 소프트웨어 프레임워크는 소프트웨어 개발을 위한 뼈대 구조로 개발을 도와주는 부분부터 사상에 이르기까지 다양한 범위로 논의 되고 있다. 이외에도 여러 SW 프레임워크 정의를 찾아볼 수 있다. “ 소프트웨어 시스템에 대한 라이브러리 또는 클래스의 재사용 세트” “ 웹 애플리케이션 프레임워크 (WAF)는 동적 웹 사이트, 웹 애플리케이션, 웹 서비스 및 웹 자원의 개발을 지원하도록 설계된 소프트웨어 프레임워크이다. 이 프레임워크는 웹 개발 수행 일반적인 활동과 관련된 오버 헤드를 완화하는 것을 목적으로 한다. 예를 들어, 많은 프레임 워크는 데이터베이스 액세스, 템플릿 워크 및 세션 관리를 위한 라이브러리를 제공하고, 코드 재사용을 지원한다.” “ 프레임워크는 소프트웨어의 특정 클래스에 대한 재사용 가능한 디자인을 구성하는 클래스를 협력의 집합 - GoF의 패턴 : 랄프 존슨” 소프트웨어 개발위기에서 특정한 소프트웨어 개발 영역에서 자주 발생하는 문제를 해결하기 위해 경험적으로 축적된 설계 패턴들로써, Best Practice의 모음인 디자인패턴은 해결을 위한 많은 도움을 주었다. 그러나, 디자인 패턴은 실체가 아닌 개념적인 방법만을 제시하고 있는 점에 그 한계가 있다. 반면에 프레임워크는 이러한 디자인 패턴을 실체로 구현한 일종의 솔루션이라 할 수 있다. 최근에는 여기에 다양한 개발 가이드와 개발 도구 등도 함께 제공하여 프레임워크로 볼 수 있다. 이러한 의미들을 종합적으로 고려하여 다음과 같이 SW 프레임워크를 정의하였다.

  • 일련의 문제 해결을 위한 추상화된 디자인을 구현한 클래스들의 집합으로 클래스보다는 큰 규모의 재사용을 지원함
  • 구체적이며 확장 가능한 기반 코드, 설계자가 의도하는 아키텍처와 디자인 패턴 집합
  • 실전에서 얻은 최적화 개발 경험을 반영한 재사용 가능한 API 집합
  • 라이브러리와 달리 애플리케이션의 틀과 구조를 결정, 그 위에 개발된 개발자의 코드를 제어하는 반제품 성격의 소프트웨어

표준프레임워크 개요

국내 대표적인 공공정보화사업 추진체계인 전자정부지원사업 사례를 살펴보면, 표준프레임워크 개발 이전 대부분의 공공정보화 사업에서 대기업의 SW 프레임워크가 도입 활용되었다. 대기업 SW 프레임워크를 활용했을 때 발생되는 문제점으로는 폐쇄적인 정책으로 인해 자사 SW 프레임워크를 외부에 공개하지도 판매하지도 않기 때문에 상호 호환성을 보장하기가 매우 어렵다는 점이다. 즉, A사가 구축한 응용시스템에 대한 구조를 다른 B사가 파악하기 매우 어렵기 때문에 연속사업 혹은 유지보수사업의 사업자 변경을 원천적으로 어렵게 한다는 문제가 있었다. 또한 이미 특정 SW 프레임워크를 활용하여 구축된 소스코드를 다른 SW 프레임워크로 변경은 불가능하기 때문에 SW 프레임워크의 적용은 불가피하게 소스코드의 종속성 문제를 가지게 되었다. SW 프레임워크는 건축물의 철골과 같아서 SW 프레임워크를 교체한다는 것은 기존 건축물을 모두 허물고 철골부터 새로 만드는 것과 같다. 정보시스템이 특정 SW 프레임워크 사용으로 인해 사업자 및 기술 종속성을 가지는 문제점을 해결하기 위해 개방형 표준을 채택하여 공동으로 활용할 수 있는 SW 프레임워크를 필요로 하게 되었다.

“전자정부 표준프레임워크”는 공공사업에 적용되는 SW프레임워크의 표준을 정립하고, 응용 SW 표준화, 품질 및 재사용성을 높일 수 있는 기반을 제공한다. 표준프레임워크는 실행, 개발, 관리, 운영 등 4개의 환경과 모바일 표준프레임워크, 그리고 공통컴포넌트로 구성되며, 참조프레임워크로 대표적인 오픈소스 SW프레임워크인 스프링 프레임워크를 채택하였으며, 이외에도 다양한 OSS를 적용/활용하여 구성되었다. 표준프레임워크는 정보시스템 개발을 위해 필요한 기능 및 아키텍처를 미리 만들어 제공함으로써 효율적인 어플리케이션 구축을 지원한다.

“전자정부 표준프레임워크”는 공공사업에 적용되는 개발프레임워크의 표준 정립으로 응용 SW 표준화, 품질 및 재 사용성 향상을 목표로 한다. 이를 통해“전자정부 서비스의 품질향상” 및 “정보화 투자 효율성 향상”을 달성하고, 대ㆍ중소기업이 동일한 개발기반 위에서 공정 경쟁이 가능하게 된다. 표준프레임워크는 기존 다양한 플랫폼(.NET, php 등) 환경을 대체하기 위한 표준은 아니며, java 기반의 정보시스템 구축에 활용하실 수 있는 개발·운영 표준 환경을 제공하기 위한 것이다.

전자정부 표준프레임워크는 사전에 다양한 요구사항을 수렴하고 이를 토대로 개발되었다. 특정업체 및 기술에 종속되는 문제를 없애기 위해 범용적으로 많이 사용되는 오픈소스를 최대한 활용하였으며, 소스코드뿐만 아니라 개발문서(산출물)도 함께 공개함으로써 사용 편의성을 높이고자 하였다. 전자정부 표준프레임워크 구축을 위해 진행되었던 내용은 다음과 같다.

  • 사전 ISP 과정을 거쳐 최적의 기능 도출
  • 전세계적으로 활용되고 있는 오픈소스를 최대한 활용 → 특정업체 기술종속성 배제
  • 상용 솔루션이 존재하는 기능은 가능한 제외
  • 공공 정보화 사업에 많이 활용되는 인프라 환경과의 호환성 보장
  • 광범위한 보급·확산을 위해 소스 뿐만 아니라 분석·설계 산출물도 함께 공개
  • 다수가 만족하는 표준이 될 수 있도록, 개발 과정에서 다양한 전문가로 구성된 협의회 의견을 청취·반영

전자정부 표준프레임워크는 자바기반의 정보시스템 개발과 운영 시에 필요한 기본기능들을 표준화하며 미리 구현해 둔 것으로 개발자는 이를 활용하여 업무 기능을 구현한 후 조립함으로써 전체 시스템을 완성할 수 있다.

전자정부 표준프레임워크는 공공사업에 적용되는 SW프레임워크의 표준을 정립하여 SW의 품질 및 재사용성 향상을 목표로 한다. 이를 통해 “전자정부서비스의 품질향상” 및 “정보화 투자 효율성 향상”을 달성하고 대 중 소기업이 동일한 개발기반 위에서 공정경쟁이 가능하게 되었다.


표준프레임워크 활용 고려 사항

효과적인 사용을 위해서는 아래의 조건을 충족해야 한다.

  1. 자바 기반의 웹 응용 시스템(WAS가 존재하는 경우)
  2. (2.7 기준) JavaEE(J2EE) 5 혹은 JDK1.5 이상의 환경 (단,개발환경 2.7 이상에서는 JDK 1.6이상 필요1)) (3.0 ~ 3.1 기준) JavaEE(J2EE) 6 혹은 JDK1.6 이상의 환경 (3.5 ~ 기준) JavaEE(J2EE) 7 혹은 JDK1.7 환경
  3. 신규 개발시스템으로써, 기존 시스템과 물리적 혹은 논리적으로 구분되는 경우
    • 실행환경 내 모바일표준프레임워크의 사용자 경험(UX) 지원 기능은 프레임워크와 개발 언어 종류에 상관없이 활용가능 (javascript 기반)

표준프레임워크는 표준으로써 목적을 만족하기 위하여 아래의 규칙을 준수하여 적용하여야 한다.

  • 실행환경은 원칙적으로 변경 없이 활용해야 함
  • 개발환경은 기능의 변경과 추가에 제약사항 없음
  • 공통컴포넌트는 변경 가능하나, 표준프레임워크 아키텍처 준수 필요