지원 기능

본 장에서는 주요 기능 외 지원 기능에 대해 설명한다.

1. 리소스 생성

본 절에서는 리소스 생성 및 개발 편의 기능에 대해서 설명한다.

1.1. Class Naming Rule Check

ProObject 리소스를 생성하는 경우 클래스명을 정의된 Rule에 맞게 강제할 수 있다.

Naming Rule Check가 활성화되어 있으면, Naming Rule에 맞지 않는 규칙에 대한 리소스 생성을 막을 수 있다.

fugure naming rule 02
Naming Rule Check - Rule이 맞을 때
fugure naming rule 03
Naming Rule Check - Rule이 맞지 않을 때

Naming Rule Check의 활성화를 위해서는 ProbuilderConfig.xml 파일의 <forceResourceNamingRule> Element가 true로 설정되어야 한다.

fugure naming rule 01
EMB Designer - 이너 노드 속성

다음은 각 리소스별 Naming Rule에 대한 설명이다.

  • DO

    L2(2) + L3(1) + NUM_CODE(5) + FUNC_CODE(2) + _I/_O
    L2(2) + L3(1) + NUM_CODE(5) + FUNC_CODE(2) + DOF_D
    L2(2) + L3(1) + NUM_CODE(5) + _I/_O/_S
  • DOF

    L2(2) + L3(1) + NUM_CODE(5) + FUNC_CODE(2) + DOF
  • BO

    L2(2) + L3(1) + NUM_CODE(5) + FUNC_CODE(2)
    L2(2) + L3(1) + J + NUM_CODE(4) + FUNC_CODE(2)
  • SO

    L2(2) + L3(1) + NUM_CODE(5)
  • JO

    L2(2) + L3(1) + J + NUM_CODE(4)
구분 Rule

() 안의 숫자

길이

L2

대문자 알파벳

L3

대문자 알파벳 (하나)

NUM_CODE

0부터 9까지 숫자

FUN_CODE

0부터 9까지 숫자

_I/_O/_S

_I or _O or _S

1.2. Generic Type 리소스 생성

다음은 Generic Type을 가지는 BO 생성하는 과정에 대한 설명이다.

  1. 트리 메뉴에서 [New] > [Biz Object (Designer)]를 클릭한다. New Biz Object 화면에서 각 항목을 입력한 후 [Finish] 버튼을 클릭한다.

    figure generic 01
    Generic Type BO 생성(1)

    클래스명을 입력하고, 클래스는 'abstract'로 생성해야 한다. 클래스명은 Generic Type 정의를 함께 넣는다.

    다음은 클래스명에 설정할 Generic Type이다.

    Generic Type 가능 여부

    "<", "<>", "<T,>"

    불가 - 규칙에 안맞음

    "<T>", "<T, R>", <T,R extends DataObject>

    가능

  2. 다음은 Generic Type BO가 생성된 소스의 예이다.

    figure generic 02
    Generic Type BO 생성(3)
  3. 메소드를 Generic Type으로 생성한다. 디자인 에디터메소드 영역에서 [+] 버튼을 클릭해서 메소드를 정의한다. 'abstract'로 생성해야 한다.

    figure generic 03
    Generic Type BO 생성(4)
  4. [Properties] 탭을 선택한 후 리턴 타입을 입력한다.

    figure generic 04
    Generic Type BO 생성(5)
  5. 생성된 Generic Type의 생성된 Java Source는 다음과 같다.

    figure generic 05
    Generic Type BO 생성(6)

1.3. Code Snippet 기능

다음은 Snippet 기능 설치, Code Templet 정의, 정의된 템플릿의 BO/SO 영역에 적용하는 방법에 대한 설명이다.

1.3.1. 설치

[Help] > [install new software] > [add ] > [archive] 메뉴를 선택한 후 "web_developer_tools.zip"을 선택하여 설치 준비를 한다. 'Group items by category'를 체크해야 하며, 설치할 때 모든 패키지를 체크해야 한다. 설치가 완료되면 ProStudio를 재시작한다.

figure snippet 01
Code Snippet 설치

[Window] > [show view] > [other..] > [General] > [Snippets ]을 선택하여 Snippets View를 Open한다.

figure snippet 02
Code Snippet 기능 - View Open

1.3.2. 템플릿 적용

다음은 템플릿을 적용하는 과정에 대한 설명이다.

  1. [Customize...] 메뉴를 선택하여 Snippet View를 선택하여 템플릿을 "Category" 및 "Item"을 생성한다.

    figure snippet 03
    Code Snippet 기능 - 템플릿 적용 (1)
  2. [New Category] 버튼을 클릭해서 그룹핑하는 이름을 정의한다. Category는 템플릿 내역을 그룹핑하는 단위이고, Item은 템플릿의 단위이다.

    figure snippet 04
    Code Snippet 기능 - 템플릿 적용 (2)

    'Name''Description' 항목을 입력한 후 [OK] 버튼을 클릭한다.

    figure snippet 05
    Code Snippet 기능 - 템플릿 적용 (3)
  3. [New Item] 버튼을 클릭해서 Item을 추가한다.

    figure snippet 06
    Code Snippet 기능 - 템플릿 적용 (4)

    'Name', 'Template', 'Variables'를 추가한다.

    figure snippet 07
    Code Snippet 기능 - 템플릿 적용 (5)
  4. 'Template'의 변수에 Focus를 두고 [Insert Variable Placeholder..] 버튼을 클릭하면 변수 내역이 조회된다. 변수 목록에서 설정할 변수를 클릭한다.

    figure snippet 08
    Code Snippet 기능 - 템플릿 적용 (6)
  5. 다음과 같이 해당 변수는 '${변수}'의 형태로 추가된다.

    figure snippet 09
    Code Snippet 기능 - 템플릿 적용 (7)
  6. 완성된 템플릿이며, [OK] 버튼을 클릭하면 템플릿이 생성된다.

    figure snippet 11
    Code Snippet 기능 - 템플릿 적용 (8)

1.3.3. BO/SO 적용

BO/SO의 프로그램 가능 영역에 적용할 Item을 드래그 앤드 드롭하면 변수를 입력할 수 있는 화면이 조회된다.

figure snippet 12
Code Snippet 기능 - 프로그램 적용 (1)

입력할 변수를 선택한 후 [Insert] 버튼을 클릭한다.

figure snippet 14
Code Snippet 기능 - 프로그램 적용 (2)

다음은 Snippets에 의해 템플릿이 적용된 소스의 예이다.

figure snippet 13
Code Snippet 기능 - 프로그램 적용 (3)

2. 리소스 관리

본 절에서는 리소스의 주요 관리 기능에 대해서 설명한다.

2.1. Resource Import

