ProStudio 소개
본 장에서는 ProStudio의 전반적인 기능과 사용 예제를 통해 개발 과정을 설명한다.
1. 개요
ProObject Studio(이하 ProStudio)는 ProObject 기반에서 서비스 또는 업무 시스템을 개발하기 위한 툴로서 시스템의 서비스 설계, 데이터 설계, 업무 개발을 위한 코딩 등을 편리하게 한다. 또한 안정되고 성능이 검증된 컴포넌트를 사용하기 때문에 개발자가 임의로 코딩하여 생기는 실수를 최소화할 수 있다.
ProStudio는 다음과 같은 특징을 포함한다.
-
Layered Object Model
OOP 관점으로 플로우, 업무 로직, 데이터 Layer별 역할을 정의하여 재사용 가능한 애플리케이션 Object의 조립을 통해 서비스 Object 개발할 수 있는 환경을 제공한다.
-
통합 GUI 기반의 애플리케이션 프로그램 개발
모든 리소스 개발을 GUI 기반의 개발 도구로 개발 가능하며 Eclipse 기반의 툴을 통합하고 툴 간의 상호연동을 통해 입출력 정보, 서비스 플로우 정보, 업무 룰, 데이터 접근 정보 등 다양한 유형의 애플리케이션 프로그램 개발 환경을 제공한다.
-
Source Generation 방식
ProObject 기반에서 개발자의 하드 코딩을 최소화한다. 또한 검증된 소스 생성을 통해 개발자의 오류를 최소화한다.
-
개발 리소스 통합 관리
통합 개발 서버는 ProStudio에서 개발한 소스의 버전관리, 이력관리, 권한관리, 리소스 영향도 분석 기능, 서비스 테스트, 빌드, 디플로이 기능 등을 제공한다.
2. 사용 환경 확인
ProStudio 구동 전 제품 사용을 위한 최소 요구사항을 확인한 후 JDK를 설정한다. ProStudio 구동 후 DB Connection을 위한 JDBC, ProStudio 메모리 사이즈 등을 설정하여 환경을 구성한다. 시스템 요구사항은 ProObject 설치 안내서의 시스템 요구사항을 참고한다.
-
JDK 설정
ProStudio를 설치할 때 JDK가 환경변수의 설정 정보를 반드시 확인한다. 다음과 같이 설치한 JDK의 bin 디렉터리 경로를 PATH의 맨 앞에 설정되어 있어야 한다.
Java Path -
ProStudio 작업 공간 설정
ProStudio 설치된 후에 "ProObject.exe 바로가기" 아이콘이 생성된다. 바로가기 아이콘을 실행하면 로컬에 작업 공간을 설정하는 팝업창이 나타난다.
ProStudio 작업공간 실행ProObject.exe 바로 가기 속성에서 다음과 같이 메모리 사이즈를 추가한다.
-
Local PC 메모리 2GB 이하인 경우
-clean -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=10M -XX:MaxNewSize=16M -XX:NewSize=16M –Xms256m -Xms512m
-
Local PC 메모리 4GB인 경우
-clean -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=20M -XX:MaxNewSize=32M -XX:NewSize=32M –Xms512m -Xmx1024m
-
-
JDBC 설정
[Window] > [Preferences] > [ProObject] > [JDBC] 메뉴를 선택해서 ProStudio에서 사용 가능한 JDBC 드라이버 파일을 등록한다.
JDBC 설정Preferences 화면의 JDBC 영역에 [추가] 버튼을 클릭해서 사용할 DB의 JDBC 드라이버를 추가한다.
구분 JDBC 드라이버 Oracle 11g
ojdbc5.jar, ojdbc6.jar
Tibero
tibero-jdbc.jar
3. 화면 구성
ProStudio 메인 화면은 (1)메인 메뉴, (2)툴바, (3)탐색기 영역, (4)에디터 영역, (5)View 영역으로 나뉜다.
다음은 ProStudio 화면 구성에 대한 설명이다.
-
(1) 메인 메뉴
메인 메뉴는 [File], [Edit], [Navigate], [Search], [Project], [프로오브젝트], [Run], [Window], [Help]로 구성된다. [프로오브젝트]와 [Window] > [Show View], [Window] > [Preferences]를 제외한 메뉴는 Eclipse의 메뉴이다.
[프로오브젝트] 하위 기능은 현재 제공하고 있지 않으므로 본 안내서에는 [Window] > [Show View], [Window] > [Preferences] 메뉴에 대해서만 설명한다.
-
[Window]
메뉴 설명 [Show View]
[Show View]에서는 [Objects Pool], [Show View] > [Other] > [프로오브젝트] 메뉴를 제공한다. [프로오브젝트] 메뉴는 Dependency, MetaData View, Objects Pool 등 View 영역에서 사용하는 지원 기능을 제공한다. 지원 기능의 자세한 내용은 지원 기능에서 설명한다.
그 외 Declaration, JavaDoc, Navigator, Outline, Package Explorer, Problems, Properties, Tasks, Type Hierarchy는 Eclipse에서 제공하는 메뉴이다.
[Preferences]
ProStudio 환경을 개발자가 변경할 수 있도록 하는 메뉴이다.
-
-
(2) 툴바
특정 기능의 빠른 실행을 위해 메인 메뉴에 있는 일부 주요 메뉴를 표시한다.
아래 설명한 아이콘을 제외한 기능은 Eclipse의 메뉴이므로 설명하지 않는다. 자세한 설명은 해당 제품의 안내서를 참고한다.
아이콘 설명 [Load Configuration from Server] 메뉴로 ProStudio 환경설정은 서버의 $PROOBJECT_HOME/system/config 값이다. 폴더에 저장되어 있으며 ProStudio에서 서버 파일을 다운받아 사용한다.
해당 파일을 통해 서버에서 각 개발자들에게 일괄적인 설정 관리가 가능하다. 다운로드된 파일은 프로젝트 목록의 .settings 폴더에 저장되며 이를 확인하기 위해서는 필터에서 ".*resource"의 체크를 해제한다.
상세한 파일 내역은 다음과 같다.
-
.settings 폴더 파일
-
site_config.setting : SiteConfig.xml 값과 동일하다.
-
-
download/config 파일
Mapper 상세 옵션 및 리소스 생성 관련 설정이다.
-
SiteConfig.xml : 각 개발자들에게 일괄적인 설정 관리를 위한 파일로 site_config.setting의 값과 동일하다.
-
dbio_config.xml : BO/SO의 DOF 데이터소스 내역 표시 정보이다.
-
restriction_codes.xml : 금지 함수 정의 내역이다.
-
-
-
(3) 탐색기 영역(Package Explorer)
-
리소스 목록
로컬에서 개발자가 만든 메타 파일이나 Java 파일 전체 리소스 목록을 트리 형태로 조회한다.
폴더 설명 src
일반 .java 파일과 BizObject(Java)의 .java 파일이 저장되는 폴더이다.
.gen_src
EMB로 만든 Java 파일이 저장되는 폴더이다.
.gen_src_dto
DO에 의해 생성된 Java 파일이 저장되는 폴더이다.
meta
ProObject 객체를 작성할 때 메타 파일 생성 경로이다.
user_lib
사용자 라이브러리를 추가하는 폴더이다.
ProObject Library
ProObject 라이브러리를 조회한다.
JRE System Library
JRE 시스템 라이브러리를 조회한다.
test/src
BO unit test, Service Test의 테이스 케이스가 저장되는 폴더이다.
.project
Application, Service Group 정보를 저장하는 폴더이다.
.settings
ProStudio의 설정 파일을 저장하는 폴더이다.
.download
Config 등을 다운로드하는 폴더이다.
META-INF
ProObject 운영환경에서 수행할 서비스들을 xml 파일에 저장하는 경로이다.
-
필터 설정
Package Explorer의 [▽] 버튼을 클릭하면 [필터] 메뉴를 실행할 수 있다.
필터 메뉴 열기필터 설정 화면에서 .*resource 체크박스의 체크를 해제하면 Package Explorer에 .gen_src, .gen_src_dto 디렉터리가 조회된다.
필터 설정다음은 필터를 설정한 결과 화면이다.
필터 설정 결과
-
-
(4) 에디터 영역
서비스 및 업무 객체, 데이터 오브젝트, 데이터 오브젝트 팩토리, 잡 오브젝트(Job Object) 객체 등의 세부 내용을 작성하거나 편집한다. 자세한 내용은 오브젝트 플로우 에디터를 참고한다.
-
(5) View 영역
객체의 특성 값을 설정하거나 리소스 검색 등의 역할을 한다. View 영역에 보여지는 탭은 [Winows] > [Show View] > [Other]에서 설정한다.
다음은 주요 탭에 대한 설명이다. 각 탭의 사용법은 해당 절의 설명을 함고한다.
탭 설명 [Object Pool]
생성한 모든 오브젝트를 관리한다.
[Dependency]
통합 서버 DB 정보에 존재하는 ProObject에서 생성된 리소스의 의존 관계를 개발자들이 사용할 수 있도록 한다.
View 영역
View 영역은 객체의 특성 값을 설정하거나 리소스 검색 등의 역할을 한다.
-
[Object Pool] 탭
[Object Pool] 탭은 ProStudio에서 생성한 모든 오브젝트를 관리한다. 사용자는 오브젝트를 검색하여 오브젝트 존재 유무를 확인할 수 있으며 검색한 리소스를 더블클릭하여 Editor 화면을 열 수 있다.
View 영역 - [Object Pool] 탭Object Pool에서는 리소스에 대한 쓰기, 읽기 권한도 설정할 수 있다. 리소스에 대한 쓰기, 읽기 권한은 소유자만 설정 가능하며 쓰기 권한이 있어야 해당 리소스에 대해 커밋, 체크아웃을 받을 수 있다. 또한 리소스에 대해 읽기 권한이 있어야 리소스 조회, 가져오기가 가능하다.
권한 설명 user right
리소스의 소유자가 가지는 권한이다.
group right
DEV_USER_GROUP 테이블을 기준으로 해당 유저가 속한 그룹 유저들의 권한이다.
other right
그 이외의 유저들이 가지게 되는 권한이다.
-
[Dependency] 탭
ProObject에서 생성된 리소스는 통합서버 DB 정보에 존재하며 의존 관계를 개발자들이 사용할 수 있도록 Dependency 기능을 제공한다. 리소스를 수정한 후 해당 리소스를 호출하는 다른 리소스에 수정된 리소스 모듈을 반영하지 않으면 런타임에 오류가 발생할 수 있다. 모듈을 수정하기 전 반드시 해당 리소스의 호출 관계를 파악하여 영향이 있으면 담당자에게 알려 동시에 수정될 수 있도록한다.
[Dependency] 탭에 해당 리소스를 기준으로 Backward, Forward를 검색해서 영향도 파악할 수 있다.
-
Backward 검색
의존 검색한 리소스를 호출하는 리소스 모듈을 조회한다.
[Dependency] 탭 - Backward -
Forward 검색
의존 검색한 리소스가 호출하는 모듈 정보를 조회한다.
[Dependency] 탭 - Forward
-
4. 프로젝트 생성
ProObject에서 리소스를 관리하는 단위는 애플리케이션, 서비스 그룹이다.
애플리케이션은 여러 서비스 그룹으로 구성된 하나의 프로그램으로, 논리적인 관리 단위이다. 서비스 그룹은 애플리케이션을 구성하는 업무 단위 프로그램으로 ProStudio에서 하나의 프로젝트를 의미한다.
ProStudio에서 작업하는 모든 리소스는 서비스 그룹(IDE project)에 속해 있어야 한다. 서비스 그룹에 속한 서비스는 서비스 오브젝트(Service Object, SO)를 의미하며 한 서비스 그룹 안에 여러 개의 서비스 오브젝트 및 서비스 오브젝트를 구성하는 비즈니스 오브젝트(Biz Object), 데이터 오브젝트 팩토리(Data Object Factory), 데이터 오브젝트(Data Object)가 존재한다.
ProStudio에서 구현한 ProObject 프로그램을 배포한다는 것은 해당 애플리케이션 디렉터리 하위에 서비스 그룹별로 디렉터리가 나누어져 리소스 바이너리가 배포된다는 의미이다.
개발자는 관리자가 ProObject Manager(이하 ProManager)에서 생성한 애플리케이션 및 서비스 그룹을 선택하여 프로젝트를 생성한다. 생성된 애플리케이션 프로젝트 및 서비스 그룹 프로젝트은 공동 작업을 위해 Git에 연동하는 작업이 필요하다. 자세한 내용은 로컬에 Remote Git Repository 복사와 프로젝트 Git 서버에 복사를 참고한다.
4.1. 애플리케이션 프로젝트 생성
다음은 ProStudio에서 애플리케이션 프로젝트를 생성하는 과정에 대한 설명이다.
-
ProManager에서 애플리케이션을 생성하고, 애플리케이션을 구성할 서비스 그룹을 정의한다. 자세한 내용은 ProObject Manager 사용자 안내서를 참고한다.
-
프로젝트를 생성하기 위해 [파일] 메뉴 또는 Package Explorer의 컨텍스트 메뉴에서 [New] > [Other]를 선택한다.
애플리케이션 생성 메뉴 -
NEW Wizard 화면의 업무 트리에서 [ProObject] > [ProObject Application Project]를 선택한다.
NEW Wizard 화면 -
프로젝트의 옵션을 선택한 후 [Next] 버튼을 클릭한다. 예제에서는 신규로 Repository를 생성하는 옵션을 선택한다.
프로젝트 저장소 위치 생성 -
New ProObject Repositoy 화면에 새로운 프로젝트의 Repository 정보를 입력하고 [Next] 버튼을 클릭한다.
프로젝트 저장소 연결항목 설명 Host
ProObject 개발 서버 IP 주소를 설정한다.
Port
ProObject 개발 서버 HTTP Listen Port를 설정한다.
Fileport
파일을 업로드하고 다운로드할 때 사용할 TCP 포트를 설정한다. (기본값: 4444)
Username
ProManager에서 등록한 사용자 ID를 입력한다.
Password
ProManager에서 등록한 사용자 ID의 암호를 입력한다.
-
Repository 선택이 완료되면 ProObject Application Selection 화면에 ProManager에서 생성한 애플리케이션과 하위 서비스 그룹들이 조회된다. 생성할 애플리케이션을 선택한 후 [Next] 버튼을 클릭한다.
프로오브젝트 애플리케이션 그룹 리스트 -
개발자 PC에서 사용할 프로젝트 이름을 입력한 후 [Finish] 버튼을 클릭한다. 'Project name'은 선택된 애플리케이션명과 동일해야 한다.
프로젝트 이름 생성 -
생성된 프로젝트는 Package Explorer에서 확인할 수 있다.
프로젝트 이름 확인
4.2. 서비스 그룹 프로젝트 생성
다음은 ProStudio에서 서비스 그룹 프로젝트를 생성하는 과정에 대한 설명이다.
-
ProManager에서 애플리케이션을 생성하고, 애플리케이션을 구성할 서비스 그룹을 정의한다.
-
프로젝트를 생성하기 위해 [파일] 메뉴 또는 Package Explorer의 컨텍스트 메뉴에서 [New] > [ProObjcet ServiceGroup Project]를 선택한다.
프로젝트 신규 생성 -
프로젝트의 옵션을 선택한 후 [Next] 버튼을 클릭한다.
프로젝트 저장소 위치 생성항목 설명 Caeate new Project repository location
Service Group, Application을 생성한 이력이 없는 경우 선택한다.
Use Existing Project Repository
이전에 Service Group, Application을 생성한 경우 기존 설정내역이 저장된 내역에 설정 내역이 표시된다. 원하는 설정 내역을 선택한다.
-
Repository Selection 화면에서 'Caeate new Project repository location'를 선택하면 New ProObject Repositoy 화면이 나타난다. 해당 화면에서 새로운 프로젝트의 정보를 입력하고 [Next] 버튼을 클릭한다.
프로젝트 저장소 연결항목 설명 Host
ProObject 개발 서버 IP 주소를 설정한다.
Port
ProObject 개발 서버 HTTP Listen Port를 설정한다.
Fileport
파일을 업로드하고 다운로드할 때 사용할 TCP 포트를 설정한다. (기본값: 4444)
Username
ProManager에서 등록한 사용자 ID를 입력한다.
Password
ProManager에서 등록한 사용자 ID의 암호를 입력한다.
-
Repository 선택이 완료되면 ProObject Application Selection 화면에 ProManager에서 생성해 놓은 애플리케이션과 하위 서비스 그룹들이 조회된다. 생성할 서비스 그룹을 선택한 후 [Next] 버튼을 클릭한다.
프로오브젝트 서비스 그룹 리스트 -
개발자 PC에서 사용하는 프로젝트 이름을 입력한 후 [Finish] 버튼을 클릭한다.
프로젝트 이름 생성 -
생성된 프로젝트는 Package Explorer에서 확인할 수 있다.
프로젝트 이름 확인
5. 프로그램 개발
다음은 ProStudio를 사용해서 프로그램을 개발하는 과정에 대한 설명이다.
-
서비스 플로우 설계서 작성
경우에 따라서 모델링 툴을 통해 업무를 설계한다.
-
메타 정보 ProManager에 등록
사용할 메타 정보를 ProObject Manager에 등록한다. 데이터 오브젝트를 생성할 때 메타에 등록된 프러퍼티 정보만 사용 가능하다. 메타 등록은 ProObject Manager 사용자 안내서를 참고한다.
-
서비스의 입출력 전문 데이터 오브젝트 생성
서비스의 입력, 출력 데이터가 담기는 Object인 DO를 생성한다.
-
데이터 오브젝트 팩토리 생성
데이터 오브젝트를 이용해 데이터베이스에 대한 표준적인 방법으로 데이터베이스를 제어하는 데이터 오브젝트 팩토리를 생성한다.
-
데이터 오브젝트 팩토리 호출 및 서비스 오브젝트 입출력 데이터 오브젝트에 값 매핑
비즈니스 로직이 작성된 비즈니스 오브젝트로 데이터 오브젝트 팩토리 호출 및 서비스 오브젝트의 입출력 데이터 오브젝트에 값을 매핑한다. (General, Abstract, Interface을 지원)
-
서비스 오브젝트 생성, 플로우 작성
서비스 오브젝트를 생성하고 플로우를 작성한다. Flow Editor를 통해 비즈니스 오브젝트 메서드 조립, 매핑을 지원하며 Flow Statement를 이용하여 플로우 상태를 제어할 수 있다.
-
서비스 디플로이
DOF, DO, SO, servicegroup.xml를 Git Staging 화면에서 Staged Changs 내역에 추가한 후 [Commit and Push] 버튼을 클릭한다(내부적으로 Jankins에서 Hooker에 의해 자동 배포된다. 자동 배포가 설정되지 않은 경우는 Jankins 화면에서 해당 프로젝트를 선택한 후 [Build with Parameters]을 수행한다).
-
서비스 테스트
ProManager의 [Test] > [Test]에서 서비스를 테스트한다. 자세한 내용은 ProObject Manager 사용자 안내서의 Test를 참고한다.