News

아직도 Transport로 버전 관리? — abapGit으로 끝

Transport Request의 한계

SAP ABAP 개발의 전통적인 버전 관리 방법은 Transport Request(TR)입니다. 개발 → QA → 운영으로 TR을 통해 코드를 이관합니다. 하지만 TR 방식에는 치명적인 한계가 있습니다. 코드 이력이 SAP 시스템 내에만 존재하고, 브랜치/머지가 없으며, PR 리뷰나 CI/CD 파이프라인 연동이 어렵습니다. abapGit은 ABAP 코드를 Git으로 관리하는 오픈소스 도구입니다.

abapGit이란

" abapGit: ABAP 코드를 Git(GitHub, GitLab, Bitbucket)과 동기화
" - ABAP 오브젝트를 XML/텍스트 파일로 직렬화
" - Git 저장소에 push/pull
" - SAP 시스템과 Git 저장소 간 양방향 동기화
" - 오픈소스 (MIT 라이선스)

" 지원하는 오브젝트 타입:
" - PROG (Program)
" - CLAS (Global Class)
" - INTF (Interface)
" - DDLS (CDS View)
" - TABL, VIEW, DTEL (DDIC 오브젝트)
" - FUGR (Function Group)
" - DEVC (Package)

abapGit 설치

" 1. abapGit 설치 프로그램 다운로드
" https://github.com/abapGit/abapGit 에서 zabapgit.abap 다운로드

" 2. SE38에서 ZABAPGIT 프로그램 생성 후 코드 붙여넣기

" 3. abapGit 실행
" SE38 → ZABAPGIT → Execute (F8)

" 4. 또는 ADT에서 abapGit Standalone 버전 사용
" (Eclipse Plugin: abapGit for ABAP Development Tools)

GitHub 저장소 연결

" abapGit UI 순서:
" 1. ZABAPGIT 실행
" 2. New Online → Repository URL 입력
"    예: https://github.com/mycompany/abap-salesapp.git
" 3. Branch: main (또는 develop)
" 4. Package: ZSALES_APP (ABAP 패키지)
" 5. Clone → 저장소 코드를 ABAP 시스템으로 가져옴
"
" 또는 기존 ABAP 코드를 GitHub에 올리기:
" 1. New Online → 빈 GitHub 저장소 URL
" 2. Add objects → 패키지 선택
" 3. Push → GitHub에 처음 업로드

일상적인 개발 워크플로

" 일반 ABAP 개발 후 abapGit으로 Push
" 1. ADT 또는 SE80에서 코드 수정
" 2. ZABAPGIT 실행 → 수정된 오브젝트 확인 (diff)
" 3. Stage → Commit 메시지 입력
" 4. Push → GitHub에 업로드

" GitHub에서 코드 가져오기 (Pull)
" 1. 팀원이 GitHub에 Push함
" 2. ZABAPGIT → Pull → 변경사항 ABAP 시스템에 적용

" 브랜치 작업
" 1. GitHub에서 feature/new-order-logic 브랜치 생성
" 2. ZABAPGIT → Branch → feature/new-order-logic으로 전환
" 3. 개발 → Push
" 4. GitHub에서 PR 생성 → 코드 리뷰 → Merge

CI/CD 파이프라인 연동

# GitHub Actions 예시
name: ABAP CI

on:
  pull_request:
    branches: [main]

jobs:
  abap-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Run ABAP Unit Tests via abap-cleaner
        uses: abapGit/abap-unit-test-action@v1
        with:
          host: ${{ secrets.ABAP_HOST }}
          user: ${{ secrets.ABAP_USER }}
          password: ${{ secrets.ABAP_PASSWORD }}
          package: ZSALES_APP

      - name: ATC Check
        uses: abapGit/abap-atc-action@v1
        with:
          package: ZSALES_APP
          fail-on-errors: true

TR과 abapGit 병행 사용

" abapGit과 TR은 병행 사용 가능
" 전략:
" - abapGit: 코드 버전 관리 (Git 중심)
" - TR: 운영 이관 (시스템 간 이동)
" - 개발 중: Git으로 협업
" - 운영 이관: TR로 공식 이관

" SAP BTP ABAP Environment(ABAP Cloud):
" - TR 대신 gCTS(git-enabled Change and Transport System) 사용
" - abapGit 없이도 Git 기반 워크플로 지원

공식 리소스

abapGit 공식 문서는 docs.abapgit.org에서 확인하세요. GitHub Actions 연동과 ABAP CI/CD 설정 예제가 상세히 안내되어 있습니다.

댓글 0

아직 댓글이 없습니다.