개발 기술
본 장에서는 ProFrame에서 사용되는 개발 기술에 대해 설명한다.
1. 개발 아키텍처
ProFrame은 개발자에게 통합 서버와 스튜디오가 통신할 수 있는 통합 개발환경을 제공한다. 통합 서버와 스튜디오 간의 상호연동을 통해 개발자는 서비스 또는 업무 단위의 모듈을 개발할 수 있다.
-
통합 서버
통합 서버는 개발자의 로컬 컴퓨터에 설치되어 있는 스튜디오와 통신하며 개발 과정의 모든 리소스를 메타 기반으로 통합 관리한다. 이를 통해 리소스 버전 정보, 리소스 상호의존성 정보, 입출력 Property 정보, 모듈 목록 관리 기능 등을 수행하며 메타 정보를 기반으로 소스를 빌드하여 바이너리를 생성한다. 또한 개발자별로 권한 관리를 수행할 수 있다.
ProFrame은 통합 서버가 있어 모든 애플리케이션 리소스에 대한 메타를 관리하고 제어할 수 있다. 또한 소스 버전 관리, Source Generation, 입출력 Property 관리 등을 메타 정보를 기반으로 통합하고 자동화할 수 있다.
-
스튜디오
스튜디오는 소프트웨어 설계 단계에서 개발 표준을 강제화하고 소스 코딩 최소화, 업무 모듈의 재사용 극대화라는 설계사상을 바탕으로 서비스 처리 흐름을 가시화하고 업무 모듈 간의 의존성(Dependency)을 최소화하는 툴이다.
개발자는 이러한 툴을 통해 구조체 및 전문 개발, SQL 개발, 서비스 플로우 디자인, 업무 모듈의 작성 등 모든 개발 작업을 수행할 수 있다.
또한 스튜디오는 통합 서버와 XML 기반(Object 기반)으로 통신하며 RI/WS 영역별로 서버의 메타 저장소에 있는 리소스 정보 및 목록을 조회하고 작성한 소스 및 정보를 서버 상에서 컴파일(또는 저장)을 요청한다. 또한 개발자 권한 관리, 소스 버전 관리 등의 리소스 관리가 통합적으로 이루어진다.
1.1. 통합 서버
ProFrame은 통합 서버를 통해 다음과 같은 역할을 수행한다.
-
서비스 및 공유 모듈의 버전을 관리한다.
-
소스를 자동으로 생성한다.
-
이력 및 권한을 관리한다.
-
리소스를 통합하여 관리한다.
-
리소스 영향도 분석 및 배포 기능을 수행한다.
-
사용자 및 그룹을 관리한다.
-
프로젝트별로 분기된 서비스를 제공한다.
-
운영 이미지와 개발 형상을 제어할 수 있는 트랜잭션을 컨트롤한다.
ProFrame은 각각의 개발도구가 스튜디오로 통합되어 개발도구 간의 상호 연동이 이루어짐으로써 통합 개발환경을 제공한다.
예를 들어 스튜디오에서는 입출력 구조체 및 전문 정보, 매핑 정보, 서비스 플로우 정보, 데이터베이스 접근 정보 등이 자동으로 소스가 생성되며, 통합 서버를 통해 모든 리소스가 XML 메타로 관리되고 이 메타에 템플릿을 적용하여 특정 플랫폼에 최적화된 소스를 자동 생성한다. 이와 같이 소스를 자동으로 생성하는 기능은 통합 서버에 Source Generation 엔진이 포함되어 있어 가능하다.
그리고 고객의 요구사항 또는 프레임워크의 최적화 작업 등과 같은 변경 요청이 발생하는 경우 변경사항에 유연한 대처를 위해 메타 기반의 템플릿 소스 생성방식을 설정하였다. 따라서 새로운 플랫폼 및 프로그래밍 언어에 대한 요구를 쉽게 충족시킬 수 있는 구조라고 할 수 있다.
또한, RI/WS 영역을 분리하여 개발자의 프로그램 수정이 다른 개발자들에게 주는 영향을 최소화하여 좀 더 유연한 개발을 할 수 있게 한다.
이러한 구조는 개발자의 특성에 따라 소스 코딩을 최소화하고 정형화하여 개발 표준에 맞는 최적화된 템플릿을 생성한다. 이는 개발 표준에 따라 소스를 생성하기 때문에 소스의 가독성이 높아지고 시스템 성능의 안정적인 서비스를 기대할 수 있다.
그리고 ProFrame에 추가된 멀티 프로젝트 기능을 이용하면 단일 통합 서버를 통해 동시에 여러 프로젝트를 진행할 수 있다.
1.2. 스튜디오
스튜디오는 온라인, 배치, 모듈 단위의 서비스 프로그램을 개발함에 있어 신속하고 안정된 개발을 지원하는 GUI 기반의 개발 툴이다.
구성요소
스튜디오는 크게 3가지로 구성된다.
-
ProMapper 편집기
ProMapper 편집기는 다양한 채널로부터 입출력 정보를 저장하고 해당 서비스가 이해할 수 있는 구조체 정보로 변환하는 등의 역할을 수행한다.
-
DBIO 편집기
개발자는 DBIO 편집기를 통해 SQL을 정의하고, Inspect 기능을 통해 미리 결과를 살펴 봄으로써 개발 생산성을 향상시킬 수 있다. 또한 생성된 SQL을 독립적으로 관리함으로써 관리의 용이성이 증대된다.
-
EMB Designer
ProFrame은 EMB 기술을 통해 업무를 처리하는 서비스 모듈 등이 만들어지면, 그 모듈들을 조합하여 다양하고 새로운 서비스를 만들 수 있다. 즉, 기존 서비스 모듈을 재사용하여 소스 코딩 없이 새로운 서비스를 개발할 수 있으므로 서비스 기반의 아키텍처 구현이 가능하다.
|
ProMapper, DBIO, EMB Designer에 대한 상세한 내용은 본 안내서 중 개발 구성요소를 참고한다. |
주요 기능
스튜디오가 제공하는 주요 기능은 다음과 같다.
-
템플릿 제공
정형화된 기본 템플릿 파일을 자동으로 생성해준다.
-
익숙한 GUI 환경 제공
Eclipse 기반의 편집기를 이용하여 개발자들에게 익숙한 GUI 개발환경을 제공한다.
-
함수 인덱싱
검색 창의 함수를 마우스로 더블클릭하면 편집 창에서 원하는 해당 함수를 쉽게 찾아가는 기능을 제공한다.
-
Server Side 작업
TP-Monitor 프로그램의 원격 컴파일, 서버 종료, 서버 재기동 등의 기능을 제공한다.
-
Transaction Logging
스튜디오 내에서 데이터베이스 트랜잭션에 대한 로그를 확인할 수 있다.
-
단위 테스트
생성된 서비스 또는 업무 모듈이 정상적으로 동작하는지 단위 테스트할 수 있다.
-
Interface Auto List
입출력 인터페이스 헤더 파일에 정의된 멤버들을 쉽게 검색할 수 있는 인터페이스 자동 목록 기능을 제공한다.
-
멀티 프로젝트
동시에 여러 개의 프로젝트를 개발할 수 있는 기능을 제공한다.
-
개발 영역과 운영 이미지 분리
리소스를 수정하는 개발 영역과 리소스 개발이 완료된 저장소인 운영 이미지를 분리하여 관리할 수 있다.
2. Eclipse 3.2™ 기반 플러그인 방식
스튜디오는 Eclipse 3.2™ 기반에 플러그인 방식으로 만들어졌다. 기본이 되는 Eclipse 3.2에 공통 모듈인 코어 플러그인과 코어 스튜디오에 각각의 프로바이더 즉, ProMapper, DBIO, EMB Designer 등을 설치하였다.
|
Eclipse 플러그인 아키텍처에 대한 내용은 http://www.eclipse.org를 참고한다. |
이와 같은 플러그인 방식을 통해 ProFrame은 다른 시스템과의 연계에도 뛰어난 확장성과 유연성을 가지고 있다. 기존에 설치된 프로바이더와 독립적으로 구분하여 설치할 수 있으며, 설치 방법 또한 쉽고 간편하다.
3. 다른 시스템 지원 여부
이전 절에서 설명하였듯이 스튜디오의 확장성과 유연성은 주로 다른 시스템과의 연계를 플러그인 방식으로 구성하게 된다.
예를 들어 TmaxSoft의 Tmax ProFactory® 또는 Tmax ProRule®과의 연계할 때 Tmax ProFactory® , Tmax ProRule®에서 제공하는 Eclipse 기반의 플러그인을 제공받음으로써 스튜디오의 EMB Designer에서는 상품 팩토리와 룰 정보 등을 사용할 수 있다. 더 나아가 TmaxSoft의 Tmax ProBus®와도 연계하여 다른 시스템의 각종 리소스들을 사용할 수 있다.