본문 바로가기

Framework/eGovFrame

eGovFrame 시작하기

[ eGovFramework ] 시작하기

공공기관, 단체 등의 공공SI 사업에서 빼놓고 이야기할 수 없는 프레임워크  ' eGovFramework ' 에 대한 포스팅을 해볼까 합니다.


그전에, 프레임워크가 무엇인지에 대해 살짝만 알아보고 가도록 하겠습니다.

우리는 프로그래밍(코딩)을 할때, 메소드나 클래스화로 프로그램 모듈화를 통해, 코드의 재사용성을 향상 시킵니다. (*똑같은 코드를 똑같이 또 쓰는 번거러운 일을 할 순 없으니깐요.) 위키에서 이야기하기로는 '어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며, 소프트웨어 개발에 있어 하나의 뼈대 역활을 하며, 클래스와 라이브러리가 합쳐진 형태' 라고 정의를 합니다. 저는 이렇게 얘기를 하고싶습니다. 

프레임워크는 우리가 사용할 메소드와 로직 클래스화, 모듈화 작업들을 선행적으로 해놓은, '잘 만들어진 샘플 프로젝트' 

그렇기 때문에, 프레임워크를 잘 활용한다면, 처음부터 만드는 것보다 빠르고, 탄탄한 프로그래밍을 할 수 있게되는 것이죠. 물론 이런 장점을 활용하기 위해서는 프레임워크에 대한 이해와 공부가 필요합니다. 프레임워크에 대한 이해가 부족하고, 사용방법조차 모른다면, 아무리 잘만든 프레임워크라도 활용할 수 없는 것이 당연하겠지요. 말 그대로 그림의 떡입니다. 

자, 그렇다면 eGovFramwork 란 무엇이냐 ? 앞서 말씀드린대로, 공공사업분야에서 밀고있는 공통 프레임워크라고 보시면 될 것 같습니다. 밑에 그림은 eGovframe 공식홈페이지에서 퍼온 그림입니다. 

