주요 특징
전자정부 표준프레임워크 실행환경의 주요 특징은 다음과 같습니다.
실행환경 경량화 : 하나의 파일로 일괄 배포 및 설치되던 실행환경을 필수적 부분과 선택적 부분으로 나누어 배포하여 각 사업에 적합한 최적의 실행환경을 구성
- 실행환경 사용시 ‘필수적인 서비스’들과 타 서비스의 ‘의존성이 높은 서비스’들을 “핵심 계층”으로 제공
- 실행환경 사용에 필수적이지 않은 서비스들은 “선택계층”으로 분류하여 각 사업에서 선택적으로 설치할 수 있도록 제공
- 핵심서비스는 기본적으로 설치되며 이외 각 사업에서 필요한 서비스는 개발환경에서 선택적으로 설치 가능
- 공통기반
- AOP, Cache, Compress/Decompress, Encryption/Decryption, Mail, File Handling, File Upload/Download, ID Generation, Resource, Ioc Container, Logging, Marshalling/Unmarshalling, Property, Object Pooling, Scheduling, Server Security, String Util, FTP, Excel, XML Manipulation
- 화면처리
- Ajax Support, Internationalization, MVC, Security, UI Adaptor
- 데이터처리
- Data Access, Data Source, ORM, Transaction
- 연계통합
- Naming Service, Web Service, Intergration Service
- 업무처리
- Process Control, Exception Handling
- 배치처리
- Job Configuration, Step Configuration, ItemReader/ItemWriter, Job Execution, Step Execution, Tasklet, Job Repository, Scalability, Job Runner, Job Launcher, History Management, Skip/Repeat/Retry, Sync/Async Processing, Pre/Post Processing
- 모바일 화면처리
- jQuery, Jquery Mobile
- 모바일
디바이스API - Device API
구성
전자정부 표준프레임워크 실행환경은 8개 서비스 그룹으로 구성되며 39개 서비스를 제공합니다.
화면처리
화면처리 서비스그룹은 업무처리 서비스와 사용자간의 인터페이스 를 담당하는 서비스로 사용자 화면 구성 및 사용자 입력 정보 검증 등의 기능을 지원합니다.
- Ajax Support
- Ajax는 대화식 웹 애플리케이션의 제작을 위해 HTML과 CSS, DOM, 자바 스크립트, XML, XSLT 등과 같은 조합을 이용하는 웹 개발 기법으로 Ajax 기능 지원을 위한 Custom Tag Library를 제공
- Internationalization
- Internationalization은 다양한 지역과 언어 환경을 지원할 수 있는 서비스로, 서버 설정 및 클라이언트 브라우저 환경에 따라 자동화된 다국어 기능을 제공
- MVC
- MVC 디자인 패턴을 적용하여 사용자 화면을 개발할 수 있도록 MVC 기반 구조를 제공
- Security
- 웹 응용프로그램 작성 시 발생될 수 있는 웹 보안상의 취약점(XSS, SQL Injection 등)에 대응하기 위한 기능을 제공
- UI Adaptor
- 화면 레이어의 구현 방식에 따라 업무로직 레이어가 변경되는 것을 막기 위해서, 업무처리 Layer에서 사용할 데이터 타입을 정의하고, 화면 레이어에서 사용하는 in/out parameter를 해당 구현 방식에 맞게 변환해주는 기능 제공
데이터처리
데이터처리 서비스는 데이터베이스에 대한 연결 및 영속성 처리와 트랜잭션 관리 기능을 제공합니다.
- Data Access
- 다양한 데이터베이스 솔루션 및 데이터베이스 접근 기술에 대한 추상화된 접근 방식을 제공하여 업무 로직과 데이터베이스 솔루션 및 접근 기술 간의 종속성을 배제하기 위한 기능을 제공
- Data Source
- 다양한 방식의 데이터베이스 연결을 제공하고, 이에 대한 추상화 계층을 제공함으로써, 업무 로직과 데이터베이스 연결 방식 간의 종속성을 배제하기 위한 기능을 제공
- ORM
- 객체 모델과 관계형 데이터베이스 간의 매핑 기능인 ORM (Object-Relational Mapping) 기능을 제공함으로서, SQL이 아닌 객체를 이용한 업무 로직의 작성이 가능하도록 지원
- Transaction
- Database Transaction을 처리하기 위한 서비스로서, Transaction 처리에 대한 추상화된 방법을 제공하여 일관성 있는 프로그래밍 모델을 제공
배치처리
배치처리 서비스는 일괄 데이터 처리를 위한 설정 및 실행 기능을 제공합니다.
- Job Configuration
- 배치 Job 설정 기능 제공
- Step Configuration
- 배치 Step 설정 기능 제공
- ItemReader/ItemWriter
- 리소스 유형에 따른 File/DB 처리 기능 제공
- Job Execution
- Job Instance의 수행 기능 제공
- Step Execution
- Step Instance의 수행 기능 제공
- Tasklet
- Job의 실행중 배치 작업 외 단순처리가 필요한 작업(파일이동 등)의 처리기능을 제공
- Job Repository
- JobExecution, StepExecution 정보를 저장
- Job Runner
- Scheduler, CommandLine (CronTab), Http/Webservice 방식 지원 인터페이스 제공
- Job Launcher
- Job Repository 및 실행 방법 설정 기능 제공
- History Management
- JobRepository와 이력관리 기능 제공
- Scalability
- Partitioning 기능 제공
- Sync / Async Processing
- JobLauncher 설정을 통한 동기/비동기 처리 기능 제공
- Parallel Processing
- Job 설정을 사용하여 병렬처리 기능 제공
- Pre/Post Processing
- Listener를 사용한 전처리/후처리 Event Handling 기능 제공
- Skip/Repeat/Retry
- 건너뛰기, 반복, 재시도 기능 제공
연계통합
연계통합 레이어는 타 시스템과의 연동기능을 지원합니다.
- Naming Service
- 원격에 있는 모듈 및 자원 등을 찾아주는 기능을 제공
- Web Service
- 연계 등을 위하여 업무 서비스를 웹서비스의 형태로 애플리케이션 외부에 노출시켜 타 시스템이나 애플리케이션에서 서비스를 이용할 수 있도록 하는 기능을 제공
- Integration Service
- 전자정부 시스템과의 연계를 위한 공통 인터페이스를 제공하여, 다양한 솔루션 연계 방식에 대한 표준 처리 방식을 제공
공통기반
공통기반 서비스는 실행환경 서비스 간에 공통적으로 사용되는 기능을 제공합니다.
- AOP
- 관점지향 프로그래밍(Aspect Oriented Programming AOP) 사상을 구현하고 지원
- Cache
- 빈번히 사용되는 컨텐츠에 대해서 빠른 접근을 가능하게 하는 기능으로 잦은 접근을 통한 오버헤드나 시간을 단축시키는 역할을 함
- Compress/Decompress
- 데이터를 압축 및 복원하는 기능을 제공한다. 데이터를 효율적으로 저장 및 전송하기 위해 원본 데이터를 압축하거나 압축된 데이터를 복원하여 원본 데이터를 구하는데 사용될 수 있음
- Encryption/Decryption
- 데이터에 대한 암호화 및 복호화 기능을 제공하며, 네트워크를 통한 데이터 송수신을 시 보안을 목적으로 사용될 수 있음
- Excel
- 엑셀 파일 포맷을 다룰 수 있는 자바 라이브러리를 제공
- File Handling
- File 생성 및 접근, 변경을 위해 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
- 국제화(Internationalization) 및 현지화(Localization)를 지원하기 위한 기능으로, 키값을 이용하여 국가 및 언어에 해당하는 메시지를 읽어오는 기능 제공
- Scheduling
- 애플리케이션 서버 내에서 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 기능으로서, 유닉스의 크론(Cron) 명령어와 유사한 기능을 제공
- Server Security
- 서버 함수 및 데이터 접근 시 보안 관리를 위해 사용자 인증 및 권한 관리 기능을 제공
- String Util
- 문자열 데이터를 다루기 위한 다양한 기능을 제공
- XML Manipulation
- XML을 생성하고, 읽고, 쓰기 위한 기능을 제공
모바일 화면처리
모바일 화면처리 서비스는 모바일 디바이스에 최적화 된 모바일 웹의 사용성과 편의성 증대를 위한 사용자 경험 기능을 제공합니다.
- 모바일 UX 컴포넌트 (15종)
- Panel, Label/Text, Tabs, Form, Grid, Table/List View, Icon, Button, Menu, Dialog, Date/Time Picker, Check/Radio, Selector/Switch, Internal/External Link, Processing Dialog/Bar
- Button
-
- 형태 : 둥근, 사각(2형)
- 색상 : 검정,파랑,회색,흰색,노랑,빨강,초록(7종)
- 크기 : 가로 - 넓이에 맞춰서 제공, 세로 - normal & small
- Panel
- 색상 : 검정, 파랑, 회색, 흰색, 노랑, 빨강, 초록(7종)
- Internal/External Link
- Link(5종) : Link Internal, Link external, Email, Phone links, Error page
- Label/Text
- 색상, 크기, 정렬, 폰트 지정
- Tabs
- 모양 : Normal tab, Round tab(2종)
- Form
-
- 요소 : Text, search inputs, Slider, form 등
- 색상 : 검정, 파랑, 회색, 흰색, 노랑, 빨강, 초록(7종)
- Menu
-
- 효과 : slide, slideup, slidedown, pop, fade, flip, turn, flow, slidefade(9종)
- 형태 : Dialog, Grid, List, Collapsible(4종)
- Processing Dialog/Bar
-
- Processing Dialog(1종)
- Processing Bar(1종)
- Dialog
-
- 형태 : Action, Sheet, Overlay, Alert, Prompt, Comfirm(5종)
- 색상 : 검정, 파랑, 회색, 흰색, 노랑, 빨강, 초록(7종)
- Grid View
-
- 1/2, 1/3, 1/4, 1/5 Grid View
- 가변 Grid View
- Table/List View
- Numbered list, Thumbnalis, Count bubble, Icon List, Split button list, Change Mode List 등
- Date/Time Picker
- Android/Popup/Flip Date Picker, Android(12/24h)/Flip Time Picker
- Check/Radio
- 형태, 효과 : Normal, Group
- Icon
- 형태,색상 : 모영 별, 색상 별 아이콘 지원
- Selector/Switches
-
- 모양 : Normal, Group
- 효과 : 선택 색상 변경 효과, 팝업 효과 등
모바일 디바이스API
모바일 디바이스API는 웹 리소스를 통해 디바이스 내의 Native 기능을 호출하기 위하여 디바이스 API 실행환경 내에서 JavaScript 형태로 제공되는 API 모음입니다.
- Accelerator
- 단말기의 가속도계 정보를 제공하는 API(단말기의 움직임 정보를 x, y, z 축의 값으로 제공)
- GPS
- 단말기의 현재 위치에 대한 정보를 제공하는 API
- Vibrator
- 단말기의 진동 및 알림음 기능을 호출할 수 있는 API
- Camera
- 단말기의 카메라 촬영 기능을 호출할 수 있는 API
- Contact
- 단말기의 주소록(연락처) 정보를 조회 및 수정할 수 있는 API
- Compass
- 단말기의 방향정보를 조회할 수 있는 API
- File Reader/Writer
- 단말기의 내장 저장 장치의 파일을 읽기 쓰기 기능을 제공하는 API
- Network
- 단말기의 네트워크 연결 정보를 조회할 수 있는 API
- Device
- 단말기의 기본 정보(UUID, 버전 등)을 조회할 수 있는 API
- Media
- 단말기의 오디오 파일을 컨트롤할 수 있는 API
- Interface
- 전자정부 표준프레임워크 기반 웹 서버 애플리케이션과 연계를 지원하는 API
- Push Notifications
- 모바일 앱 사용자에게 다양한 푸시 메세지를 전달할 수 있는 기능을 제공하는 API
- File Opener
- 연결 단말기의 사용 가능한 문서 앱의 연동을 제공하는 API
- Streaming Media
- 멀티미디어 동영상을 실시간으로 볼수 있도록 내장 미디어 플레이어로 연동하는 기능을 호출할 수 있는 API
- Barcode Scanner
- 바코드, QR코드 등 정보를 확인할 수 있는 기능을 호출할 수 있는 API
- WebResource Update
- 웹 리소스의 최신버전 조회 및 버전 업데이트를 진행할 수 있는 기능을 호출할 수 있는 API
- Device FileMgmt
- 디바이스 저장소 내의 폴더(디렉토리) 및 파일 관리(이동, 삭제, 복사) 기능을 호출할 수 있는 API
- JailbreakDetection
- 디바이스의 루팅 및 탈옥 정보 조회 기능을 호출할 수 있는 API
- SocketIO
- 웹 서버의 웹소켓에 접속하여 양방향 데이터 처리 기능을 사용할 수 있는 API
- SQLite DB
- 디바이스 내 독립적인 데이터베이스를 사용할 수 있는 기능을 지원하는 API
- Unzip
- 단말기의 파일의 압축과 해제 기능을 지원하는 API
실행환경 오픈소스 현황
표준프레임워크 실행환경의 서비스는 오픈소스 소프트웨어에 기반하여 재활용하거나 확장하여 제공됩니다.
일부 서비스는 선정 기준을 만족하는 오픈소스 소프트웨어가 선정되지 않았으며 자체 구현 하였습니다.
서비스그룹 | 서비스 | 오픈소스 소프트웨어 | 실행환경 확장 및 자체 개발 | 비고 |
---|---|---|---|---|
화면처리 | Ajax Support | Ajax Tags | ||
Internationalization | Spring | |||
MVC | Spring MVC | Custom Tag 외 기능 확장 | ||
Security | Apache Commons Validator | |||
UI Adaptor | 선정되지 않음 | UI Adaptor 연동 매뉴얼 제공 | ||
업무처리 | Process Control | Spring Web Flow | ||
Exception Handling | Spring | Exception 기능 확장 | ||
데이터처리 | Data Access | iBatis SQL Maps MyBatis |
Spring-iBatis 기능 확장 | |
DataSource | Spring | |||
ORM | Hibernate, Spring Data JPA | |||
Transaction | Spring | |||
연계통합 | Naming Service Support | Spring | ||
Integration Service | 선정되지 않음 | 표준 인터페이스 처리 기능 개발 | ||
Web Service | Apache CXF | Intergration Service 연계 기능 확장 | ||
배치처리 | Batch Core | Spring Batch | Configuration 외 기능 확장 및 데이터 처리 성능 향상 | |
공통기반 | AOP | Spring | ||
Cache | EHCache | |||
Compress / Decompress | Apache Commons Compress | |||
Encryption / Decryption | Java simplified encryption (jasypt) | 암호화 기능 확장 | ||
Excel | Apache POI, jXLS | Excel 기능 확장 | ||
File Handling | Jakarta Commons VFS | File Access 기능 확장 | ||
File Upload / Download | Apache Commons FileUpload | |||
FTP | Apache Commons Net | |||
ID Generation | 선정되지 않음 | 시스템 고유 ID 생성 기능 개발 | ||
IoC Container | Spring | |||
Logging | Log4j | |||
Apache Commons Email | ||||
Marshalling / Unmarshalling | Castor Apache XML Beans | |||
Object Pooling | Apache Commons Pool | |||
Property | Spring | Property 기능 확장 | ||
Resource | Spring | |||
Scheduling | Quartz | |||
Server Security | Spring Security | 인증, 권한 관리 기능 확장 | ||
String Util | Jakarta Regexp | 문자열 처리 기능 확장 | ||
XML Manipulation | Apache Xerces2, JDOM | XML 처리 기능 확장 | ||
모바일 화면처리 | 모바일 UX 컴포넌트 | jQuery Mobile 1.4.5 | ||
모바일 디바이스API | Device API | Cordova(PhoneGap) 8.1.2 |