Excel로 Import할 파일을 생성한 후 다음의 과정으로 파일을 ProObject 리소스에 Import한다. 생성할 Excel 파일 포맷에 대한 자세한 설명은 "리소스 엑셀 파일 포맷"을 참고한다.

  1. Package Explorer의 컨텍스트 메뉴에서 [Import]를 선택한다.

    figure import1
    Resource Import - 메뉴 선택
  2. Import 화면에서 [Proobject] > [Import Excel Artifacts]를 선택한 후 [Next] 버튼을 클릭한다.

    figure import2
    Resource Import - Import 화면
  3. Resource Import 화면에서 [Browse..] 버튼을 클릭해서 Import할 Excel 파일을 선택한다. 타겟 프로젝트를 선택한 후 [Finish] 버튼을 클릭한다.

    figure import3
    Resource Import - Select Excel File

리소스 엑셀 파일 포맷

다음의 포맷으로 Excel 파일을 작성하면 해당 파일을 Import하여 ProObject 리소스를 생성할 수 있다.

figure import excel format
Import용 Excel 형식
컬럼 항목명 설명

A

L1

업무영역에 대한 정보를 입력한다. (예: com)

B

L2

업무영역에 대한 정보를 입력한다. (예: tmax)

C

L3

업무영역에 대한 정보를 입력한다. (예: obj)

D

L4

업무영역에 대한 정보를 입력한다. (예: artifact)

E

그룹명

프로그램 그룹 정보를 입력한다.

F

프로그램ID

프로그램 ID를 입력한다. 리소스 Import에 사용되는 컬럼이다.

(예: ArtifactBO01)

G

프로그램명 (한글)

프로그램 이름을 한글로 입력한다. 리소스 Import에 사용되는 컬럼이다. (예: Artifact테스트BO01)

H

blank

공란

I

유형

Biz Logic 정보를 입력한다. 입력된 값을 기준으로 ProObject 리소스를 생성한다.

  • AM : Assign Module

  • BO

  • COND : Condition

  • ET : ETL Task

  • GRM : Get Reply Module

  • IM : Inner Module

  • JO

  • LM : Loop Module

  • NT : Normal Task

  • PART : Partitioner

  • SO

  • STEP

  • VM : Virtual Module

J

Seq

Biz Logic 정보를 입력한다. (예: 0)

K

처리명 (logical)

Biz Logic에서 처리되는 논리적 이름을 입력한다. 리소스 Import에 사용되는 컬럼이다. (예: 테스트메소드11 )

L

처리모듈ID (physical)

Biz Logic에서 처리되는 물리적 이름을 입력한다. 리소스 Import에 사용되는 컬럼이다. (예: testMethod11)

M

처리로직

처리로직 정보를 입력한다. (예: comment_테스트메소드11_1)

작성된 Excel 파일의 컬럼으로 BO, SO, JO 리소스를 생성하고 메소드를 선언한다.

  • BO/SO

    figure import excel1
    BO Import 예제
    figure import excel2
    SO Import 예제
    작업 설명

    리소스 생성

    다음의 컬럼을 Import해서 리소스를 생성한다.

    • 프로그램ID(F컬럼)

    • 프로그램명(G컬럼)

    • 처리명(K컬럼)

    • 처리모듈ID(L컬럼)

    리소스 내부의 Method 선언

    다음의 컬럼을 Import해서 리소스 내부의 Method를 선언한다.

    • 처리명(K컬럼)

    • 처리모듈ID(L컬럼)

    Method 호출

    다음의 컬럼을 Import해서 Method를 호출한다.

    • 프로그램ID(F컬럼)

    • 처리명(K컬럼)

    • 처리모듈ID(L컬럼)

  • JO

    figure import excel3
    JO Import 예제
    작업 설명

    리소스 생성

    다음의 컬럼을 Import해서 리소스를 생성한다.

    • 프로그램ID(F컬럼)

    • 프로그램명(G컬럼)

2.2. Excel Import/Export

DO를 Excel로 Import/Export할 수 있다. DO에 컬럼이 많은 사이트 환경의 경우 해당 기능은 반복되는 작업을 최소화하여 생상성을 높여줄 수 있다.

2.2.1. Export

다음의 과정으로 Excel 파일을 Export한다.

  1. Export할 DO를 조회한 후 Grid의 컨텍스트 메뉴에서 [Excel로 내보내기]를 클릭한다.

    figure do excel 01
    DO Excel Export (1)
  2. 윈도우 탐색기에서 저장할 위치를 선택한 후 [저장] 버튼을 클릭한다.

    다음은 DO 정보를 Excel로 Export한 파일의 예이다.

    figure do excel 03
    DO Excel Export (2)

2.2.2. Import

다음은 Export된 Excel 파일을 편집한 후 Import하는 과정에 대한 설명디다. Export한 DO TestDo01를 TestDo01New로 Import한다.

  1. Export한 파일의 내용을 수정한다.

    figure do excel 03
    DO Excel Import(1)
  2. [Proobject] > [New] > [Data Object]를 클릭하면 New Data Object 화면이 열린다.

    'Excel 파일 Import' 항목을 체크한 후 [Browse..] 버튼을 클릭해서 Import할 Excel 파일을 선택한 후 [Finish] 버튼을 클릭한다. Import할 파일을 Import 포맷에 맞아야 한다.

    figure do excel 05
    DO Excel Import(2)
  3. Import가 완료되면 DO 화면에서 정보를 확인할 수 있다.

    figure do excel 06
    DO Excel Import(3)

2.3. Resource 복사/붙여넣기

리소스의 메타 내부에 들어있는 path 정보의 노드 값이 변경되어야 하기 때문에 패키지 간의 Resource 복사/붙여넣기 기능을 제공한다.

  • Resource 복사

    Package Explorer의 복사할 리소스를 선택한 후 컨텍스트 메뉴에서 [Copy]를 선택한다. 해당 리소스를 선택한 후 <Ctrl> + C를 눌러도 동일하게 동작한다.

    figure resource copy 01
    Resource 복사하기
  • Resource 붙여넣기

    Package Explorer에서 붙여넣기할 패키지를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [프로오브젝트 리소스 붙여넣기]를 선택한다.

    figure resource copy 02
    Resource 붙여넣기

    Package Explorer에서 컨텍스트 메뉴에 [paste]는 리소스의 메타를 그대로 복사하기 때문에 정상적인 복사가 되지 않기 때문에 리소스를 붙여넣는 경우 위의 [프로오브젝트] > [프로오브젝트 리소스 붙여넣기] 메뉴를 사용해야 한다.

2.4. Resource Refactoring

ProObject 리소스의 이름을 변경하거나 패키지의 이름을 변경하는 방법에 대해서 설명한다.

2.4.1. 패키지/리소스명 변경

다음은 서비스 그룹이나 애플리케이션의 패키지/리소스 이름을 변경하는 방법에 대한 설명이다.

  1. Package Explorer의 변경할 패키지를 선택한 후 컨텍스트 메뉴에서 [Refactor] > [프로오브젝트 리소스 이름바꾸기] 메뉴를 선택한다.

    figure refactor 01
    Package명 변경(1)
  2. Refactorying 화면에서 변경할 패키지 이름을 입력한 후 [OK] 버튼을 클릭한다.

    figure refactor 02
    Package명 변경(2)
  3. 다음과 같이 변경할 리소스별 상세 변경 정보가 조회된다. 목록에서 변경할 리소스를 선택한 후 [Finish] 버튼을 클릭한다.

    figure refactor 03
    Package명 변경(3)
  4. Refactorying이 완료되면 선택한 패키지의 모든 리소스가 수정한 패키지로 된다.

