DB 형상관리

본 장에서는 ProStudio에서 제공하는 DB 형상관리의 주요 기능에 대해 설명한다.

1. 개요

ProStudio는 Git 및 Db의 형상관리 방식을 지원한다. DB 형상관리는 개발자가 개발한 리소스(SO, BO, DO 등)가 DB에 바로 저장되기 때문에 Git처럼 Local로 리소스 등을 Pull하는 작업을 하는 단계가 줄어든다. 따라서 리소스의 관리가 직관적이다는 장점이 있다. 하지만 Git의 Branch 등을 관리하는 Git의 고유 기능은 이용하지 못한다.

DB 형상관리도 Git과 마찬가지로 프로젝트를 먼저 생성해야 한다. 애플리케이션과 서비스 그룹 프로젝트 생성에 대한 자세한 내용은 프로젝트 생성을 참고한다.

3. Project 리소스 관리

본 절에서는 리소스를 저장하는 커밋, 리소스의 편집 권한을 가져오는 체크아웃, 리소스의 편집 권한을 해제하는 체크인, Lock의 현행화를 위한 Lock Synchronization에 대해서 설명한다.

3.1. 커밋

리소스를 DB에 저장 하는 단계이다. 이때 서버에 리소스 정보 및 ProMiner 정보 그리고 컴파일 단계등을 거친다. 커밋된 이후에도 체크인 이전 까지는 편집 및 커밋이 가능하다.

다음은 커밋하는 과정에 대한 설명이다.

  1. DB에 저장 할 리소스를 선택(여러 개 선택 가능)한 후 컨텍스트 메뉴에서 [Team] > [커밋(C)]를 선택한다. 이때 커밋 가능한 리소스는 체크아웃된 리소스 및 신규 작성한 리소스이다.

    figure db rsc manage commit 01
    리소스 커밋 - Commit 리소스 선택 및 처리
  2. 커밋할 대상이 되는 리소스 내역이 표시되는 화면에서 [OK] 버튼을 클릭하면 커밋 작업을 수행한다.

    figure db rsc manage commit 02
    리소스 커밋 - 커밋 처리
    항목 설명

    Comment

    커밋할 리소스의 설명을 입력한다.

    deselect all

    커밋할 리소스 대상을 모두 제외한다.

    select all

    커밋할 리소스 대상을 모두 선택한다.

    Ignore resources

    서버에 리소스가 충돌하더라도 무시한다.

  3. 정상적으로 Commit되면 아래와 같이 네비게이터의 리소스에 [V] 표시가 된다. 또한 리소스의 오른쪽에 커밋 리비전이 1만큼 증가한다.

    figure db rsc manage commit 03
    리소스 커밋 - 커밋 완료

3.2. 체크인

리소스에 대한 수정이 끝나면 체크인 과정을 거쳐야 한다. 체크인이 완료된 상태에서는 편집 권한이 없어진다. 추후 [체크아웃]하여 수정 권한을 획득할 수 있다. 체크인의 대상의 리소스는 우측에 숫자(1이상)가 있어야 하며, [V] 표시가 있는 것들이다. 이러한 리소스가 체크인 대상이 된다.

다음은 체크인하는 과정에 대한 설명이다.

  1. 체크인할 리소스를 선택(복수 선택 가능)한 후 컨텍스트 메뉴에서 [Team] > [체크인(N)]를 선택한다.

    figure db rsc manage checkin 01
    리소스 체크인 - 리소스 선택 및 처리
  2. Comment를 입력하고 [OK] 버튼을 클릭하면 체크인이 수행된다.

    figure db rsc manage checkin 02
    리소스 체크인 - 체크인 처리
    항목 설명

    Comment

    체크인 설명을 입력한다.

    File

    Package path 및 리소스명을 나타낸다.

    Status

    현재 상태가 Check Out, Check In 상태인지를 나타낸다.

    Revision

    현재 리소스의 리비전을 나타낸다. 커밋 할때마다 1씩 증가한다.

  3. 정상적으로 체크인되면, 아래와 같이 네비게이터의 리소스에 [V] 표시가 없어진다.

    figure db rsc manage checkin 03
    리소스 커밋 - 커밋 완료

3.3. 체크아웃

체크아웃은 리소스의 편집 권한을 획득 할 수 있는 작업이다. 체크인된 리소스는 모두 체크아웃 작업을 진행해야 편집 권한을 가진다. 체크아웃 대상의 리소스는 우측에 숫자(1이상)가 있어야 하며, [V] 표시가 없어야 한다. 이러한 리소스가 체크아웃 대상이 된다.

