티스토리 뷰

반응형

위 내용은 전자정부 표준프레임워크 교육지원 서비스의 '온라인 교육'에서 강의 내용 및 강의 자료를 토대로 정리한 글입니다.

전자정부 표준프레임워크 교육지원 서비스 : http://www.egovframe.go.kr/EgovEduMovie.jsp?menu=4&submenu=3

전자정부 표준프레임워크: 제1강_표준프레임워크 개요

들어가기

어플리케이션 환경의 변화

대부분 3 Tier 구조라고 불리는 웹 기반 환경에서 어플리케이션들이 동작함(일반적인 형태). 초기에는 하드웨어 중심의 시대였지만 발전을 거듭하며 서비스(컴포넌트, API, ... )를 활용하는 것이 대세

프레임워크 등장 배경

소프트웨어 패러다임의 변화

소프트웨어 패러다임은 변화하는 시대적 요구에 맞추어 빠르게 변화하여 왔고 궁극적으로 그 변화의 방향은 재사용성 극대화에 맞추어져 왔음

재사용 방식의 발전 방향

소스 재사용 → 재사용 메소드 → 재사용 객체 → 디자인 패턴 → 프레임워크 재사용을 극대화 해주고 생산성, 확장성, 성능, 효과적인 유지보수를 지원해주기 위해 재사용 방식은 다음과 같이 발전하여 왔으며 궁극적으로 프레임워크가 등장하게 됨

  • 소스 재사용 : 초보적인 재사용 방식. copy & paste → 수정 시 A, B 클래스를 모두 변경해야 함
  • 재사용 메소드 : 자주 이용하는 기능을 라이브러리로 만들어 재사용 → 유지보수 시 복잡해 질 수 있음
  • 재사용 객체 : 클래스를 통한 재사용 방법. 수직적인 재사용 방식 → 상황적인 문제를 놓고 보았을 때 다른 접근 방식이 요구됨
  • 디자인 패턴 : 공통적인 로직 문제에 대한 일반화된 해결을 의미. 상황적인 문제를 해결해주는 재사용 방식 → 전체 애플리케이션의 입장에서 보면 시스템의 부분적인 문제를 해결하는 것에 불과함
  • 프레임워크 : 디자인 패턴과 같은 부분적인 해결책을 전체적인 관점에서 통합하여 애플리케이션의 설계 및 구현 틀을 제공하는 것

표준프레임워크 이해

SW프레임워크 개념

프레임워크는 클래스 및 패턴의 집합으로 소프트웨어 개발의 효율성과 품질을 높이기 위한 반제품 성격의 소프트웨어이다.

SW 프레임워크 정의

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

기반SW와 애플리케이션 사이에 위치하며 디자인(아키텍처 또는 패턴) + 기반 소스 코드

표준화된 패턴 제공 & 재사용 가능한 모듈 제공


SW프레임워크 VS 컴포넌트

컴포넌트 : 비즈니스적인 기능들을 가지고 재사용하는 기능 제공

SW프레임워크 : 기반적인 표준, 개발자들이 사용할 수 있는 Low 레벨적인 기능들 제공

SW 프레임워크는 다중계층적인 구조를 가지고 여러 클래스 및 컴포넌트들의 특정한 패턴형태로 구성되어 있음

구분 프레임워크 컴포넌트
목적 재사용성, 이식성, 확장성 재사용성, 이식성
계층구조 어플리케이션에 종속적이며 대개 다중 계층구조를 가지며 복잡함 일반적으로 단일계층구조(flat)을 가지며 독립적임
내부구조 여러가지 목적을 가지고 내부를 드러내며 다양한 구조에 대한 모델을 제공함 내부의 자세한 구현을 감추고 Black box를 지향함
구성요소 컴포넌트로도 구성될 수 있으며 객체로도 구성 가능함 객체로 구성됨
기본원칙 다양한 확장이 원칙 사용과 배치가 편리함이 원칙
적용 상대적으로 다양한 어플리케이션의 형태로 존재함 EJB와 .NET 등의 표준환경을 가짐
기능 어플리케이션 개발을 위한 하부구조를 제공함 구체적인 로직과 알고리즘 구현 제공

SW 프레임워크 장점