2.4.2. 리소스 패키지 이동

다음은 리소스 패키지를 이동하는 과정에 대한 설명이다.

  1. Package Explorer의 변경할 패키지를 선택한 후 컨텍스트 메뉴에서 [Refactor] > [프로오브젝트 리소스 이동]을 선택한다.

    figure refactor 08
    리소스 패키지 이동(1)
  2. Refactorying 화면에서 변경할 패키지를 선택한 후 [OK] 버튼을 클릭한다.

    figure refactor 09
    리소스 패키지 이동 (2)
  3. 다음과 같이 변경할 리소스별 상세 변경 정보가 조회된다. 목록에서 변경할 리소스를 선택한 후 [Finish] 버튼을 클릭한다.

    figure refactor 10
    리소스 패키지 이동 (3)

2.5. Commit/Push 금지 기능

본 절에서는 Commit/Push할 때 XML이나 SQL에 금지 함수를 사용한 경우 작업을 중단하는 기능에 대해서 설명한다. 금지함수 사용을 위한 설정이 선행되어야 하지만, 일반적으로 개발환경 서버의 접근 권한이 있는 담당자가 공통 설정을 한 후 함수를 추출한다.

2.5.1. 금지 함수 검출

XML에서 금지 함수를 사용한 경우 Commit/Push되지 않도록 하려면 환경설정이 필요하다. 개발자가 해당 금지 함수 목록에 있는 금지 함수를 사용한 경우 Push가 중단된다. 금지 함수는 SO 또는 BO, serviceobject interface 또는 buisinessobject interface의 구현체 java 파일에서 추출한다.

다음은 금지 함수 검출하는 과정에 대한 설명이다.

  1. 금지 함수를 사용하기 위해서는 $PROOBJECT_HOME/system/config/ProbuilderConfig.xml에 사용 여부가 체크되어 있어야 한다.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <probuilder_config xmlns= .. 중략 ..
        <restriction-config xmlns="">
           <restriction-code-config use="true"/>
        </restriction-config>
    </probuilder_config>
  2. 다음은 시스템을 종료시키는 exit 및 logger를 사용하지 않고 println을 사용하도록 상세한 금지함수 내역을 ${PROOBJECT_HOME}/system/config/restriction_codes.xml에 설정한다.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
         :
       중략
         :
        <ns22:restriction-code code="java.lang.System.exit" action="restrict"/>
        <ns22:restriction-code code="java.io.PrintStream.println" alternative="logger.info" action="restrict"/>
    </ns22:restriction-codes>

    다음은 금지 함수 설정에 사용되는 태그에 대한 설명이다.

    항목 설명

    code

    금지 함수는 패키지명부터 클래스명 메소드명까지 java naming 규칙에 따라 작성한다. (argument는 필요없음)

    action

    • restrict : 커밋 금지

    • warn : 커밋 시 경고 메시지 출력

    • skip : 제한하지 않음

    alternative

    대체할 함수가 있을 경우에 추가하면 되며, action 시 해당 정보를 표시해준다.

  3. 금지 함수의 검출은 Push 단계에 확인할 수 있다. 2번 과정의 Bold된 부분과 같이 설정하고 다음과 같이 'System.out.println' API를 입력한 후 [Commit and Push...] 버튼을 클릭하면 금지 함수사용으로 인해 Push가 되지 않는다.

    figure restriction 03
    금지함수 검출 - action 설정

    금지함수를 사용하고 Push를 요청한 경우 다음의 경고 화면이 나타난다.

    figure restriction 04
    금지함수 검출 - 경고

2.5.2. SQL 금지 함수 검출

개발자가 작성한 Query 및 Hint절에 SQL에 금지 문자가 있을 때 Push를 막을 수 있다.

다음은 SQL 금지 함수 검출하는 과정에 대한 설명이다.

  1. $PROOBJECT_HOME/system/config/dbio_config.xml에 Query의 및 Hint절에 금지 함수를 설정한다.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <dbio-config xmlns="http://www.tmax.co.kr/proobject/dbio-config">
          :
         중략
          :
        <tool-config>
            :
           중략
            :
           <sqlRestrictedKeyword>ename</sqlRestrictedKeyword>
           <sqlRestrictedHint>FULL</sqlRestrictedHint>
        </tool-config>
    </dbio-config>

    다음은 금지 함수 설정에 사용되는 태그에 대한 설명이다.

    항목 설명

    <sqlRestrictedKeyword>

    Hint절 외의 변수에 대해 금지 물자를 설정한다.

    <sqlRestrictedHint>

    Query의 Hint절(/*+ Hint */)내에 금지 문자를 설정한다.

  2. 금지 함수의 검출은 Push 단계에 확인할 수 있다.

    2번 과정의 Bold된 부분과 같이 설정하고 다음과 같이 Query 및 Hint 절에 설정한 금지 문자를 입력한 후 [Commit and Push...] 버튼을 클릭하면 금지 함수사용으로 인해 Push가 되지 않는다.

    figure sql restriction 02
    금지 SQL 검출 - 변

    SQL에 금지함수를 사용하고 Push를 요청한 경우 다음의 경고 화면이 나타난다.

    figure sql restriction 05
    금지 SQL 검출 - 변수

    Hint 절에 금지함수를 사용하고 Push를 요청한 경우 다음의 경고 화면이 나타난다.

    figure sql restriction 03
    금지 SQL 검출 - Hint절

2.6. PMD

PMD는 작성된 소스 코드를 정해진 규칙에 따라 자동으로 분석해 잘못된 코드의 문제점을 유형별로 진단하고 간략한 설명을 제공해줌으로써 코드의 품질을 향상시키는 데 도움을 주는 툴로 개발자가 프로그래밍을 하는데 가이드 역할을 한다.

PMD를 사용하기 위해서 PMD를 생성하고 PMD Rule 적용한 후 Rule에 의한 Check Code를 수행한다. Custom Rule 생성 및 Rule 배포는 OwnerShip을 가지는 담당자가 하며, 공통 Rule 파일(ruleset.xml) 적용은 개발자가 각각 진행한다.

2.6.1. Custom Rule 생성

PMD는 기본 Rule을 활성화할 수 있지만, Customizing 기능도 함께 제공한다.

