전자정부 프레임워크 란?
등장 배경 및 목적
개발 프레임워크는 정보시스템 개발을 위해 필요한 기능 및 아키텍처를 미리 만들어 제공함으로써 효율적인 어플리케이션 구축을 지원한다.
“전자정부 표준 프레임워크”는 공공사업에 적용되는 개발 프레임워크의 표준 정립으로 응용 SW 표준화, 품질 및 재 사용성 향상을 목표로 한다.
이를 통해 “전자정부 서비스의 품질향상” 및 “정보화 투자 효율성 향상”을 달성하고, 대·중소기업이 동일한 개발기반 위에서 공정 경쟁이 가능하게 된다.
※ 표준 프레임워크는 기존 다양한 플랫폼(.NET, php 등) 환경을 대체하기 위한 표준은 아니며, Java 기반의 정보 시스템 구축에 활용할 수 있는 개발·운영 표준 환경을 제공하기 위함이다.
즉, 전자정부 프레임워크란 행정안전부 산하 한국정보화진흥원에서 만든 웹 기반 어플리케이션 프레임워크로서 정부 및 공공기관, 공기업 등의 웹사이트에 자주 쓰이는 공통 기능들을 Java 의 Spring 프레임워크와 유명 Java 라이브러리(iBatis/MyBatis, Jackson, Apache Commons 등)을 가지고 미리 만들어 놓은 공통 컴포넌트와 이를 개발하는 개발환경, 실행환경, 운영환경, 관리환경 등으로 구성되어있다.
왜 이것을 사용할까?
먼저 이 전자정부 프레임워크를 주로 사용하는 발주처가 정부기관이며 이러한 프로젝트를 수주하는 사업에는 필수 요구 사항이라는게 존재한다.
주로 수주를 할 때 해당 발주처에서 필요한 하드웨어는 어떠한 것을 사용하며 소프트웨어는 어떤 걸 쓰겠다 라는 것이 다 기술이 되어있다.
그래서 이러한 문서인 사업 제안서는 이 요구 사항을 기반으로 작성되어 있다. 전자정부 프레임워크를 “왜 사용하나요?” 라는 질문을 하면 고객이 요구했기 때문에 라고 답하는게 제일 정확한 답변이다.
고객이 원하는 대로 시스템 및 프로그램을 개발 해주는 것이 기본이기 때문이다. 그런데 고객이 왜 그걸 원하느냐 라는 의문이 여기서 발생한다. 실제로 프레임워크의 장단점과 보안이 좋다 안좋다의 주제는 중요하지 않다. 전자 정부 프레임워크는 알다시피 Spring + 기타 플러그인(컴포넌트)를 하나로 묶어 패키지와 한 것이다.
그렇기에 Spring을 사용해본 사람들은 알겠지만 Spring의 장점은 확장성이 뛰어나며 Java로 이루저여 있다. 그런데 그 뛰어난 범용성과 확장성 만큼 플러그인들끼리의 충돌로 인한 오동작이 있을 수 있기에 개인 또는 프로젝트를 수주받은 개발사에서 플러그인을 자기들 편한대로 사용을 한다면 해당 웹사이트에는 어떤 코드가 들어 있는지 알 수가 없는 신뢰 할 수 없는 코드가 된다.
그렇기에 전자정부 프레임워크 처럼 이런 프레임워크를 신뢰할 수 있고 책임질 수 있는 개인이나 단체가 한가지 형태로 통합해서 그걸 패키지로 배포하는 경우는 개인이나 개발사에서 중구난방으로 플러그인을 적용하고 이것저것 추가 하는 것 보다는 적어도 정상적으로 프로그램이 작동 됨과 동시에 코드에 문제가 없음을 알리는 신뢰성이 있는. 즉, 검증된 코드가 된다.
마찬가지로 이러한 프레임워크를 관리를 하는 곳이 존재 하지 문제가 생기면 기술지원도 받을 수 있다는 것이 장점이다. 프레임워크라는 단어에서 보듯이 하나의 공통된 프레임워크를 사용하면 특정 개발사에 종속되지 않고 여러 곳의 개발사에 그때그때 조건에 따라 발주가 가능하며 개발 했던 개발사가 유지보수를 하지 않더라도 다른 개발사에서 이어받아서 유지보수가 가능하게 된다.
즉, 정부기관에서 관리하는 검증된 오픈 소스로 구성된 무료 프레임워크라는 점이 강점이다.
그렇다면 단점은 없을까?
단점이 있다. 실제 정부에서 생각하는 것과 개발하는 개발 당사자인 개발자들 입장에서는 생각의 차이가 존재 하기 때문에 단점 또한 명확하다.
전자정부표준 프레임워크, 약칭 eGov는 공공기관 웹사이트 개발 과정을 표준화하기 위한 의도에서 시작되었으나, 그러한 의도로 인해 구조가 경직되고 최신 기술을 반영하지 못하는 보수적인 기술이라는 것이 문제점으로 작용하고 있다.
특히 정부발 프로젝트에 기대는 SI 회사가 절대 다수를 차지하는 현실로 인해 한국의 SW 시장이 Java + Spring 으로 획일화되다시피 하는 결과를 낳았으며, 이는 곧 국내 소프트웨어 기술력 저하로 이어졌다. SI는 기본적으로 안정성과 유지보수를 추가하는 업계이지, 새로운 기술과 변화를 추구하는 곳이 아니기 때문. 그런데 사용하는 프레임워크와 제반 기술들까지 일원화되니 다양성이 죽어버린 것이다. 그나마 삼성전자와 네이버 등의 극소수 대기업들이 어느 정도 커버를 하는 상황.
물론 이것이 eGov의 잘못이라 하기는 어렵고, 진짜 원인은 SI 쪽으로 편중된 한국의 S/W 시장에 있다. 어지간한 대기업이 아니라면 SI를 빼고는 소프트웨어 사업을 벌이는 것이 불가능할 정도로 우리나라의 시장 상황은 열악하다. 어느 나라든 관공서가 아닌 민간 시장을 대상으로 자사 솔루션을 개발, 판매하는 기업들이 소프트웨어 시장의 기술 발전을 선도하는 편인데, 한국에는 이런 업체가 상대적으로 부족하다는 것이 근본적인 문제인 것이다.