• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

BuildForge심화교육

기술자료/개발도구 2009. 7. 13. 22:42

1회차 교육

  • 2009/07/13 오전 9:30 ~ 오후 5:30
  • 교육자 : 강승억 차장
  • 장소 : 동부 CNI 지하 1층 수성관
  • 교육 내용.

    • Build Forge(이하 BF)의 기본적인 정리.
    • Project 생성 방법.
    • Project Step 구성.

      • Build 시에 동작하는 순서를 정의
      • 예전 7.0에 비해 비교(If) 반복(Loop) 기능 추가.

        • 7.1 부터 사용가능.
        • If : 조건에 따라 Ture일때, False(Else)일때 명령어 창을 구분하여 처리. (.runwait 사용하여 처리가능). 환경 변수를 잘 활용.
        • loop : 조건이 False가 될때 까지 계속 실행됨.
      • Command 방식의 명령어를 안에 넣어서 동작.

        • Unix에서는 특정 Shell, Windows에서는 Dos 창 명령어들이 사용가능.
        • Batch 파일을 호출하는 방식으로 적용가능.
        • dot Command 라고 해서 BF 자체적으로 제공하는 명령어들이 있음.
        • dot Command는 대략 30개 정도 존재. ( Console의 Help 참고)
        • .bset, .run .runwait 등이 자주 쓰임.
      • 실행 결과관련.

        • 단계 실행 결과가 Pass 혹은 Fail 표시. 결과 값이 0이면 Pass.
        • exit 상태에 따라 적용되는 형태를 변화. 필터 적용도 가능. Filter는 정규표현식으로 적용,
    • Library

      • Project의 실행 안되는 형태.
      • Selector 설정이 되면 Project, 안되면 Library
      • 각종 Step 정의 내용 중 Build에 직접적으로 참여하지 않는 경우, Step만 저장하는 경우 사용.
    • 환경 변수 적용 범위

      • Scope는 총 3가지로 Server > Project > Step.
      • 같은 범위 - 예를 들면 Step 1, Step 2 등등 -에서는 환경변수 영향을 받지 않음.
      • 상위 범위는 하위 범위에 영향을 받음.
      • 단, 하위 범위의 특정 변수의 이름이 상위 범위와 겹치면 하위 범위의 값으로 대체.
      • 환경 변수 Array 스타일은 Unix의 경우 ":" Windows의 경우 ";" 임.
      • Chain은 Step과 Scope가 동일하지만, Chain의 부모 Step의 환경변수를 그대로 받음.
      • 만일 프로젝트 내 변경이 심할 경우(Unix -> Windows -> HP 등등 ) 환경 변수를 모두 set 처리하여
        값이 Reset 될 수 있도록 해야 함.
      • Chain 자체도 별도 환경변수를 가질 수 있다.
      • 환경 변수 설정 방법

        • .bset 인 경우 값을 설정.
        • .append 인 경우 현재 있는 값에서 뒤쪽에 붙임.
        • .prepend 인 경우 현재 있느 값에서 앞쪼겡 붙임.
    • Server

      • Logical Server와 Physical Server는 분명 다름.
      • BF에서의 Server는 Logical Server로 Physical 설정과 다름.
      • Abstract 특성으로 Physical 서버의 설정이 바뀌거나 추가/삭제 되더라도 Build의 큰변경없이 적용가능. ( 물리적인 서버에 대한 의존성이 낮게 구성될 수 있음 )
      • 서버 별로 인증정보를 만드는 것이 추후 편함.
      • .get , .put 명령을 사용하여 Agent <--> Server 간에 파일 전송 가능( 만일 FTP 같은 포트가 막힌 경우 사용. 단, 속도가 그다지 빠른편은 아니고, 파일에 대한 안정성도 떨어짐 )
    • Collector

      • 서버의 물리적 상태 조사.
      • CPU, RAM, HDD 뿐만 아니라, 네트워크 정보, 운영체제 타입, 컴파일러, 링커, 그 밖에 추가적으로 정의된 정보들을 수집.
      • 여기서 수집된 정보는 manifest 라는형태로 남겨짐.

        • 서버의 상세 정보가 담김.
        • 일종의 환경 변수 처럼 각종 조건을 설정할 때 귀중한 조건 데이터가 됨.
        • 이 정보는 Selector에서 활용.
      • 7.0 까지는 Server 상에 환경 변수로 추가적인 환경변수 처리를 했으나, 7.1 부터 collector 자체적으로 환경변수를 설정할 수 있음.
      • 운영체제에 의존적. 운영체제나 설정에 따라 N개의 collector 존재.
      • 필요시 Collector에서 추가적으로 수집해야 될 값을 정의할 수 있음.

        • 수집할 때, Command Line을 이용하여 값을 가져온 후 정규표현식으로 다듬는다.
      • BF_ 이나, _로 시작하는 값들은 설정없이도 가져옴.
      • 7.1 부터 .include라는 명령을 통해 다른 Collector 정보를 가져올 수 있음.

        • 같은 이름의 값이 있는 경우, append 면 array 스타일로 set 이면 덮어쓰게 됨.
    • Selector

      • Collector에서 설정된 값 또는 환경 변수의 값들의 조건에 따라 Project가 동작할지 말지를 선택.
      • Selector 설정되면 Project. 안되면 Library가 됨.
    • Chain

      • Step에 대한 특정 분기나 하위 작업을 구성할 때 사용.
      • Step의 조건에 따라 독자적으로 실행되거나 Sub rootain 처럼 동작될 수 있게 함.
      • .run을 쓰면 비동기(Chain의 동작의 결과와는 상관 없이)로 동작하고, .runwait을 쓰면 동기(Chain의 동작이 실패하면 실패, 성공하며 계속 진행)
      • Step의 분기 작업에 보통 이용.
      • Console의 Property를 사용하면 목록에 각 Chain 적용 정보가 표시되나, 만일 Step내의 Command로 처리할 시에는 Chain 적용정보가 전혀 표시되지 않음.
      • Loop 처리는 바로 이 Chain의 기능을 이용하여 조건이 False가 될때까지 계속 동작하게 된다.
    • Thread

      • Thread는 Step의 속성 중 하나로 No, Yes, Join 세가지.
      • Yes 부터 Join까지의 각 Step이 한 그룹

        • 예를 들면 아래의 경우 Step 1~3이 그룹 A, Step 4가 그룹 B가 됨.
          Step 1 ( Thread : Yes )
          Step 2 ( Thread : Yes )
          Step 3 ( Thread : Join )
          Step 4 ( Thread : Yes )
        • 그룹 A가 모두 실행이 완료되어야 그룹 B가 실행됨.
        • 만일 Max Job이 만들어지는 Thread 숫자보다 작으면 Thread의 숫자도 제한을 받는다.
          예) Max Job이 1인 경우 Step ! -> Step 2 -> Step 3 로 실행된다.
      • 응용 : Thread를 Build 서버별로 만들면 동시에 여러 빌드 서버가 동작할 수 있음.
        Server1 - Selector [ Inline ] - Step 1
        Server1 - Selector [ Inline ] - Step 2
        Server1 - Selector [ Inline ] - Step 3
        Server2 - Selector [ Inline ] - Step 1
        Server2 - Selector [ Inline ] - Step 2
        Server2 - Selector [ Inline ] - Step 3
        Server3 - Selector [ Inline ] - Step 1
        Server3 - Selector [ Inline ] - Step 2
        위와 같을 때 Inline 자체에 Thread로 걸면 Server 별로 Thread 동작.
        만일 Thread 설정이 없다면 Step 순서대로 동작(물리적으로 서버가 분리되어 있어도 마찬가지)
    • Apdator

      • 명령 실행 방법, 결과 값을 표시해줄 수 있도록 만드는 I/F의 일종.
      • XML(정확히는 XAML 형태)형태로 정의
      • 설정 되는 순간 모든 Step의 0순위로 실행됨.
        ( 만일 Adaptor의 동작 결과 아무런 결과 값이 없는 경우 더 이상 실행되지 않음 - 로그 조차 안남음 : 예. 소스 변경 여부에 따라 빌드 할 지 말지를 결정할 때. )
      • Adpator의 Link를 통해 설정가능.
        필요시에는 Command Line에서 직접 실행가능.
        .source {어뎁터이름} {파라미터} : 소스 버전 관리
        .defect ㅖ어뎁터이름} {파라미터} : CQ계
        .Test {어뎁터이름} {파라미터}  : 테스트용
      • XML Format Schema

        • Interface 이름 및 기본 설정 정의 <interface/>
        • 실행 명령어 정의 <execute/>
        • 결과값 뽑아내기 : 정규식 활용 <resultblock/>
        • BOM(Bill Of Material)로 결과 전달 내용 <bomformat />

 