다음은 Custom Rule을 생성하는 과정에 대한 설명이다.

  1. [Window] > [Preferences] > [ProObject] > [ProMapper] 메뉴를 선택하면 현재 정의된 Rule 내역 및 편집 가능한 화면이 나타난다. Rule Configuration 영역에서 [+] 버튼을 클릭한다.

    figure pmd 01
    Custom Rule 생성(1)
  2. Rule의 기본 정보를 설정한다. 각 항목을 입력한 후 [Finish] 버튼을 클릭한다.

    figure pmd 02
    Custom Rule 생성(2)
    항목 설명

    Rule name

    정의할 Rule 이름을 입력한다.

    RuleSet

    Rule을 그룹핑하는 단위이며, 생성할 유형과 맞는 RuleSet을 선택한다.

    Implemented by

    스크립트 종류를 선택하며, 현재 장표에서는 XPath script의 기준으로 설정한다.

    Implementation class

    Implemented by의 Class 구현체이다.

    Priorty

    규칙에 매치되는 결과의 중요도를 선택한다.

    • Blocker(High): 심각한 버그가 발생할 수 있는 코드이기 때문에 반드시 Rule을 준수해야 한다. (빨강색)

    • Critical(Medium) : 심각하지는 않지만 버그가 발생할 수 있는 코드이기 때문에 Rule을 준수해야 한다. (하늘색)

    • Urgent(Medium) : 복잡한 코딩, Best Practice 및 보안, 성능 등에 관련 된 내용으로 준수 할 것을 권장한다. (초록색)

    • Important(Medium Low) : 버그가 아니며 표준, 코딩 스타일, 불필요한 코드 및 미사용 코드에 관련된 내용이다. (분홍색)

    • Warning(Low) : 패키지, 클래스, 필드 등 Naming에 관련된 내용이다. (파랑색)

  3. Rule의 설명과 메시지를 입력한 후 [Next] 버튼을 클릭한다. 만약 빈 화면이 나오면 [Next] 버튼을 한번 더 클릭한다.

    figure pmd 03
    Custom Rule 생성(3)
  4. 다음은 실제로 체크되는 Rule을 적용하는 화면으로 시작문자가 'abc’로 시작했을 때 Rule에 match를 체크한 예이다. Xpath Script 문법을 사용하여 스크립트를 작성한 후 [Finish] 버튼을 클릭한다.

    figure pmd 05
    Custom Rule 생성(4)
  5. 다음은 'abc_check Rule'이 생성된 화면이다.

    figure pmd 07
    Custom Rule 생성(5)

2.6.2. Rule 배포

다음은 생성한 PMD Rule을 배호하는 과정에 대한 설명이다. PMD Rule 생성, 배포는 OwnerShip을 가지는 담당자가 대표로 진행한다.

  1. PMD Rule File은 ProStudio workspace 하위에 생성된다.

    figure pmd 10
    Rule 배포 (1)
  2. Package Explorer에서 프로젝트를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [PMD Rule Download]를 선택하면 workspace의 ruleset.xml 파일이 ".project" 하위 폴더에 생성된다. 해당 파일은 Git Grpository에 Push하면, 모든 개발자와 해당 파일을 공유할 수 있다.

    figure pmd 08
    Rule 배포 (2)

2.6.3. 공통 Rule 파일 적용

Git Repository에 Push된 ruleset.xml 파일은 Pull할 때 개발자의 ProStudio에 생성(변경)된다.

Local에 생성(변경)된 파일의 적용은 각각의 개발자의 추가 작업이 필요한다. Check Rule을 위한 공통 Rule 파일(ruleset.xml) 적용은 각각의 개발자가 수행하도록 한다.

Package Explorer에서 프로젝트를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [PMD Rule Upload]를 선택하면 workspace의 ruleset.xml 파일이 적용된다.

figure pmd 10
공통 Rule파일(ruleset.xml) 적용

Rule을 적용하기 위해서는 ProStudio를 재부팅해야 한다.

2.7. 산출물 내보내기

Project를 진행하는 경우 단계별로 리소스에 대한 산출물을 생성이 필요하다. 이에 대한 지원을 ProStudio에서는 산출물 내보내기 기능으로 제공한다. 산출물 내보내기 가능한 리소스는 SO, BO, JO, DO, QO, JO이며 Default 또는 설정에 따라 리소스 단일 또는 일괄 산출물 생성이 가능하다.

산출물을 생성하는 경우 Project별로 템플릿의 수정할 필요가 있을 경우에는 확정점 플러그인 설치 및 구현을 참고한다.

2.7.1. 단일 산출물 내보내기

산출물 내보내기는 각각을 리소스를 Open할 수 수행한다. Open된 리소스에서는 각 리소스별로 해당되는 [내보내기] 버튼을 클릭해서 산출물을 내보낼 수 있다.

다음은 ServiceObject(SO)를 산출물로 내보내는 과정에 대한 설명이다(Export 방식 및 생성 위치는 패키지별로 동일하다).

  1. 산출물 내보내기할 리소스를 더블클릭하여 Open 및 image([산출물 내보내기] 버튼)을 클릭한다.

    figure export document 01
    Export Document

    다음은 각 리소스별 내보내기한 기본 산출물의 구성에 대한 설명이다.

    리소스 유형별 버튼 설명

    image

    • Service Object : 기본정보, Method, Member Variable, Input Output Info, Input Data, Output Data, Flow, 처리 로직

    • Business Object : 기본정보, Method, Member Variable

    • Job Object : 기본정보, Flow, Job Parameter Info, Job Parameter Field, Condition Info

    image

    • Data Object : 기본정보 (Default 환경에서는 해당 버튼은 보이지 않으며, 버튼 활성화를 위해서는 관련 설정을 참고한다.)

    • Data Object Factory : 기본정보, Data Object Info, Data Object Field, Full Statement

    • Query Object : 기본정보, Full Statement

  2. 생성된 산출물은 Project Exploer의 gen-doc 아래에 내보내기한 SO의 Package에 .doc으로 생성된다.

    다음은 SO(Service Object)의 예제이며, 각각의 리소스 유형별 산출물 Layout은 다르다.

    figure export document 02
    Export Document - 산출물

2.7.2. 일괄 산출물 내보내기

다음의 과정으로 패키지별로 산출물을 일괄로 내보낼 수 있다.

  1. Project Exploer의 PO 리소스 메타의 컨텍스트 메뉴에서 [프로오브젝트] > [Export Package to Document]를 선택한다.

    figure export document 03
    Export Document (1)
  2. 생성된 산출물은 Project Exploer의 gen-doc 아래에 내보내기한 프로젝트 아래에 .doc으로 일괄 생성된다.

    산출물 내보내기할 대상은 아래와 같이 6개의 리소스이다.

    figure export document 04
    Export Document (2)

    SO, BO, JO, DO, QO, JO 유형에 대해서 산출물 내보내기 가능하다.

  3. 최종적으로 생성된 산출물 내역은 아래와 같이 각 리소스별로 1개씩 총 6개가 생성된다. 문서에 추가하기 위해 생성한 중간 파일인 ".png"은 필요한 경우 다른 용도로 사용할 수 있다.

    figure export document 05
    Export Document - 산출물 내역

2.7.3. 관련 설정

DO에 산출물 버튼 활성화 및 메타(XML Meta)에 생성/변경 정보를 추가하기 위해서 다음과 같은 산출물 관련 설정을 해야 한다.

DO 산출물 버튼 활성화

DO 작성 화면에서 [산출물 내보내기] 버튼 활성화를 위해서는 아래와 같이 SiteConfig.xml의 USE_STURUCTURE_DOC_EXPORT 설정이 true가 되어야 한다.

