1. 프레임워크
프레임워크란 특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램으로 Spring, Djangom, Ruby 등이 이에 속하며, 어플리케이션과 구조를 프레임워크에서 제어하고, 프레임워크 위에서 개발자의 코드가 동작한다.
라이브러리란 소프트웨어를 개발하기 쉽게 어떠한 기능을 제공하는 도구의 모음이다
프레임워크와 라이브러리는 프로그램을 쉽게 만들수 있게 하는 공통된 목적이 있지만 프레임워크는 정해진 규약을 지켜야하고 라이브러리는 정해진 규약이 없는 차이점이 있다.
2. 전자정부 프레임워크
전자정부 프레임워크, eGovFrame, 행정안전부 산하기관인 한국정보화진흥원에서 만든 웹 기반 어플리케이션 프레임워크이다. 정부 및 공공기관, 공기업 등의 웹사이트에서 자주 쓰이는 공통 기능들을 Java의 Spring 프레임워크와 라이브러리(MyBatis, Jackson, Apache Common 등) 을 갖고 미리 만들어 놓은 공통 컴포넌트와 이를 개발하는 개발환경, 실행환경, 운영환경, 관리환경으로 구성되어 있다. 대한민국 공공 부분 정보화 사업시 플랫폼별 표준화된 개발 프레임워크이며, Java 기반의 정보시스템 구축에 활용할 수 있는 개발, 운영 표준 환경을 제공한다.
2-1 eGovFrame 장점
1. 빠른 구현 시간
아키텍처에 해당하는 기본 골격 코드를 제공하기 때문에 개발자는 비즈니스 로직만 구현하므로 시간이 절약된다.
2. 개발자들의 역량 획일화
경험이 부족한 개발자라도 효율적이고 생산적인 소프트웨어 개발이 가능하도록 한다.
3. 관리의 용이
같은 프레임워크로 생성되면 아키텍처가 같으므로 유지보수에 필요한 시간과 인력이 감소한다.
4. 검증된 아키텍처의 재사용과 일관성 유지
재사용성이 높고 아키텍처가 변형되지 않는다.
2-2 eGovFrame을 왜 쓰는데?
전자정부 프레임워크를 주로 사용하는 발주처가 정부기관이며 이러한 프로젝트를 수주하는 사업에는 필수 요구사항이 있다. 주로 수주를 할때 해당 발주처에서 필요한 하드웨어는 어떠한 것을 사용하며 소프트웨어는 어떤걸 쓰겠다 라는 것이 다 기술 되어있습니다. 그래서 이러한 문서인 사업제안서는 이 요구사항을 기반으로 작성되어 있다.
전자정부프레임워크를 ‘왜 사용하나요?’ 라는 질문을 하면 고객이 요구했기 때문에 라고 답하는게 제일 정확한 답변이다. 고객이 원하는 대로 시스템 및 프로그램을 개발해주는 것이 기본이기 때문이다.
그런데 고객이 왜 그걸 원하느냐 라는 의문이 여기서 발생합니다. Spring을 사용해보신분들은 아시겠지만 Spring의 장점은 확장성이 뛰어나며 JAVA로 이루어져 있습니다. 그런데 그 뛰어난 범용성과 확장성 만큼 플러그인들끼리의 층돌로 인한 오동작이 있을 수 있기에 개인 또는 프로젝트를 수주받은 개발사에서 플러그인을 자기들 편하대로 사용을 한다면 해당 웹사이트에는 어떤 코드가 들어 있는지 알 수가 없는 신뢰 할 수 없는 코드가 된다. 그렇기에 전자정부프레임워크 처럼 이런 프레임워크를 신뢰할 수 있고 책임질 수 있는 개인이나 단체가 한가지 형태로 통합해서 그걸 패키지로 배포하는 경우는 개인이나 개발사에서 중구난방으로 플러그인을 적용하고 이것저것 추가 하는 것 보다는 적어도 정상적으로 프로그램이 작동 됨과 동시에 코드에 문제가 없음을 알리는 신뢰성이 있는 즉, 검증된 코드가 된다. 마찬가지로 이러한 프레임워크를 관리를 하는 곳이 존재 하니 문제가 생기면 기술지원도 받을 수 있다는 것이 장점이다.
하나의 공통된 프레임워크를 사용하면 특정 개발사에 종속되지 않고 여러 곳의 개발사에 그때그때 조건에 따라 발주가 가능하며 개발 했던 개발사가 유지보수를 하지 않더라도 다른 개발사에서 이어받아서 유지보수가 가능하게된다. 즉, 정부기관에서 관리하는 검증된 오픈 소스로 구성된 무료 프레임워크 라는 점이 강점이다.
3. eGovFramework & Spring Framework
전자정부 프레임워크가 스프링을 기반으로 만들어졌기 때문에 두 프레임워크가 같은 것으로 취급하기도 하는데 eGov에서 제공하고 있는 표준 프레임워크 적용 가이드를 보면 둘의 차이점이 존재한다.
Spring Framework는 Java를 활용하여 프로젝트 시작시 뼈대를 제공한다. 이때 뼈대는 누구나 사용할 법한 것을 의미하며, 스프링의 뼈대를 이용하여 배민에서 쓰면서 배민만의 고유한 기능을 넣어서 이름을 붙이면 배민프레임워크가 되고, 네이버에서 네이버만의 고유한 기능을 넣어서 이름을 붙이면 네이버프레임워크가 된다고 볼 수 있다.
전자정부 프레임워크는 대한민국 정부에서 정부의 프로젝트들을 미리 Spring + α 로 가공한 형태로 제공한 것으로 정리하면 스프링 기반의 대한민국 정부에서 만들어놓은 일종의 2차 가공 프레임워크가 되는 것이다.
Spring Framework 와 달리 전자정부 표준프레임워크를 사용하기 위해서는 DAO단에서 만들어 둔 DAO를 꼭 extends하여 구현해야 하며, 이게 적용되지 않으면 전자정부 프레임워크 요건에 어긋나서 전자정부 프레임워크라고 할 수 없는 것이다.
ref.https://engineering-skcc.github.io/egovframe/eGovFrame-introduce/
'전자정부' 카테고리의 다른 글
[eGovFrame] 전자정부 프레임워크 코딩하기에앞서 (1) | 2024.11.21 |
---|