시작하기

본 부록에서는 ProObject Studio를 사용해서 DO, DOF, BO, SO를 생성한 서비스를 등록하고 테스트하는 과정에 대해서 설명한다.

1. DataObject(DO) 생성

다음은 DO를 생성하는 과정에 대한 설명이다.

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

    figure 1
    DO 생성
  2. New Data Object 화면에서 프로젝트를 선택한 후 DataObject 정보를 입력한다. 각 항목을 입력한 후 [Finish] 버튼을 클릭한다.

    figure 2
    New Data Object 화면

    DO 디자인 화면에서 Package Explorer의 meta 아래 '{물리명}.dto', .gen_src_dto 아래 '{물리명}.java’가 정상적으로 추가되었는지 확인한다.

    figure 3
    DO 디자인 화면
  3. MetaData View에서 DO의 필드에 추가할 메타를 검색한다. 메타는 사전에 등록되어 있어야하며, ProManager에서 등록할 수 있다.

    figure 4
    MetaData view 화면

    검색한 메타들을 드래그 앤 드롭 방식 또는 더블클릭으로 메타들을 추가한다.

    figure 5
    메타 추가 후 DataObject 에디터 화면

2. DataObject Factory(DOF) 생성

다음은 DOF를 생성하는 과정에 대한 설명이다.

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

    figure 6
    Data Object Factory생성
  2. New DataObject Factory 화면에서 프로젝트를 선택 후 각 항목을 입력한 후 [Finish] 버튼을 클릭한다.

    figure 7
    New DataObject Factory 화면

    아래의 화면과 같이 DOF가 생성된 것을 확인할 수 있다.

    figure 8
    초기 DOF 화면

    DOF를 이용하기 위해서는 Target DO 선택, 스키마 선택, 쿼리 작성 의 작업이 추가적으로 진행되어야 한다.

    1. 생성한 DOF에 Target DO를 DOF 화면(초기 DOF 화면)의 1번에 해당되는 부분에서 설정한다.

      figure 9
      Target DO 추가된 화면
    2. 대상 스키마를 선택하는 경우 연결 정보 및 스키마를 선택해 줄 수 있다.

      figure 10
      스키마 선택

      연결 정보 및 스키마를 선택할 경우 아래의 화면에서 테이블 및 컬럼을 선택할 경우 쿼리를 자동 생성할 수 있다.

      figure 11
      테이블, 컬럼 선택
    3. 쿼리를 직접 작성하는 원하는 경우 DOF 화면(초기 DOF 화면)의 3번에 해당되는 부분에 직접 작성할 수 있다.

      figure 12
      쿼리 생성 결과

3. BizObject(BO) 생성

다음은 BO를 생성하는 과정에 대한 설명이다.

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

    figure 13
    BizObject 생성
  2. New BizObject 화면의 각 항목을 입력한 후 [Finish] 버튼을 클릭한다.

    figure 14
    New BizObject 화면

    아래의 화면과 같이 BO가 생성된 것을 확인할 수 있다.

    figure 15
    초기 BizObject 화면
  3. 생성한 BO에 이전에 생성한 DOF 모듈을 추가해야 한다.

    1. DOF를 모듈을 추가하기 위해서는 멤버 변수를 추가해야한다. 멤버 변수를 추가하기 위해서는 Member Variables의 [+]를 클릭한 후 이전에 생성한 DOF를 검색한 후 추가한다.

      figure 17
      Member Variables 추가 화면 (1)

      DOF를 추가하면 DO factory ‘DO factory 변수 선언’에서 확인이 가능하며 사용할 데이터소스를 선택한다.

      figure 18
      Member Variables 추가 화면 (2)

      다음은 멤버 변수를 추가했을 때의 화면이다.

      figure 19
      Member Variables 추가 후 화면
    2. 메소드를 생성하고, ServiceObject에서 입력 받은 값을 받아와 처리해 그 값을 다시 반환하도록 설정한다. Methods[+]를 클릭한 후 기본 정보를 설정한다.

      figure 20
      Methods 추가 화면 (1)

      메서드 정의 화면에서 각 항목을 입력한 후 [OK] 버튼을 클릭한다.

      figure 21
      Methods 추가 화면 (2)

      다음은 메소드를 추가한 후의 화면이다.

      figure 22
      Methods 추가 후 결과 화면

      추가된 메소드의 Properties에서 리턴 타입의 변경이 필요하며, 추가적으로 값을 받아오기 위한 매개변수를 추가하는 작업이 필요하다.

      figure 23
      Method Property 화면
    3. EMB Designer의 좌측 Palette에서 모듈을 추가한다. DOF를 추가하기 위해서는 Palette에서 image를 클릭하고, image를 드래그 앤드 드롭해서 디자인 화면에 넣는다.

      figure 26
      디자인 에디터 DOF 모듈 추가 화면 (1)
      figure 27
      디자인 에디터 DOF 모듈 추가 화면 (2)

      추가한 DOF Properties에는 'Query 타입'을 'FULL’로 선택한 후 'Query 선택' 항목을 택하면 'SQL 종류'가 자동으로 설정된다.

      figure 28
      DOF 모듈 Properties 화면

      추가한 모듈에 조회 파라미터를 매핑하기 위해 모듈에 마우스를 이동하고 image 버튼을 클릭한다.

      figure 30
      파라미터 매핑 화면

      조회 파라미터를 매핑할 경우 이에 대한 결과는 소스 영역에서 확인할 수 있다. 필요에 따라 결과값도 동일하게 사용한다.

      • [SELECT]

        image

        마지막으로 메소드의 반환값을 작성한다.

        image

        파라미터를 매핑하는 방법은 쿼리 종류마다 약간의 차이가 있으며, 상황에 따라 변경해서 사용한다.

      • [INSERT]

        image

      • [UPDATE]

        image

      • [DELETE]

        image