<?xml version="1.0" encoding="EUC-KR" standalone="yes"?>
<siteConfig xmlns="http://www.tmax.co.kr/proobject/siteConfig">
   :
  중략
   :
  <siteElement id="USE_STURUCTURE_DOC_EXPORT" value="true" type="boolean" xmlns=""/>
</siteConfig>

리소스 메타(XML Node 정보)에 권한정보 추가

기본 메타에는 생성자(creator), 최종변경자(modifier), 권한사용자(owner) 정보가 없다. 해당 정보가 없을 때에는 산출물에도 표시 되지 않아, 아래 그림과 같이 공란으로 표시된다.

이미 만들어진 리소스에 대해 권한정보를 추가 하면 해당 정보가 산출물에 표시할 수 이다.

figure export document 06
Export Document - 작성자 공란

다음과 같이 PO 리소스를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [Fill User Info]를 선택한다.

figure export document 07
Export Document - 권한정보 추가

리소스 메타(XML Node정보)에 권한정보가 추가 되면, 해당 리소스의 산출문에도 아래와 같이 개발자 정보가 표시된다.

figure export document 08
Export Document - 작성자 정상 표시

신규 리소스를 생성하는 경우에도 메타(XML Node정보)에 권한정보가 추가 하기 위해서는 $PROOBJECT_HOME/system/config/ProbuilderConfig.xml에 saveResourceUserInfo가 true로 되어 있어야 한다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<probuilder_config xmlns="http://www.tmax.co.kr/proobject/probuilder_config">
    <default-dto-names dtoPrefix="Pre" dtoSuffix="Dto" inDtoPrefix="InPre" inDtoSuffix="ListDto" xmlns=""/>
    <real-type xmlns="">true</real-type>
    <all-property-from-server xmlns="">false</all-property-from-server>
    <proMapperConfig xmlns="">
        :
      중략
        :
   <saveResourceUserInfo>true</saveResourceUserInfo>
</probuilder_config>

2.8. Local History

날짜별로 ProObject 리소스의 변경된 사항을 확인할 수 있다. 리소스를 선택한 후 Package Explorer의 컨텍스트 메뉴에서 [Team] > [Show Local History]를 선택한다.

figure local history
Team action - Local History

3. Test Case

본 절에서는 테스트 케이스를 생성하고 테스트를 수행하는 기능에 대해서 설명한다.

3.1. BO Unit Test

완료된 Biz Object는 단위 테스트를 수행할 수 있다.

  1. Package Explorer의 컨텍스트 메뉴에서 [New] > [Other...]를 선택한다.

    figure bo unit test 1
    BO Unit Test 선택(1)
  2. 트리 메뉴에서 [Proobject] > [Test] > [BO Unit test]를 선택한 후 [Next] 버튼을 클릭한다.

    figure bo unit test 2
    BO Unit test 선택(2)
  3. 테스트 대상이 되는 BO를 설정할 수 있는 화면이 열리면 [탐색] 버튼을 클릭한다.

    figure bo unit test 3
    BO Unit Test 설정 화면
  4. 조회된 BO 내역 중 Unit Test할 BO(java)를 선택한 후 [OK] 버튼을 클릭한다.

    figure bo unit test 4
    Test 대상 Bo 선택
  5. '단위 테스트 이름', '설명'을 입력한 후 [Finish] 버튼을 클릭한다.

    figure bo unit test 5
    BO Unit Test Case 생성
  6. 아래 그림과 같이 Unit Test Case Source가 생성된다. 해당 테스트 케이스는 [test/src]/[class path] 이하에 생성된다.

    figure bo unit test 6
    BO Unit Test Case Source
  7. 생성된 Unit Test Case File을 선택한 후 컨텍스트 메뉴에서 [Run As] > [JUnit Test]를 선택한다.

    figure bo unit test 7
    BO Unit Test 실행
  8. BO Unit Test 결과 및 집계를 확인할 수 있다.

    figure bo unit test 8
    BO Unit Test 실행 결과 (1)
    figure bo unit test 9
    BO Unit Test 실행 집계 (2)
  9. Unit Test 편의기능은 기존 기능과 동일 하지만 In/Out 출력 값을 UI로 설정한다.

    figure bo unit test 10
    Unit Test(Type2)

    입력 출력 구조체 설정 밎 Input/Output 값으로 설정한다.

    figure bo unit test 11
    Input/Output값 세팅

    아래와 같이 세팅한 입력값이 포함된 Unit Test Source가 생성된다.

    figure bo unit test 12
    Input/Output값 세팅

3.2. Service Test 설정

본 절에서는 Local Service Test할 때에도 공통 헤더 및 시스템 컨텍스트를 사용하기 위한 환경설정을 설명한다.

3.2.1. 공통 헤더 설정

Service Test하는 경우 공통 헤더를 입력하려면 공통 헤더 배포 및 PoDevSvr.xml가 설정되어 있어야 한다.

다음은 공통 헤더 생성 및 PoDevSvr.xml을 설정하는 과정에 대한 설명이다.

  1. com.tmax.proobject.network.protocol.proobject.request 패키지를 만들고 Header.dto를 복사한다.

  2. Header.dto 상속한 Custom DO를 만든다.

  3. Header.dto를 상속한 $PROOBJECT_HOME/system/config/PoDevSvr.xml에 아래 내용을 넣는다.

    이때 custom header 정보를 "Package + Class명"으로 입력한다.

    <?xml version="1.0" encoding="EUC-KR" standalone="yes"?>
    <serverConfig xmlns="http://www.tmax.co.kr/proobject/serverConfig">
         :
        중략
         :
        <configField id="custom-header" value="com.tmax.test.CustDto" type="String" xmlns=""/>
    </serverConfig>

3.2.2. 시스템 컨텍스트 정보 사용

Service Test 시스템 컨텍스트 사용을 위해서는ProStudio 의 application.xml에 <system-context> 태그에 정보가 설정되어 있어야 한다.

다음은 Service Test를 위한 <system-context>를 설정하는 과정에 대한 설명이다. ProStudio 애플리케이션 프로젝트에 application.xml 설정에 <system-context>를 추가한다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    :
   중략
    :
<ns16:system-context>
    <ns16:name>LAB_CONTEXT</ns16:name>
    <ns16:context-table>
        <ns16:schema>tibero</ns16:schema>
        <ns16:table>LAB_CONTEXT</ns16:table>
    </ns16:context-table>
</ns16:system-context>
</ns16:application>

예시의 DB Context 정보는 다음과 같다.

항목 설명

Schema명

DB의 스키마 명이다. (예: : tibero)

Table명

Key, Value를 가지는 컨텍스트 정보를 가지는 DB Table명이다. (예: LAB_CONTEXT)

다음은 SO, BO에서 LAB_CONTEXT인 <system-context>에서 Key가 EMS_MSG_LEN인 Value를 가져오는 예제이다.

com.tmax.proobject.model.network.RequestContext reqContext =  ServiceManager.getCurrentRequestContext();
com.tmax.proobject.model.context.SystemContext systemContext =  reqContext.getSystemContext();
com.tmax.proobject.dataobject.context.ContextDataObject context =  (com.tmax.proobject.dataobject.context.ContextDataObject)systemContext.getContext("LAB_CONTEXT");