2회차 교육

  • 2009/07/14 오전 9:30 ~ 오후 4:30
  • 교육자 : 강승억 차장
  • 장소 : 동부 CNI 지하 1층 수성관
  • 교육 내용

    • Build 유형.

      • 통합 빌드 : 일반적인 형태. 버전을 통합하여 처리.
      • Continus Build : 변경 사항에 따른 일부 빌드 처리. - 근래 대세를 이루는 형태.
    • Job

      • 동작될 Project 혹은 Library의 활동 내역.
      • Job의 Start에서 혹은 Project의 Run Command를 통해 실행.
      • Job 목록에서 Filter 처리가능. 만일 Fail 시에 (Fail 갯수/Warning 갯수)로 전체 갯수 표시.
      • Job -> Start 에서 표시되는 항목 중 Selector 조건에 합당한 Job에 한하여 Start 가능한 항목 표시
      • 특정 Job만을 독자적으로 실행할 수 있음

        • 원칙적으로 Library는 독자 실행이 불가능하나(Selector 때문) Job에서 전제조건을 넣어 독자 실행가능.
        • ntegration 단계도 설정 가능.
        • 주의 : 7.1에서 설정 내용 중 "PATH" 항목이 중복되어 표시되는데, 그 중 맨 아래쪽의 Path 내용으로 Set 되어 처리됨.
      • Job의 Step 목록에서 특정 Step에 대해 처리 중지 및 일시 정지 처리 가능.
      • Job의 실행 순서.

        • 서버 DB 데이터 조건별 Select 처리.
        • Waiting 처리 ( Server Selector의 할당 처리 / 세마포 설정에 따른 대기 )
        • Job Queuing
        • Job Excution.
      • Job의 All 탭에 있는 항목은 수정/제어 불가능 -> Complete 항목에서 적용가능 ( Lock / Purge )
      • 완료된 Job을 클릭해서 들어가면 상세 정보를 볼 수 있음 ( 왼쪽 아래 Pane에 표시)

        • Bill of Materials
    • Schedule

      • 자동으로 특정 Project를 실행할 때 사용.
      • cron 매커니즘을 이용하여 처리 ( * 이면 매번, / 붙이면 특정 일자별 )

        • 값이 * 이면 매번 수행( day = * 이면 매일, month = * 이면 매월)
        • /? 형태로 값이 매겨지면 ? 주기로 실행 ( day = */2 이면 2일 마다 실행)
        • days는 요일 0이면 일요일 1이면 월요일 ~ 6이면 토요일.
      • UI 상에 달력에 있는 박스 내 숫자는 실행될 Project의 실행 횟수를 의미
    • Plug-in

      • Build Forge Frequency

        • Build Forge 관련 정보 접근 혹은 업데이트 처리.
        • Eclips 뿐만 아니라 VS시리즈도 지원
      • Build Forge Reflector

        • "pre-flight" 방식으로 특정 버전의 소스에서 자신의 Test 코드를 임시적으로 추가 Build 적용 가능.
        • Eclips만 지원.
        • User License가 개발자 만큼 필요할 수 있음.
    • 보안.

      • Role 기반 보안 -> 그룹을 기반으로 구성. 사용자 별 권한 설정을 할 수 없음.
      • 그룹은 하위 그룹을 가질 수 있음
      • 직책(또는 부서)별 Role 별 권한 설정을 해야 추후 구분 구성이 쉬움.
        개발1팀 그룹, Build Engineer 그룹 식으로 별개의 그룹으로 구성하여 묶어 처리.
      • LDAP(및 AD)를 통해 사용자 계정을 가져 올 수 있음

        • 단, LDAP의 정보는 반드시 1회 이상 Login을 해야 정보를 가져옴.
        • 가져 온 뒤, 해당하는 Group에 맞게 설정해야 함.
    • API

      • 7.0 버전 이하는 Perl 만 지원. 더욱이 API가 직접적 접근을 위한 함수 나열식.
      • 7.1 버전 이상에서는 Abstract 형태의 각 기능별 Class 구성.

        • Java, Perl 지원.
      • 라이센스 형태에 따라 지원 여부가 다름
    • Report 기능

      • 독자적인 License가 추가적으로 필요.
      • 주요 리포트

        • 전체 리포트 가짓수는 8가지 정도 있음
        • Capacity : 현재 물리적 서버들의 가용성을 체크하는 Report. 사용량이나, 소모 자원 정보들을 나열.
        • Quality : 프로젝트의 Pass/Fail 의 정도 및 결과 내역을 나열.
    • 제품 Scue 및 라이센스

      • 제품 Scue.
      • Express Edition : 최초 Start Pack 형태로 나온 초소형 버전. 7.0.2 버전 이후로는 사라짐.
      • Standard Edition : 기본 형태로 최대 25명 접속 가능. 비공식적으로 Dynamic Server Management 가능.
      • Enterprise Edition : 150명 접속 가능. Dynamic Server Management 가능
      • Enterprise Plus Pack : 250명 접속가능 및 User License도 포함.
      • 라이센스

        • 제품 Server 및 Console 라이센스 - 접속 가용성에 대한 라이센스.
        • 사용자 라이센스 - 접속 사용자 라이센스. (동시 접속 기준)
  • 기타 발전 내용

    • Adaptor 적용.

      • 형상 관리 등의 BF 내 확장 기능을 붙일 수 있는 I/F .
      • 특정 Schema를 근간으로 한 XML 형식의 데이터.
      • XML 데이터를 생성해주는 도구가 있으면 좋을 듯 싶음.
      • 문제점 : 제품 Scue에 따라 이 Adaptor 기능에 대한 라이센스르 별도로 사야될 수 있음.
    • Express 버전 단종.

      • 더 이상의 지원은 없을 예정. 7.0.2.가 마지막 형태.
    • 운영체제 제약.

      • 2003( XP도 포함 예정 )에 대한 지원도 없앨 예정이라고 함.

이 글은 스프링노트에서 작성되었습니다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

불만 me2sms 블로그 Azure MOSS 2007 me2photo twi2me 인터파크 Buscuit WSS 비스킷 windows Google Apps Engine Tutorial 지름신 java me2dayzm 친구 좀 2010 매뉴얼 SharePoint e-book 오류 수 Visual Studio 것 moss 협업 개발환경

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바