TR(Transport Request) 란
TR(Transport Request) 란
- SAP의 TR(Transport Request)은 Git의 브랜치(Branch)보다는, 변경된 소스코드를 상용 서버로 안전하게 배포하기 위해 포장해 둔 ‘배포 패키지(커밋+배포본)’에 가깝습니다.
1. TR(Transport Request)의 개념 이해
💡 SAP는 일반적인 웹 개발과 달리 모든 개발자가 하나의 중앙 개발 서버(Development Server)에서 공동으로 작업합니다. (각자의 로컬 PC에서 브랜치를 따서 코딩하는 구조가 아님)
- 내가 수정한 코드가 다른 사람의 작업을 방해하지 않고, 검증(QA) 서버를 거쳐 운영(Production) 서버까지 안전하게 이동할 수 있도록 해주는 별도의 ‘운반 상자’가 필요한데,
이를 TR(이송 요청서)이라고 합니다.
2. Git 브랜치 vs SAP TR 차이점
웹 개발 경험과 비교해보면 TR의 특성을 더 쉽게 이해할 수 있습니다.
| **비교 항목** | **Git (웹 개발)** | **SAP ABAP** |
| **작업 공간** | 개발자 개별 PC (로컬 환경) | 하나의 중앙 개발 서버 (공용 환경) |
| **코드 격리** | **브랜치(Branch)**를 만들어 나만의 공간 확보 | 브랜치 개념 없음. 소스 코드에** Lock(잠금)**을 걸어 독점 작업 |
| **이동/배포 방식** | PR(Pull Request) 후 Merge 하여 배포 | 변경된 객체들을 **TR(상자)**에 담아 상용 서버로 이송 |
Git과 비교하여, TR 흐름 정리
SAP에서 TR을 만들고 개발하는 과정
- TR 생성: 배포용 상자를 하나 준비합니다.
- 개발 및 저장: 코드를 수정하면 해당 프로그램이 내 TR 상자 안으로 들어갑니다. (동시에 다른 사람이 못 고치게 Lock이 걸립니다.) 이것은 Git에서 변경 사항을 Commit하는 것과 비슷합니다.
- Task Release: 내 작업이 끝났음을 마킹합니다.
- TR Release (이송): 상자를 닫고 고유 번호(예:
PZEK902044)를 부여해 QA나 운영 서버로 보냅니다. 이는 빌드된 아티팩트를 운영 환경에 Deploy(배포)하는 것과 같습니다.
3. TR을 사용할 때 주의할 점
💡 이송 순서(Sequence): A 프로그램이 B 클래스를 참조하는데, B가 담긴 TR보다 A가 담긴 TR이 운영 서버에 먼저 반영되면 구문 오류(Syntax Error)가 발생합니다. 선후 관계를 잘 파악해야 합니다.
- 동일 객체 충돌 방지: 하나의 프로그램을 두 명의 개발자가 서로 다른 TR에 담아 동시에 수정하면, 나중에 운영 서버에 반영될 때 코드가 덮어써지는 대참사가 발생할 수 있습니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.