if(context != null){
   logger.info("context EMS_IP : " +  context.get("EMS_MSG_LEN"));
}else {
   logger.info("context is null!");
}

3.3. Service Test

Local에서 서비스 단위 테스트를 수행할 수 있다.

  1. Package Explorer의 컨텍스트 메뉴에서 [New] > [Other...]를 선택한다(BO Unit Test 선택(1) 참고).

  2. 트리 메뉴에서 [Proobject] > [Test] > [Service unit test]를 선택한 후 [Next] 버튼을 클릭한다.

    figure so unit test 2
    Service test 선택
  3. 테스트 대상이 되는 SO를 설정할 수 있는 화면이 열리면 [탐색] 버튼을 클릭한다.

    figure so unit test 3
    Service Test 설정 화면
  4. 조회된 SO 내역 중 테스트할 SO를 선택한 후 [OK] 버튼을 클릭한다.

    figure so unit test 4
    Test 대상 SO 선택
  5. '테스트 케이스 이름', '한글명', '설명'을 입력하고 [Finish] 버튼을 클릭한다.

    figure so unit test 6
    Service Test Case 생성
  6. 아래 그림과 같이 Service Test Case가 생성되었다. 해당 테스트 케이스는 [test/src] 이하에 생성된다.

    figure so unit test 5
    Service Test Case
  7. [오퍼레이션] 탭을 선택하면 서비스 테스트의 상세 정보를 확인할 수 있다.

    figure so unit test 1
    Service Test Case 상세정보 - [오퍼레이션] 탭
    항목 설명

    타입

    Test Type이며, 서비스 Test이기 때문에 Service Operation이다.

    물리명

    테스트할 SO의 물리명이다.

    논리명

    테스트할 SO의 논리명이다.

    입력 DTO

    테스트할 SO의 입력 DTO이다.

    출력 DTO

    테스트할 SO의 출력 DTO이다.

    설명

    테스트할 SO의 설명이다.

    예외 발생 확인

    예외 발생 확인 여부를 체크한다.

    상위 클래스로 확인

    예외 발생을 확인하는 경우 활성화되며, Exception을 상위 Class로 확인한다.

    예외 클래스

    예외 클래스를 지정한다.

    예외 메시지

    예외 메시지 내용을 입력한다.

    시스템 컨텍스트 데이터 소스

    시스템 컨텍스트 데이터소스를 지정한다. dbio_config.xml 파일에 studio-jdb Node의 Key가 conn_name인 Value를 넣는다.

  8. [헤더데이터] 탭을 선택하면 PO 공통 헤더 아래에 site 공통 헤더(예: ename) 내역을 확인할 수 있다. 해당 설정은 공통 헤더 설정을 참고한다.

    figure so unit test 12
    Service Test Case 상세정보 - [헤더데이터] 탭
    항목 설명

    타입

    Test Type이며, 서비스 Test이기 때문에 Service Operation이다.

    물리명

    테스트할 SO의 물리명이다.

    논리명

    테스트할 SO의 논리명이다.

    입력 DTO

    테스트할 SO의 입력 DTO이다.

    출력 DTO

    테스트할 SO의 출력 DTO이다.

    설명

    테스트할 SO의 설명이다.

  9. [테스트데이터] 탭을 선택한 후 '값' 컬럼에 서비스 입력값을 설정한다.

    figure so unit test 7
    Service Test 입력값 세팅
  10. [예상 결과] 탭을 선택해서 Test 예상 결과 값을 설정한다. 예상값이 검증타입의 조건과 맞아야 해당 결과가 Success가 된다.

    figure so unit test 8
    Test Success 기준값 세팅
    검증 타입 설명

    assertEquals

    예상값이 동일할 경우 Success이다.

    assertNotNull

    결과 값이 NotNull일 경우 Success이다.

    assertNull

    결과 값이 Null일 경우 Success이다.

  11. '서비스 테스트를 디버그 모드로 실행'을 클릭하여 SO 테스트를 수행한다.

    figure so unit test 9
    Service Test 실행
  12. [테스트결과] 탭에서 테스트 결과를 확인할 수 있다.

    figure so unit test 10
    Service Test 실행 결과
    • 테스트 결과

      항목 설명

      상태

      테스트 성공(success), 실패(failure) 결과이다.

      시작시각

      테스트 시작시각 이다.

      종료시각

      테스트 종료시각 이다.

      결과 메시지

      전체 테스트 결과 메시지 내용이다.

    • 출력데이터

      항목 설명

      필드명

      결과 값의 필드명(물리명)이다.

      한글명

      결과 값의 한글명(논리명)이다.

      필드타입

      필드명의 유형이다.

      배열크기

      필드명의 배열 크기이다.

      검증타입

      필드명의 결과를 판정한 기준이다.

      • Equals

      • NotNull

      • Null

      예상값

      [예상결과] 탭에서 입력한 입력값이다.

      예상값과 비교되는 테스트의 결과 값이다.

      상태

      해당 필드에 해당하는 테스트 결과(success, failure)이다.

      결과 메시지

      필드에 해당하는 예상값, 결과값의 비교 결과 메시지이다.

      figure so unit test 11
      Service Test 로그

4. 개발 편의

본 절에서는 ProStudio에서 제공하는 개발 편의 기능에 대해서 설명한다.

4.1. Deploy Descriptor Editor

Deployment Descripter에 등록된 SO, JO를 등록/수정/삭제할 수 있는 기능을 제공한다.

4.1.1. SO/JO 추가

Deployment Descripter Editor를 사용해서 servicegroup.xml에 SO/JO의 추가할 수 있다.

  • SO 추가

    Package Explorer에서 DD를 생성할 SO를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [Generate Application DD]를 선택하여 등록할 SO를 추가한다.

    figure dd add so
    Deploy Descriptor Editor - SO 추가
  • JO 추가

    Package Explorer에서 DD를 생성할 JO를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [Job 등록]을 선택하여 등록할 JO를 추가한다.

    figure dd add jo
    Deploy Descriptor Editor - JO 추가

4.1.2. SO 삭제

Deployment Descripter Editor를 사용해서 servicegroup.xml에 등록된 SO를 삭제할 수 있다. 삭제할 SO를 선택한 후 컨텍스트 메뉴에서 [Delete]를 선택한다.

figure dd delete so
Deploy Descriptor Editor - 등록된 SO 삭제

4.1.3. SO/JO 속성 수정

Deployment Descripter Editor를 사용해서 servicegroup.xml에 등록된 서비스 속성을 수정할 수 있다.