SW 프레임워크를 활용하면 개발 및 운영 용이성을 제공하고, 시스템 복잡도 감소, 재사용성 확대 등의 장점이 있다.

  • 개발용이성 : 패턴 기반 개발과 비즈니스 로직에만 집중한 개발 가능. 공통 기능은 프레임워크가 제공
  • 운영용이성 : 변경이 용이함. 비즈니스로직/아키텍처 파악이 용이
  • 시스템 복잡도의 감소 : 복잡한 기술은 프레임워크에 의해 숨겨짐. 미리 잘 정의된 기술 셋 적용
  • 개발코드의 최소화 : 반복 개발 제거. 공통 컴포넌트와 서비스 활용
  • 이식성 : 플랫폼 비의존적인 개발 가능. 플랫폼과의 연동은 프레임워크가 제공
  • 변경용이성 : 잘 구조화 된 아키텍처 적용. 플랫폼에 비 의존적
  • 품질보증 : 검증된 개발 기술과 패턴에 따른 개발. 고급 개발자와 초급 개발자의 차이를 줄여줌
  • 설계와 코드의 재사용성 : 프레임워크의 서비스 및 패턴의 재사용. 사전에 개발된 컴포넌트의 재사용

SW 프레임워크 구조

Model 1 :

  • JSP 코드 안에 비즈니스 로직, 화면 등 모든 것을 가지고 있음
  • JavaBean을 통해 데이터베이스에서 결과를 받아서 보여주는 방식
  • JavaBean 클래스를 통해 연결이 됨

Model 2 (MVC) :

  • Servlet이라는 Controller의 등장
  • Controller에서 비즈니스 로직 처리
  • JSP는 화면만 보여줌
  • 코드의 역할이 나뉘어져 있음(파라매터를 받아서 처리하는 부분, 비즈니스 로직을 처리하는 부분, 결과를 보여주는 부분)

Model 1 :

  • 기능 단위로 소스 코드가 나뉨
  • 비슷한 기능들이 중복될 수도 있음
  • 접근점이 너무 많아 중앙 통제에 불리
  • JSP는 모든 기능들을 가지고 있음(업무 처리하는 부분, 화면 처리하는 부분, DB에서 값을 가져오는 부분 등)

Model 2 (MVC) :

  • 기술(역할) 단위로 소스 코드가 나뉨
  • 입력을 받는 접점은 Front Controller 하나이고, 분기 처리를 해줌
  • JSP는 화면만 가지고 있음 (껍데기 부분)


전자정부 표준프레임워크 개념

프레임워크는 집을 지을 때의 철골과 같은 개념

한 회사가 프레임워크를 구축해놓으면 그 사업은 계속해서 그 프레임워크를 사용할 수 밖에 없는 문제가 발생되었는데, 이를 해결하기 위해 표준프레임워크가 등장

개발방식

이전에는 모든 처리를 개발자들이 일일이 코딩을 해야했다면, 표준프레임워크에서는 필요한 프레임워크를 가져다가 조립하는 형태로 개발 가능

프레임워크 기반 템플릿 프로그램을 통해 개발자는 오직 비즈니스 로직 개발에만 전념하여 개발 생산성이 향상되고, 템플릿 기반의 개발 표준화를 통한 품질 보장 및 위험요소 극소화

표준화

전자정부 표준프레임워크 배경 및 목적

이전에는 업체나 기술에 대한 종속성 문제가 지속적으로 발생해 문제가 되었는데 이를 해결하기 위해 표준프레임워크가 등장


표준프레임워크 구성

표준프레임워크 구성

구성원칙

표준화 요구사항

  1. 사용이 편리하고 기능이 풍부한 환경 제공
  2. 다양한 기술, 업무요건 수용 가능한 유연한 구조
  3. 신속한 기술지원 서비스 체계
  4. 지속적인 유지보수와 적시적인 버전 업 체계
  5. 개방표준(Open Standard)의 준수
  6. 관련기관 및 업계의 의견을 충분 수렴
  7. 특정 사업자에 대한 종속성 배제
  8. 전자정부 표준프레임워크 인력양성
  9. 기술공개를 통한 중소기업 참여 활성화
  10. 오픈소스 프레임워크 기술 수용
  11. 업계의 최신 개발프레임워크 제품 기술 수용

