본문 바로가기

ABAP 프로그래밍 개념/Architecture of SAP System

3-2. Data Structure : Repository, Package


Repository


Repository 는 ABAP 프로그램, Screen, Menus, Function Modules, ABAP Data Dictionary Objects와 같은 ABAP Workbench Development Objects를 위한 시스템 중앙 저장소입니다.

 ABAP 프로그램의 소스코드와 테이블 정의 포함하여, 모든 데이터는 데이터베이스 테이블에 저장됩니다. 이러한 테이블은 클라이언트 필드 (MANDT)에 제한되지 않아, cross-client로 사용됩니다. 따라서, 한 클라이언트에서 테이블이나 프로그램을 생성하면 자동으로 모든 클라이언트에서 사용 가능합니다. 모든 Repository Object는 cross-client로 사용됩니다. 다시 말해, 테이블은 cross-client로 사용되지만, 테이블의 데이터는 client-specific이나 cross-client로 설정할 수 있습니다. 이를 위해서는 클라이언트 필드를 포함하거나 무시하여 클라이언트별 또는 cross-client로 설정할 수 있습니다.


Packages


Repository Object는 Package( 이하 패키지)에서 구성되며.프로그램이나 테이블과 같이 관련된 개발 객체들을 포함합니다. 프로젝트를 위해 여러 개의 보고서, 클래스, 그리고 몇 개의 테이블을 생성하는 경우, 이러한 의미론적으로 연관된 객체들을 한 패키지에서 관리함으로써 프로젝트에 관련된 개발 객체를 식별하는 데 도움이 됩니다. 이를 통해 프로젝트 요구 사항이 변경될 때 변경이 필요한 패키지에 종속된 객체들을 쉽게 식별하여 변경할 수 있습니다. 또한 패키지는 관련된 모든 객체들을 함께 클라이언트 간에 전송이 가능합니다.

패키지들은 넓게는 Transportable(전송가능한)과 Nontransportable(전송가능하지않은) 패키지로 분류됩니다.

■ Transportable package(전송가능한 패키지)
→ Transportable package에는 Transport Attribute의 정의가 포함되어 있습니다. Transportable package의 객체들은 Target System으로 전송될 수 있습니다. 새로운 애플리케이션을 개발할 때는 개발 클라이언트에서 시작하여 테스트 클라이언트로 전송하여 테스트를 수행한 후, 최종적으로 애플리케이션을 생산 클라이언트로 전송하여 최종 유저가 사용하도록 합니다. 이 과정에서 애플리케이션의 모든 개발 객체와 사용자 정의 설정을 ransportable package에 유지하여 CTS를 사용하여 Target System으로의 전송을 용이하게 합니다.

Nontransportable package
→ Transport Attribute가 정의되지 않은 패키지를 Nontransportable package라고 합니다. Nontransportable package의 객체들은 클라이언트 간에 전송될 수 없으며, 로컬 객체라고 불립니다. 로컬 객체는 예를 들어 테스트 프로그램과 같이 전송되지 않거나 거나 운영 환경에서 사용되지 않는 객체입니다.

패키지 확인

위 예시는, VF라고 이름지어진 스탠다드 SAP 패키지에 다양한 Development Objects들이 그룹화되어 들어있는 것을 보여줍니다.  Development Objects들은 Objects의 유형에 따라 다른 폴더들에 그룹화되어 있어 쉽게 식별할 수 있습니다. 특정 애플리케이션과 관련된 모든 Objects들을 쉽게 확인할 수 있습니다. 사진 우측을 보면 Transport Attribute인 1번 Transport Layer와 2번 Software Component를 볼 수 있습니다. 트랜잭션 코드가 어느 패키지에 속해있는지 보고싶으면 T-CODE SE93에서 확인할 수 있다.

반응형