수정할 서비스를 선택한 후 [Properties] 탭을 선택하면 서비스의 메타 정보를 수정할 수 있다. 서비스 메타에 대한 자세한 설명은 ProObject 런타임 엔진 개발자 안내서의 메타 설정을 참고한다.

  • [일반]

    [일반] 탭에서 기본정보 및 선, 후처리 등을 설정한다.

    • SO

      다음은 SO의 [일반] 탭 화면에 대한 설명이다.

      figure dd so properties
      Deploy Descriptor Editor - [일반] 탭 (SO)
      항목 설명

      Name/Dasplay Name

      리소스를 생성하는 경우 입력한 이름(물리명)이다.

      Class

      클래스 이름을 Package Path 포함해서 입력한다.

      on-error-service

      에러로 리턴되었을 때 수행되는 서비스명을 설정한다.

      SO만 설정 가능하며 [Search] 버튼을 클릭해서 설정할 수 있다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

      PreProcessor

      서비스를 수행하기 전에 수행되어야 하는 클래스를 설정한다.

      [Search] 버튼을 클릭해서 PreProcessor를 상속한 BO를 설정한다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

      PostProcessor

      서비스를 수행한 후에 수행되어야 하는 클래스를 설정한다.

      [Search] 버튼을 클릭해서 PostProcessor를 상속한 BO를 설정한다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

      Type

      • COMPLEX : 서비스 그룹의 워커 스레드에서 수행되는 일반적인 서비스의 형태이다.

      • EVENT : 단일 스레드인 이벤트 처리 스레드에서 수행되는 서비스이다.

      • OUTBOUND : Out Bound SO Type을 말하며, Value가 선택될 때 [아웃바운드] 탭의 [설정] 버튼이 활성화된다.

    • JO

      다음은 JO의 [일반] 탭 화면에 대한 설명이다. 각 항목에 대한 설명은 SO의 [일반] 탭 화면(Deploy Descriptor Editor - [일반] 탭 (SO))을 참고한다.

      figure dd so properties 03
      Deploy Descriptor Editor - [일반] 탭 (JO)
  • [Transaction]

    다음은 SO의 트랜잭션 정보를 설정하는 화면에 대한 설명이다.

    Global 트랜잭션일 경우에는 [add] 버튼을 클릭해서 Row를 추가한 후에 'Datasource', 'AutoCommit' 여부를 설정한다. Row를 선택한 후 [delete] 버튼을 클릭하면 해당 Row를 삭제할 수 있다.

    figure dd so properties 01
    Deploy Descriptor Editor - [Transaction] 탭
    항목 설명

    Transaction

    LOCAL, GLOBAL 트랜잭션 여부를 설정한다.

    GLOBAL 트랜잭션일 경우에는 Datasource, AutoCommit을 설정해야 한다.

    Datasource

    런타임에서 사용될 데이터소스를 설정한다.

    AutoCommit

    Auto Commit 여부를 설정한다. (true/false)

  • [아웃바운드]

    다음은 SO의 OutBound SO Type일 경우 설정이 필요한 화면이다. [일반] 탭의 'Type' 항목이 'OUTBOUND’로 선택된 경우 입력 가능하도록 활성화된다.

    figure dd so properties 02
    Deploy Descriptor Editor - [아웃바운드] 탭
    항목 설명

    outbound-IP

    요청할 외부 IP를 설정한다.

    outbound-Port

    요청할 외부 IP의 Port를 설정한다.

    outbound-Message

    전송할 메시지 유형을 설정한다.

    • SERIALIZE

    • Json Type

    outbound-Channel-Event-Handler

    채널 핸들러중 현재 서비스에 사용될 Event Handler를 설정한다.

    [Search] 버튼을 클릭해서 ChannelEventHandler를 상속한 BO를 설정한다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

    outbound-Target-Service

    호출할 서비스의 이름이 ServiceManager를 통해 호출한 호출자의 이름과 동일하지 않은 경우에 설정한다.

    [Search] 버튼을 클릭해서 선택할 SO를 설정한다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

  • [랑데뷰]

    아래 SO의 랑데뷰 연동서비스를 설정하는 화면이다.

    figure dd so properties 04
    Deploy Descriptor Editor - [랑데뷰] 탭
    항목 설명

    rendezvous

    rendezvous 설정을 On/Off한다.

    Service Info

    랑데뷰할 서비스를 설정한다.

    [add] 버튼을 클릭해서 "App.SG.serviceName" 형태로 지정한다. [Delete] 버튼을 클릭해서 설정된 값을 초기화할 수 있다.

4.1.4. 서비스 그룹 속성 수정

Deployment Descripter Editor를 사용해서 servicegroup.xml에 등록된 서비스 그룹 속성을 수정할 수 있다. 수정할 서비스를 선택한 후 [properties] 탭을 선택하면 서비스 그룹의 메타 정보를 수정할 수 있다.

figure dd sg properties
Deploy Descriptor Editor - 서비스 그룹 속성 설정

서비스 그룹 메타에 대한 자세한 설명은 ProObject 런타임 엔진 개발자 안내서의 애플리케이션 개발을 참고한다.

4.1.5. WSDL 생성

웹 서비스로 호출하기 위해 ProStudio에서 WSDL를 생성하는 기능을 제공한다.

다음은 WSDL 생성 과정에 대한 설명이다.

  1. Package Explorer에서 servicegroup.xml의 SO를 선택한 후 컨텍스트 메뉴에서 [Generate Stub]를 선택한다.

    figure dd gen stub 1
    Deploy Descriptor Editor - WSDL 생성 (1)
  2. Generate ProObject Stub 화면에서 각각의 properties 정보를 입력한다. 입력된 내용을 확인하고 [OK] 버튼을 클릭한다.

    figure dd gen stub 2
    Deploy Descriptor Editor - WSDL 생성 (2)
    항목 설명

    WSDL Call URL

    웹 서비스를 호출할 서버의 ip:port 정보를 입력한다. (필수)

    WSDL Target namespace

    WSDL 파일의 네임스페이스를 지정한다. (필수)

    WSDL Custom DO

    WSDL 파일의 커스텀 DO 정보를 입력한다.

  3. 저장이 완료되면 WSDL과 전문 헤더에 대한 xsd가 생성된다.

    figure dd gen stub 3
    Deploy Descriptor Editor - WSDL 생성 (3)

4.2. 메타 관리

본 절에서는 DO 작성 화면에서 메타 관리를 위한 편의 기능에 대해서 설명한다.

DO 작성화면에서 메타를 추가할 수 있는 기능인 메타 조회기능(Meta Search) 기능을 제공하고 있으며, MetaData View 화면의 Property를 활용하는 방법 보다 나은 편의성을 제공한다.

DO 작성 화면에서 메타 조회 기능 사용을 위해서는 SiteConfig.xml의 USE_FILED_NAME_META_SEARCH 설정이 true가 되어야 한다.

<?xml version="1.0" encoding="EUC-KR" standalone="yes"?>
<siteConfig xmlns="http://www.tmax.co.kr/proobject/siteConfig">
    :
  중략
    :
   <siteElement id="USE_FILED_NAME_META_SEARCH" value="true" type="boolean" xmlns=""/>
</siteConfig>

해당 설정이 활성화되면 메타 조회 화면에 [Meta Search] 버튼이 활성화된다.

figure do meta search 01
메타 조회 기능 - [Meta Search] 버튼 활성화