표준화 원칙

  • 공공 기관 정보화담당자, 대학교수, SW업계로 구성된 자문 협의회의 구성과 운영
  • 상용 솔루션 관련 영역은 배제하거나 필수적인 기능만 제공
  • 상용 솔루션(UI Adaptor)와 연동이 가능하도록 표준을 제공하고 연동을 보장
  • 개방형 표준을 활용하고 오픈 소스를 적극 활용하여 기술 종속성 제거
  • 전자정부 사업에서 활용되는 주요 인프라 솔루션(WAS, DB 등)과 호환성을 보장
  • 분석 설계 산출물 및 소스코드의 공개를 통해 사용자의 활용성을 제고

표준프레임워크 진화·발전

Ver. 1.0 : 표준 프레임워크 완성(`09.06)

  • 개발환경, 실행환경
  • 공통컴포넌트 219종

Ver. 2.0 : 개선 및 모바일 확장(`11.11)

  • 주요 오픈소스 업그레이드
  • Spring 3.0, Eclipse 3.6
  • 경량화 및 기능개선
  • 모바일 웹

Ver. 2.5 : 신기술 확장(`12.11)

  • 배치 표준프레임워크
  • 모바일 디바이스API

Ver. 2.6 :기능 개선 및 확장(`13.06)

  • 개발환경 업그레이드
  • Juno SR2
  • 데이터 처리 개선
  • MyBatis
  • Spring Data
  • 오픈소스 업그레이드
  • POI 등

Ver. 2.7 : 모바일 업그레이드(`13.12)

  • 모바일 오픈소스 업그레이드

Ver. 3.0 : 업그레이드 개선(`14.06)

  • 주요 오픈소스 업그레이드(39종)
  • 신규 기능 개선(비동기 처리, 보안 설정 간소화 등)

Ver. 3.1 : 모바일 업그레이드(`14.09)

  • 공통컴포넌트 모바일 개선
  • KISA 보안점검 및 시큐어코딩 적용
  • slf4j 적용 및 소스정리와 버그조치

Ver. 3.2 : 패치 및 업그레이드(`15.01)

  • 공통컴포넌트
  • 모바일공통컴포넌트

Ver. 3.5 : 신기술 확장(`15.08)

  • 오픈소스 업그레이드 스프링프레임워크 4.0.9 - lbatis 처리 개선
  • 패치 및 업그레이드
  • JDK 1.7 적용(3.5)
  • JDK 1.8 적용(개발환경 3.5.1)
  • 실행환경 적용, 개발환경 적용
  • 공통컴포넌트 버그수정 및 적용
  • 모바일 실행환경/공통컴포넌트 업그레이드
  • 모바일 디바이스 API 업그레이드

Ver. 3.6 : 개선 및 업그레이드(`11.11)

  • 주요 오픈소스 업그레이드 - Spring 4.1.2, Eclipse Mars 2
  • 공통컴포넌트 30종 개선 - Mybatis 적용 및 UI 개선, 버그 수정사항 반영
  • KISA의 시큐어코딩 적용 및 패치 파일 제공
  • 모바일 디바이스API 업그레이드
  • 모바일 디바이스API 10종 추가 개발




표준프레임워크 3.6 개선사항

구성도

표준프레임워크는 실행, 개발, 관리, 운영 등 4개의 환경과 모바일 표준프레임워크, 공통컴포넌트로 구성

표준프레임워크 실행환경

화면처리, 업무처리, 데이터처리, 연계처리, 공통기반, 배치처리 등 6개 레이어의 표준프레임워크 실행환경 구현

구현기능 구현내용
화면처리 Layer Ajax Supprot 등 UI 컴포넌트에 대한 인터페이스 및 화면 구현에 필요한 아키텍처 제공(UI Adaptor 제공 등)
업무처리 Layer Spring 등 비즈니스 로직을 서비스로 구성하여 처리하는 기능을 제공(MVC 패턴 제공 등)
데이터처리 Layer MyBatis 등 데이터베이스와 관련된 각종 접속 및 SQL 처리 기능을 제공(DB 연결, SQL 처리 등)
연계/통합 Layer CXF 등 웹서비스, 연계 메타정보 등의 기능을 제공(Web Service 제공 등)
공통기반 Layer log4j 등 서버기능의 다양한 재사용 컴포넌트 및 개발에 필요한 유틸리티 제공(Bean 관리, 공통활용 기능 제공 등)
배치처리 Layer Batch Core 등 대용량 일괄 처리를 위한 설정 및 실행기능을 제공