4. ServiceObject(SO) 생성

다음은 ServiceObject(SO)를 생성하는 과정에 대한 설명이다.

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

    figure 36
    ServiceObject 생성
  2. SO의 경우 다른 메타와는 달리 in/output DO를 등록해야 한다.

    figure 37
    New ServiceObject 화면
  3. SO를 생성한 후 image을 클릭해서 메소드를 추가한다.

    figure 39
    비구현 메소드 추가 화면 (1)

    다음은 메소드를 추가한 결과 화면이다.

    figure 40
    비구현 메소드 추가 화면 (2)
  4. BO Member 변수를 추가하려면 [+]를 클릭한다. 다음의 화면에서 [Object 타입] 탭을 선택한 후 이전에 생성했던 BO를 검색한 후 추가한다.

    figure 41
    멤버 변수 추가 (1)

    다음과 같이 변수가 추가된 것을 확인할 수 있다.

    figure 42
    멤버 변수 추가 (2)
  5. service 메소드를 더블클릭하여 디자인 화면으로 이동한다. 디자인 화면에서 image을 클릭한 후 BO 모듈을 추가한다.

    figure 44
    디자인 - BO 모듈 추가

    입력 받은 값을 BO에 전달하고, BO에서 처리한 값을 다시 받아오게 해야 한다. 추가한 BO 모듈의 image을 클릭하여 해당 작업을 진행할 수 있다.

    figure 46
    리턴 값 - 인자값 추가
  6. 마지막으로 버추얼 모듈을 추가하여, 반환 값을 작성한다.

    figure 47
    버추얼 모듈 추가
    figure 48
    버추얼 모듈 반환 값 추가

5. 서비스 등록(Generate Application DD)

만든 서비스를 PO 런타임에서 돌리기 위해 서비스를 등록해야 한다. 등록할 SO를 선택한 후 컨텍스트 메뉴에서 [프로오브젝트] > [Generate Application DD]를 선택한다.

figure 49
Generate Aplication DD

등록한 SO에 대한 정보는 [META-INF]의 servicegroup.xml에 반영된다.

figure 50
Generate Aplication DD - Servicegroup.xml 결과

6. 서비스 테스트

다음은 서비스 테스트 하는 방법에 대한 설명이다. 서비스 테스트는 스튜디오와 ProManager에서 진행할 수 있다(ProManager로 테스트하는 방법은 HotDeploy 및 Servcie Test를 참고한다).

  1. 서비스 테스트를 진행해 주기 위해서는 테스트 케이스를 만든다. 업무 트리에서 [Service Test]를 선택한 후 [Next] 버튼을 클릭한다.

    figure 51
    Service Test 생성 (1)
  2. 새 프로오브젝트 테스트 케이스 화면에서 테스트할 서비스 오브젝트(SO)를 선택하고, 테스트 케이스 정보를 각각 작성한다.

    figure 52
    Service Test 생성 (2)
  3. 생성된 테스트 케이스는 Pakckage Exploer[test] > [src]에서 확인할 수 있다.

    figure 53
    테스트 케이스 - 일반 화면
  4. 서비스 테스트를 디버그 모드로 실행을 클릭하면 서비스 테스트가 실행되며, DB Commit을 체크하고 실행할 경우 실제로 DB에 값이 들어가는지 확인할 수 있다. 만약 입력할 데이터가 있다면 [테스트 데이터] 탭을 선택하면 다음과 같이 필드에 값을 넣고 테스트할 수 있는 화면으로 이동한다.

    figure 54
    테스트 케이스 - 테스트 데이터 화면
  5. 테스트 결과는 [테스트 결과] 탭에서 확인할 수 있다.

    figure 55
    테스트 케이스 - 테스트 결과 화면
  6. 다음은 생성한 서비스를 테스트하기 위해 입력값을 넣고 수행한 결과이다.

    figure 56
    테스트 케이스 - 테스트 결과

    1의 경우는 [테스트 데이터] 탭에서 입력값에 대한 내용이며, 2의 경우 DOF에서 설정한 쿼리가 입력 받은 값을 반영한 결과이다.