다음은 체크아웃하는 과정에 대한 설명이다.

  1. 체크아웃할 리소스를 선택(복수 선택 가능)한 후 컨텍스트 메뉴에서 [Team] > [체크아웃(O)]를 선택한다.

    figure db rsc manage checkout 01
    리소스 체크아웃 - 리소스 선택 및 처리
  2. 정상적으로 체크아웃되면 아래와 같이 네비게이터의 리소스에 [V] 표시가 된다.

    figure db rsc manage checkout 02
    리소스 체크아웃 - 체크아웃 완료

3.4. Lock Synchronization

Lock Synchronization 기능은 ProManager에 의해 실제로는 Check In(Unlock) 상태이지만, Resource Tree에 보이는 내용은 CheckOut(상태일 경우)에 Sync를 맞추기 위해서 제공하는 기능이다.

예를 들어 체크아웃한 상태로 장기간 자리 비움 상태일 경우에는 해당 리소스의 편집을 할 수 없다. 이를 보완하기 위해 강제로 체크아웃(Lock)상태를 해제할 수 있다.

ProManager에서 체크아웃(Lock)상태를 강제로 해제한다.

figure db rsc manage lock 01
Lock Sync - Lock 해제

ProStudio의 리소스는 체크아웃 상태이며, [Team] > [Lock Synchronization]를 클릭한다.

figure db rsc manage lock 02
Lock Sync - Lock Sync 작업 수행

아래와 같이 체크아웃(Lock)이 해제되어 체크인 상태가 되었다는 것을 확인할 수 있다.

figure db rsc manage lock 03
Lock Sync - Lock이 해제된 상태

현재 리소스의 Lock(체크아웃) 상태인 경우 상세 정보 확인을 위해서도 사용된다.

figure db rsc manage lock 04
Lock Sync - 상태정보 표시

4. Project 버전관리

[Resource 가져오기] 기능을 사용하면 프로젝트의 최신 리소스를 DB(Server)에서 가져 올 수 있다. 또한 요건이 변경된 리소스의 편집을 위해서는 ProStudio의 Local 리소스를 DB(Server)의 리소스로 맞추고 시작해야 하는데 이 경우 업데이트 기능을 사용한다.

본 절에서는 DB에 저장된 리소스를 Local로 가져오거나 Local에 있는 리소스를 현행화하는 기능에 대해 설명한다.

4.1. 업데이트

현행화할 리소스를 선택한 후 컨텍스트 메뉴에서 [Team] > [업데이트]를 선택하면 DB(Server)에 있는 리소스를 Local로 현행화한다.

figure db rsc manage update 01
리소스 업데이트 - 업데이트 실행

업데이트의 유형은 다음과 같이 3가지가 있다.

구분 설명

업데이트(U)

선택된 리소스만 현행화한다.

업데이트(종속 리소스 포함)

종속성이 있는 리소스 내역은 모두 현행화한다.

업데이트(1depth 종속 리소스 포함)

종속성이 있는 1Depth의 리소스만 현행화한다.

업데이트가 완료되면 최신 리비전으로 현행화된다.

figure db rsc manage update 02
리소스 업데이트 - 현행화 결과

4.2. 리소스 가져오기

프로젝트를 선택한 후 컨텍스트 메뉴에서 [Team] > [가져오기(I)]를 기능을 사용하면 프로젝트의 최신 리소스를 DB(Server)에서 가져 올 수 있다.

figure db rsc manage get 01
Resource 가져오기

5. 기타 기능

본 절에서는 DB 형상관리의 부가 기능에 대해 알아본다.

5.1. 커밋 시 컴파일 Skip기능

다량의 리소스를 한번에 커밋할 때 컴파일을 Skip하여 커밋 시간을 절약할 수 있다. 추후 일괄 빌드 등의 작업은 필요하다.

  • 방법 1)

    $PROOBJECT_HOME/system/PoDevSvr.xml에 SKIP_COMPILE_IN_COMMIT를 TRUE로 설정한다.

    <?xml version="1.0" encoding="EUC-KR" standalone="yes"?>
      <serverConfig xmlns="http://www.tmax.co.kr/proobject/serverConfig">
        :
       중략
        :
      <configField id="SKIP_COMPILE_IN_COMMIT" value="TRUE" type="String" xmlns=""/>
    </serverConfig>
  • 방법 2)

    $PROOBJECT_HOME/system/config/ProbuilderConfig.xml의 commitActionWithoutCompileOption을 true로 설정한다.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
       <probuilder_config xmlns= .. 중략 ..
       <commitActionWithoutCompileOption xmlns="">true</commitActionWithoutCompileOption>
    </probuilder_config>