실행환경 아키텍처구성
|
전자정부 표준 프레임워크 실행환경은 5개 서비스 그룹으로 구성되며 34개 서비스를 제공한다. |
|
|
|
화면처리 |
| |
|
화면처리 서비스그룹은 업무처리 서비스와 사용자간의 인터페이스를 담당하는 서비스로 사용자 화면 구성 및 사용자 입력 정보 검증 등의 기능을 지원한다. |
- 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를 해당 구현 방식에 맞게 변환해주는 기능 제공한다.
|
|
업무처리 |
| |
업무처리 서비스는 업무 프로그램의 업무 로직을 담당하는 서비스로 업무 흐름제어, 트랜잭션 관리, 에러 처리 등의 기능을 제공한다. |
- Process Control: 비지니스 로직과 업무 흐름의 분리를 지원하며, XML 등의 외부 설정으로 업무흐름 구성을 제공하고, 미리 정의된 프로세스를 실행하는 기능을 제공한다.
- Exception Handling: 응용 프로그래밍의 수행 과정에서 발생하는 예외사항(Exception)을 처리하기 위해 표준화된 방법을 제공한다.
|
|
연계통합 |
| |
연계통합 레이어는 타 시스템과의 연동기능을 지원한다. |
- 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 문을 사용한 오버헤드를 줄이고, 간편한 설정을 통해 로그를 저장하고 통제할 수 있는 기능을 제공한다.
- Mail: SMTP 표준을 준수하며 이메일을 송신할 수 있도록 이메일 클라이언트 기능을 제공한다.
- Marshalling/Unmarshalling: 객체를 특정 데이터 형식으로 변환하고, 반대로 특정 데이터 형식으로 작성된 데이터를 객체로 변환하는 기능을 제공한다.
- Object Pooling: Pool에 사용 가능한 객체가 있을 경우 객체를 할당 받거나, 없을 경우 Pool 크기에 따라 새로운 객체 생성 및 할당하는 기능을 제공한다.
- Property: 외부 파일이나 환경 정보를 구성하는 키와 값의 쌍을 내부적으로 저장하고 있으며, 어플리케이션이 특정 키에 대한 값에 접근할 수 있도록 기능을 제공한다.
- Resource: 국제화(Internationalization) 및 현지화(Localization)를 지원하기 위한 기능으로, 키값을 이용하여 국가 및 언어에 해당하는 메시지를 읽어오는 기능 제공한다.
- Scheduling: 어플리케이션 서버 내에서 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 기능으로서, 유닉스의 크론(Cron) 명령어와 유사한 기능을 제공한다.
- Server Security: 서버 함수 및 데이터 접근 시 보안 관리를 위해 사용자 인증 및 권한 관리 기능을 제공한다.
- String Util: 문자열 데이터를 다루기 위한 다양한 기능을 제공한다.
- XML Manipulation: XML을 생성하고, 읽고, 쓰기 위한 기능을 제공한다.
|
|
실행환경 오픈소스 현황 |
| |
개발프레임워크 실행환경 서비스는 오픈소스 소프트웨어에 기반하여 재활용하거나 확장하여 구현되었다. 일부 서비스는 선정 기준을 만족하는 오픈소스 소프트웨어가 선정되지 않았으며 자체 구현하였다. |
|