개요

본 장에서는 ProFrame를 개발 측면에서 이해하기 위해 기본적인 개념에 대해 설명한다.

1. 개발 사상

ProFrame는 온라인 서비스 또는 배치 서비스를 개발하기 위한 프레임워크이다. 즉, 공통적인 구조와 개발 구현으로 빠른 시간에 고객의 요구사항 변화에 맞는 유연하고 기능 확장이 뛰어난 결과를 이끌어 낸다. 이와 같이 ProFrame를 사용하여 개발된 서비스는 시스템의 안정적인 성능을 유지하고 유지보수를 쉽게 할 수 있도록 지원한다.

또한 ProFrame은 GUI(Graphical User Interface) 기반의 개발 툴인 ProFrame C 스튜디오(이하 스튜디오)를 사용하여 개발자가 쉽게 비즈니스 로직을 구현할 수 있도록 통합 개발환경을 제공하고 있다. 이를 통해 개발자는 EMB(Enterprise Module Bus) 기술을 이용한 비즈니스 로직 중심의 서비스 플로우를 개발할 수 있다.

2. 개발 특징

ProFrame은 아래 그림과 같이 개발자 영역과 프레임워크 영역으로 나뉜다.

figure1 1
ProFrame - 개발자 및 프레임워크 영역

개발자는 ProFrame Business Layer 즉, 업무 영역에서 순수 업무 로직만을 구현하고 시스템의 안정성을 위한 기능이나 미들웨어 기능, 트랜잭션 관리, 인터페이스 처리 등의 기능들은 ProFrame Infra Layer 즉, 프레임워크 영역에서 직접 담당하거나 개발자에게 추상화된 API로 제공한다.

다음은 개발자 영역과 프레임워크 영역에 대한 특징이다.

  • 개발자 영역(ProFrame Business Layer)

    • 순수 업무 로직만 구현

    • 거래 유형별 템플릿을 제공

    • API를 이용하여 시스템 자원 접근

  • 프레임워크 영역(ProFrame Infra Layer)

    • 메모리 누수 관리

    • 트랜잭션에 대한 Commit/Rollback 처리

    • 코어 인터페이스 처리

figure1 2
ProFrame 아키텍처

ProFrame 아키텍처는 위 ProFrame 아키텍처와 같이 3 Tier(Business, Channel, Data Tier) 구조로 나뉘어져 있다. 위 구조는 Business Tier를 Channel 및 Data Tier와 분리하여 개발자가 업무를 개발할 때 비즈니스 로직만을 고려한 시스템을 구축할 수 있도록 지원한다.

또한 Business Tier를 업무계(Business Rule Service Layer), 업무 공통(Common Service Layer), 시스템 공통(Framework Service Layer)의 3 Layer로 분리하여 개발의 표준화 및 편의성을 지원한다.

본 안내서에서는 ProFrame 아키텍처 전반적인 개념을 설명하지 않고 개발과 관련된 요소만 설명한다.

개발자는 ProFrame 아키텍처를 기반으로 소프트웨어 설계 및 개발 단계에서 다음과 같은 역할을 수행한다.

  • 설계 단계

    설계 툴로서 기능을 수행하는 EMB 기술을 이용하여 개발자는 업무 단위별 모듈을 구성하고 조합하여 새로운 온라인 또는 배치 서비스를 설계한다.

  • 개발 단계

    코딩 툴로서 기능을 수행하는 EMB 기술을 이용하여 개발자는 업무 단위별 모듈을 개발하고 모듈 간의 조합을 통해 새로운 온라인 또는 배치 서비스를 개발한다.

    추가적으로 ProFrame은 개발 단계에서 소스 코딩의 일관성을 유지시켜 주며, 유지보수를 쉽게 할 수 있도록 Java 형태의 헝가리안 표기법을 사용한다. 이렇게 개발된 입출력 모듈, 업무 모듈, 데이터 처리 모듈 등은 기능 중심으로 조합하고 연동하여 해당 서비스를 재사용할 수 있다.

다음은 개발자 구현 영역을 중심으로 업무 개발이 구현되는 과정이다.

figure1 3
ProFrame Runtime 아키텍처
  • 개발자 구현 영역

    스튜디오에 내장된 EMB Designer를 이용하여 개발자가 비즈니스 로직을 구현하는 영역이다.

  • 입력처리 영역

    서비스의 입출력 변환과 관련된 처리를 담당하는 ProFrame의 엔진 영역으로 거래의 기본 정보 설정, 공통 파라미터의 로딩, 입력전문 로깅, 전문 헤더 구조체 변환 등을 입력정보를 전달하는 역할을 수행한다.

  • 거래 제어 영역

    서비스에 대한 거래 가능 여부, 일시 중단, 접근 권한 등에 대한 제어 및 트랜잭션 및 처리 흐름 제어를 담당하는 ProFrame의 엔진 영역이다.

  • 센터컷처리 영역

    온라인 서비스를 배치로 대량 및 병렬처리하기 위해 제공된 ProFrame의 엔진 영역이다.

  • 시스템 공통 영역

    ProFrame 엔진의 성능, 안정성 및 장애처리를 위해 애플리케이션 프로그램에 제공된 API 영역이다.

  • 데이터 접근 영역

    개발자가 등록한 DBIO 모듈을 이용하여 Runtime의 데이터베이스 인터페이스를 담당하는 ProFrame 엔진 영역이다.

  • 후행처리 영역

    정보성 데이터는 트랜잭션에서 분리하여 온라인 거래의 응답속도를 높이는데 사용한다.

    분리된 정보성 데이터를 실시간 처리에 가깝게 처리하고 거래정합성을 보장하기 위해 제공되는 ProFrame 엔진 영역이다.