다음은 DO 작성화면에서 메타를 추가하는 과정에 대한 설명이다.

  1. 메타 추가를 위해서는 DO Grid의 컨텍스트 메뉴에서 [추가(Ctrl+A)]를 선택한다. '한글명'에 'META_SEARCH_LOGICAL_NAME’이 표시되면 '물리명'에 검색할 메타를 입력한다.

    figure do meta search 02
    메타 조회 기능 - Dummy Meta Row추가
  2. '물리명' 컬럼에 추가할 메타의 물리명을 넣고 [Meta Search] 버튼을 클릭하면 다음과 같이 문자를 포함하는 메타 내역이 조회된다.

    목록에서 적용할 메타를 선택한 후 [선택] 버튼을 클릭하거나 더블클릭하면 DO Grid에 메타가 적용된다. 대상 물리명이 1개일 경우에는 아래 화면이 뜨지않고 DO Grid에 적용된다. [Close] 버튼을 클릭하면 DO Grid에 메타를 적용하지 않고 창을 닫는다.

    figure do meta search 03
    메타 조회 기능 - 검색된 메타 선택
  3. 다음은 메타 조회 기능을 사용하여 메타를 추가한 결과이다.

    figure do meta search 04
    메타 조회 기능 - 결과

4.2.2. 메타 일련번호 패턴 적용

DO를 작성하는 경우 메타 내역에 대한 일련번호 패턴을 강제할 수 있다. 메타 필드 내역이 개발자별 또는 전체 개발자가 일관된 패턴 적용을 위한 기능이다. 해당 기능을 사용하기 위해서 서버 파일과 ProStudio 설정을 해야 한다.

  • ProStudio 설정으로 메타 패턴 적용

    ProStudio 설정은 각 개발자별로 설정이 가능하다. [Window] > [Preferences] 메뉴를 선택한 후 업무 트리에서 [ProObject] > [ProMapper]를 클릭한 후 화면에 각 항목을 설정한다.

    figure meta pattern force 06
    메타 일련번호 패턴 - - Studio설정
    항목 설명

    Allow the DTO Property Duplication

    Enter thr check rule

    정규식으로 패턴으로 변수명의 뒷부분을 체크한다. 예를 들어 ename이 변수명이고 "_[0-9][0-9]$"를 중복가능 변수로 추가하면 'ename_00(00은 숫자)'를 메타 필드로 추가할 수 있다.

    아래는 설정 예제이다.

    • [0-9][0-9]$

    • _[0-9][0-9]$

    • _[a-z][A-Z][0-9][0-9]$

    Maintain property name

    메타에 등록된 내역만 사용할지 여부를 설정한다.

    체크되어 있을때 메타에 등록된 내역만 사용한다. 따라서 하나의 메타 필드에 일련번호 패턴 적용 기능의 사용을 위해서는 체크가 해제되어 있어야 한다.

  • 서버 설정으로 메타 패턴 적용

    서버 설정으로 메타 패턴 적용하기 위해서 $PROOBJECT_HOME/system/config/ProbuilderConfig.xml에 정규식이 지정되어 있어야 한다.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <probuilder_config xmlns="http://www.tmax.co.kr/proobject/probuilder_config">
      <default-dto-names dtoPrefix="Pre" dtoSuffix="Dto" inDtoPrefix="InPre" inDtoSuffix="ListDto" xmlns=""/>
      <real-type xmlns="">true</real-type>
      <all-property-from-server xmlns="">false</all-property-from-server>
      <proMapperConfig xmlns="">
              :
             중략
              :
        <dtoDuplicatePropertyNamingConstraintRegex>_[0-9][0-9]$</dtoDuplicatePropertyNamingConstraintRegex>
      </proMapperConfig>
    </probuilder_config>

    해당 설정은 ProStudio 설정보다 우선시 된다. 따라서 ProStudio 설정이 되어 있더라도 dtoDuplicatePropertyNamingConstraintRegex 설정이 되어 있으면, ProStudio의 "Allow the DTO Property Duplication" 설정은 무시된다.

다음은 중복되는 컬럼 'ename'에 '_[0-9][0-9] Pattern’을 설정해서 추가하는 과정에 대한 설명이다.

  1. MetaSeqDO 화면에서 메타 일련번호를 조회한다.

    figure meta pattern force 01
    메타 일련번호 조회
  2. 중복 메타인 'ename_06’을 다음과 같이 추가한다. 'ename’을 조회 후 중복 추가할 메타 필드인 ename을 더블클릭하여 선택한다.

    figure meta pattern force 02
    메타 일련번호 패턴 - 메타 조회

    선택된 메타 필드인 ename이 표시된다.

    figure meta pattern force 03
    메타 일련번호 패턴 - 중복확인

    한글명 및 물리명에 설정된 정규식 패턴인 "_[0-9][0-9]"에 맞게 'ename_06’을 넣는다.

    figure meta pattern force 04
    메타 일련번호 패턴 - 이름변경
  3. 다음은 일련번호를 적용해서 메타를 추가한 결과화면이다.

    figure meta pattern force 05
    메타 일련번호 패턴 - 일련번호 메타 추가 완료

4.3. 모듈 상세정보 표시

[Window] > [Preferenecs] 메뉴를 선택한 후 업무 트리에서 [ProObject] > [Design Editor]를 선택하면 EMB에 Flow에 노드애 상세한 정보를 표시할 수 있다. Sesign Editor 영역에서 'Display Class Name' 항목을 체크한다.

BO의 경우는 'BO_Class_Name.function’으로 표시하며, 나머지 모듈은 'Class_Name - Node Name' 형태로 표시한다.

figure emb flow on detail info 01
모듈 정보 상세 - 설정화면
  • SO에서 모듈 유형별 상세 정보

    figure emb flow on detail info 02
    모듈 정보 상세 - SO의 예시
  • BI에서 모듈 유형별 상세 정보

    figure emb flow on detail info 03
    모듈 정보 상세 - BO의 예시

4.4. 모듈 색상 지정

EMB Designer에서 다음과 같이 버추얼 모듈, DO Factory 모듈, BO 모듈에 대해 생상을 지정할 수 있다.

figure module color setting
EMB Designer 모듈 색상 지정

색상 지정을 위해서는 다음과 같이 SiteConfig.xml 설정 파일의 siteEmbColor 설정이 필요하다. 각 모듈별 설정은 virtual(버추얼 모듈), doCall(DO Factory 모듈), bizMethodCall(BO 모듈)별 iconPaneColor, backgroundColor를 지정한다.

<?xml version="1.0" encoding="EUC-KR" standalone="yes"?>
<siteConfig xmlns="http://www.tmax.co.kr/proobject/siteConfig">
     :
    중략
    :
  <siteEmbColors xmlns="">
    <!-- 버추얼 모듈     -->
    <module moduleName="virtual" iconPaneColor="FFFF00" backgroundColor="FFFF00"/>
    <!-- DO Factory 모듈 -->
    <module moduleName="doCall" iconPaneColor="FF3300" backgroundColor="FF3300"/>
    <!-- BO 모듈         -->
    <module moduleName="bizMethodCall" iconPaneColor="3366FF" backgroundColor="3366FF"/>
  </siteEmbColors>
</siteConfig>