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
아직 댓글이 없습니다.