* 참고 - eGovframework 공식홈페이지 ( http://www.egovframe.go.kr/EgovIntro.jsp?menu=1&submenu=1 )


결국, 이 프레임워크를 사용하는 목적은 무엇이냐, 기업 프레임워크를 갖지않은 기업들과 갖고 있는 기업들간의 기술 빈부 격차를 줄이고, 모바일도 지원해주고, 편리하고 다양한 기능도 제공해주고, 재사용성을 올리기 위한 오픈형소스이다. 등의 목표와 설명이 쓰여져있습니다. 

사실 목표 그런 건 우리에게 중요하지 않습니다. 공공 웹사업분야에서 이 프레임워크를 사용해야만 한다는 것이 우리에게 중요합니다. (*그렇다고 프레임워크가 잘못되었다는 건 아닙니다. 잘 만들어진 프레임워크라고 생각합니다. 오해하지는 마십시요 ) 

하지만 실제로는 말만 eGovframework고, 막상 소스까보면 프레임워크 활용도 안한 경우가 많습니다. 분명 프레임워크에서 제공해주는 기능임에도 불구하고, 프레임워크에대한 이해도가 떨어진다면, 기능의 존재 유무조차도 인지 못한다거나, 사용에 불편성을 느껴 아예 새로 만들어 버리는 경우가 허다합니다.

특히 권한 Rule 부분에서 꼬이면, 게시판이고 뭐고 기본기능 조차 사용못하는 경우가 있기때문에, 아예 뼈대(프레임워크)만 세워놓고, 옆에 새 뼈대를 세워 다시 짓는 어이 없는 경우도 발생합니다.

이런 부분을 방지하기 위해서는 우리는 이제 eGovFramework에 대해서 공부하고 이해하려 합니다. 


eGovFramework 란 ?

대부분의 내용을 앞에 프레임워크 설명하면서 다한 것 같네요. 

명칭은 '전자정부 표준 프레임워크' 라고 합니다. (저랑 주변분들은 이가부라 부릅니다. 편의상 포스팅에서도 이가부라고 칭하겠습니다.) 전자정부 표준 프레임워크는 Spring Framework + Mybatis (iBatis) 등의 오픈 소스를 활용한 자바 기반의 프레임워크 입니다. *(eGov ver 3.5) iBatis : JDK 1.4 이상, (eGov ver 3.6) MyBatis : JDK 1.5 이상 , ( 오픈소스 구성 URL - http://www.egovframe.go.kr/EgovOSS.jsp?menu=1&submenu=2&leftsub=3 )

정부 표준 프레임워크이기때문에, 지속적인 업데이트가 이루어지는 살아있는 프레임워크입니다. 그렇기떄문에 항상 이가부 개발 진행에 앞서, 버전 업에 대한 이해와 연구가 필요할 것 같습니다. 포스팅을 하는 날짜 기준으로 현재 버전은 3.7까지 나왔네요. 

전자정부 표준프레임워크 라이선스 정책은 Apache License, Version 2.0 을 채택합니다.

단, 표준프레임워크 내에서 사용된 외부 오픈소스의 경우 원 오픈소스의 라이선스 정책을 유지합니다. 

* Apache License 2.0 

o Apache License 2.0의 “사용, 복제 및 배포에 관한 규정과 조건”에 명시된 바에 따르면, 사용에 따른
  소스코드 공개의 의무가 존재하지 않는 라이선스입니다.
  -이는, Apache License 2.0으로 배포된 소스코드를 그대로 재배포 하는 경우, 수정하여 재배포하는
   경우 및 그대로 단순히 사용만 하는 경우가 모두 포함되는 사항이며,
  -따라서, Apache License 2.0으로 배포된 오픈소스SW를 수정 및 사용하여 새로운 SW를 개발하는
   경우, 소스코드 공개의 의무가 존재하지 않습니다.
o 일반적으로 오픈소스SW 라이선스는 오픈소스SW의 상업적 이용에 대해 제한하지 않고 있으며,
  Apache License 2.0 또한 마찬가지로 상업적 이용에 제한을 두지 않고 있습니다.

o 오픈소스SW를 사용하여 새로운 SW를 개발하는 경우는, 오픈소스SW를 실행하여 사용하는 형태와
  오픈소스SW의 소스코드를 사용하는 형태로 나눌 수 있는데,
  -전자와 같은 경우는 결과물에 기존 오픈소스SW의 일부가 포함될 때에만 파생 저작물이라 할 수
   있으며, 포함되지 않을 때에는 오픈소스SW와 독립된 저작물입니다.
  -한편, 오픈소스SW의 소스코드를 사용하는 경우는, 소스코드의 수정 여부에 따라 각 오픈소스SW
   라이선스별로 다른 요구사항을 명시하고 있지만, 배포 시 일반적으로 라이선스 사본 및 저작권
   고지사항 포함 등을 요구하고 있습니다.

o Apache License 2.0과 같은 경우에는, 파생 저작물에 해당하는 경우, 배포시 "Apache License 2.0
  라이선스 사본 제공“, ”수정된 파일에 대한 안내문구 첨부“, ”저작권, 특허, 상표, 귀속에 관한 고지내용
  포함“등의 요구사항이 있으며, 자세한 사항은 Apache License 2.0을 참조하시기 바랍니다.

※ Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0

전자정부 모바일 표준프레임워크 라이선스는 MIT 라이선스를 채택하며, 

MIT 라이선스의 경우 사전 승인 없이 저작권자의 일므을 상용 목적으로 사용이 가능합니다. 

( * 자나깨나 고소미 조심 )




이 후 포스팅에서는,

eGovframework 3.7 version

Tomcat 8

Mysql 5.6.1 ver

을 활용한 예제들을 작성해 볼까합니다.