전자정부 표준프레임워크(eGovFrame) 소개(3)
Updated:
1. 형상 관리
소스 버전 관리 도구는 시스템 형상 요소(소스 및 데이터)를 문서화하고 변경을 소스 버전관리 절차에 따라 관리하고, 효율적으로 처리 하기 위한 통제 환경을 의미 합니다.
소스 버전 관리 도구의 특징 및 기능
- 형상 요소(소스 및 데이터)에 대한 변경 사항을 관리
- 버전 관리를 수행하고, 배포 도구를 통해 변경 사항을 배포
- 일정 주기에 백업 도구를 통해 백업을 수행
소스 버전 관리 도구의 구성요소 및 관계도
형상관리 중 Repository(저장소)는 프로젝트의 프로그램 소스들과 소스에 대한 변경 사항을 저장 합니다.
- 저장소 접근 (네트워크를 통해 여러 사람이 접근)
SVN은 Subversion의 줄임 말로 오픈소스 기반의 소스 버전 관리 도구이며, 여러 명이 작업하는 프로젝트의 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 해결하기 위해 Repository(저장소)를 만들어 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 소프트웨어 입니다.
- 신규 프로젝트 저장소에 추가
아래 그림은 이클립스에서 공유 중인 프로젝트에서 해당 소스를 저장소에 추가하고, 저장소에서 전체 소스의 최종 리비전을 받아오는 초기 Checkout을 보여 주고 있습니다. (저장소 인증 정책에 따라 ID, Password 입력 필요)
-
소스 단위 저장소에 추가
-
초기 Checkout (저장소에서 전체 소스 받기)
아래 그림은 이클립스에서 공유 중인 프로젝트에서 로컬과 비교하여 변경된 항목의 최신 버전 소스를 가져오고, 로컬에 체크아웃 한 소스를 수정, 파일 추가, 삭제 등을 한뒤 저장소에 저장 갱신하는 것을 보여 줍니다.
-
Update (저장소에 소스 업데이트)
-
Commit (저장소에 소스 저장/갱신)
아래 그림은 이클립스에서 공유 중인 프로젝트에서 SVN에 의해 관리되는 특정 소스와 관련된 과거 모든 리비전 내역을 관리 및 조회하는 것을 보여 줍니다.
- History (과거 모든 리비전 내역 관리/조회)
2. 실행 환경
전자정부 표준개발프레임워크 실행환경은 응용 SW의 구성 기반이 되며, 응용 SW 실행시 필요한 기본 기능을 제공하는 환경 입니다. (8개 서비스 그룹으로 구성)
전자정부 표준개발 프레임워크 실행환경 구성 요소는 다음과 같습니다.
- 화면처리: 업무 프로그램과 사용자 간의 인터페이스를 담당하는 레이어, 사용자 화면구성, 사용자 입력 정보 검증 등의 기능 제공
- 업무처리: 업무 프로그램의 업무 로직을 담당하는 레이어 업무 흐름 제어, 에러 처리 등의 기능 제공
- 데이터 처리: DB에 대한 연결 및 영속성 처리, 트랜잭션 관리 기능 제공
- 배치 처리: 대용량 데이터 처리 지원 작업 수행 및 관리 기능 제공
- 연계 통합: 타 시스테과의 연동 기능 제공
- 모바일 화면 처리: 모바일 환경의 화면 구성을 지원하는 사용자 경험 기반
- 모바일 디바이스 API 실행 환경: 모바일 하이브리드 어플리케이션 개발을 위한 디바이스 API 기능 제공
- 공통 기반: 실행 환경 서비스에서 공통적으로 사용하는 기능 제공
3. 공통기반 레이어
전자정부 표준개발프레임워크 공통기반 레이어 구성 요소는 아래와 같습니다.
서비스명 | 설명 |
---|---|
AOP | 관점 지향 프로그래밍(Aspect Oriented Programming) 지원 - 흩어진 Aspect를 모듈화 |
Cache | 비번히 사용되는 컨텐츠에 대해서 빠른 접근을 가능하게 하는 기능으로 잦은 접근을 통한 오버헤드난 시간을 단축시키는 역할 |
Compress/Decompress | 데이터를 압축 및 복원하는 기능 제공 - 데이터를 효율적으로 저장 및 전송하기 위해 원본 데이터를 압축하거나 압축된 데이터를 복원하여 원본 데이터를 구하는데 사용 |
Encryption/Decryption | 데이터에 대한 암호화 및 복호화 기능 제공 - 네트워크를 통한 데이터 송수신시 보안을 목적으로 사용 |
Excel | 엑셀 파일 포멧을 다룰수 있는 자바 라이브러리 제공 |
File Handling | 파일 생성 및 접근, 변경을 위해 File에 Access할 수 있는 기능 |
File Upload/Download | 화면처리 서비스 그룹에서 사용되며, 파일을 업로드 및 다운로드 하기 위한 기능 제공 |
FTP | FTP(File Transfer Protocol)프로토콜을 이용하여 데이터(파일)을 주고받기 위한 FTP 클라이언트 기능 제공 |
ID Generation | UUID(Universal Unique Identifier) 표준에 따라 시스템에서 사용하는 ID(Identifier)를 생성하는 기능 제공 |
IoC Container | 프레임워크 기본 기능인 IoC(Inversion of Control) 컨테이너 기능 제공 |
Logging | System.out.println 문을 사용한 오버헤드를 줄이고, 간편한 설정을 통해 로그를 저장하고 통제할 수 있는 기능 제공 |
SMTP 표준을 준수하며 이메일을 송신할 수 있도록 이메일 클라이언트 기능 제공 | |
Marshalling/Unmarshalling | 객체를 특정 데이터 형식으로 변환하고, 반대로 특정 데이터 형식으로 작성된 데이터를 객체로 반환하는 기능 제공 |
Object Pooling | Pool에 사용 가능한 객체가 있을 경우 객체를 할당 받거나, 없을 경우 Pool 크기에 따라 새로운 객체 생성 및 할당하는 기능 제공 |
Property | 외부 파일이나 환경 정보를 구성하는 키와 값의 쌍을 내부적으로 저장하고 있으며, 어플리케이션이 특정 키에 대한 값에 접근할 수 있도록 기능 제공 |
Resource | 국제화 및 현지화를 지원하기 위한 기능으로 키 값을 이용하여 국가 및 언어에 해당하는 메시지를 읽어오는 기능 제공 |
Scheduling | 어플리케이션 서버내에서 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 기능으로써, 유닉스의 크론(Cron)명령어와 유사한 기능 제공 |
Server Security | 서버 함수 및 데이터 접근시 보안 관리를 위해 사용자 인증 및 권한 관리 기능 제공 |
String Util | 문자열 데이터를 다루기 위한 다양한 기능 제공 |
XML Manipulation | XML을 생성하고, 읽고, 쓰기 위한 기능 제공 |
4. 아키텍처 뷰
전자정부 표준개발프레임워크는 실행환경 경량화로 하나의 파일로 일괄배포 및 설치되던 실행환경을 필수적 부분과 선택적 부분으로 나누어 배포하여 각 사업에 적합한 최적의 실행환경을 구성할 수 있습니다.
- 실행환경 사용시 ‘필수적인 서비스’들과 타 서비스의 ‘의존성이 높은 서비스’들을 “핵심 계층”으로 제공
- 실행환경 사용에 필수적이지 않은 서비스들은 “선택계층”으로 분류하여 각 사업에서 선택적으로 설치할 수 있도록 제공
- 핵심서비스는 기본적으로 설치되며 이외 각 사업에서 필요한 서비스는 개발환경에서 선택적으로 설치 가능
이번 포스팅에서는 전자정부 표준프레임워크의 형상관리 기능 및 실행환경의 핵심 레이어 계층과 Core 아키텍처 뷰에 대해서 살펴 보았습니다.
다음 포스팅에서는 금번 포스팅에서 살짝만 언급되었던 데이터 처리, 배치 처리, 화면 처리 레이어에 대해서 좀 더 자세히 알아보도록 하겠습니다.