표준프레임워크 개발환경

구현도구, 테스트도구, 형상관리도구, 배포도구 등 쉽고 편리한 프레임워크 개발환경 구현

구현기능 구현내용
구현도구

Implementation Tool

UML Editor / ERD Editor UML, ERD Notation을 작성할 수 있는 도구
통합 플러그인 실행환경 기반 개발을 위해 필요한 각 도구들 직관적으로 사용할 수 있는 화면
DBIO Editor SQL을 작성하고 수정할 수 있으며 테스트 수행을 통하여 sql에 대한 결과값을 확인하는 도구
테스트도구

Test Tool

Test Case 실행 가능한 테스트 코드를 작성할 수 있는 도구
Test Coverage 테스트 수행 커버리지를 분석하고 리포팅하는 도구
Test Reporting 테스트 결과를 다양한 포맷으로 리포팅하는 도구
배포도구

Deployment Tool

개발자 Build 도구 라이브러리 종속성 관리 및 개발자 PC에서 빌드할 수 있는 도구
배포 관리 이관 대상 및 주기를 설정할 수 있는 도구
형상관리도구

Configuration Management

Configuration Management 형상 요소의 식별 및 등록, History를 지원하는 형상관리 도구
Change Management 이슈를 관리할 수 있는 이슈 트래킹 시스템


표준프레임워크 관리환경

관리환경은 표준프레임워크에 대한 다양한 문의 및 서비스 요청에 대한 접수 및 내부 프로세스 처리


표준프레임워크 운영환경

전자정부 표준 프레임워크 기반 위에 실행되는 어플리케이션에서 발생하는 동작 정보와 수행로그를 에이전트를 활용하여 수집하고 이를 기반으로 운영자는 시스템 상태를 모니터링


공통컴포넌트

공통컴포넌트응 표준프레임워크 기반의 표준 준수 및 유연성을 확보하여 재사용성을 극대화하고 또한, 기존 웹 뿐만 아니라 모바일 공통컴포넌트를 추가하여 모바일 웹 구현 시 활용 가능


모바일 표준프레임워크

모바일 표준프레임워크는 표준프레임워크를 기반으로 모바일 서비스 제공을 위한, 사용자 경험 지원 기능, 모바일 공통컴포넌트 등을 추가적으로 구현한 모바일 웹 프레임워크


표준프레임워크 적용

기본적으로 JDK 1.5 이상이어야함

.NET이나 PHP 등과 같은 환경에서는 동작하지 않음

기존 개발프레임워크가 있는 경우 표준프레임워크 적용방안 (권장하지는 않음)

라이선스

표준프레임워크는 Apache v2.0, MIT 라이선스로 배포되어 자유로운 사용과 기업의 상업적 활용이 가능함

고려사항

표준프레임워크를 수정하고자 할 시 아래 기준을 고려해야 함

적용 지침

무조건 사용해야 한다는 규정은 없음

표준프레임워크 활용

표준프레임워크

전자정부표준프레임워크포탈(www.egovframe.go.kr)을 통해 표준프레임워크를 다운받아 활용

공통컴포넌트

위저드 방식을 이용하여 한번의 클릭으로 공통컴포넌트를 선택 및 설치하는 기능을 제공하며, 공통컴포넌트 설정부터 테이블 생성까지 바로 실행 가능한 코드를 생성하는 기능 제공

모바일 표준프레임워크

모바일 표준프레임워크는 전자정부 모바일 웹 사이트 구현을 위한 템플릿을 제공하며, 템플릿 기반의 개발 수행


표준프레임워크 적용사례

개요

신규 시스템 구축

목표시스템을 구축하기 위한 표준프레임워크 기반 모듈구성도는 다음과 같음

표준프레임워크는 개발 환경(구현, 테스트, 빌드), 실행환경(화면, 업무, 데이터 처리 등) 및 공통컴포넌트를 활용하여 개발생산성 및 재사용성 향상

자체 프레임워크 구축

다양한 기술 요구사항을 지원하기 위해 전자정부 프레임워크를 확장하여 다음과 같이 정의함



반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함