CDS 특장점

Ada·2024년 9월 23일

SAP ABAP

목록 보기
14/21

CDS Annotations (CDS 어노테이션)

CDS 어노테이션은 CDS 엔터티에 ABAP 및 SAP 컴포넌트와 관련된 메타데이터를 추가할 수 있는 기능이다. 어노테이션을 사용하여 CDS 뷰, 테이블, 필드 등의 속성을 정의하고 조정할 수 있다. 이를 통해 CDS의 동작을 커스터마이징하고, 데이터 모델에 추가 정보를 제공할 수 있다.

주요 어노테이션

  • @AbapCatalog.sqlViewName: ABAP Dictionary에 생성될 SQL 뷰의 이름을 지정한다.
  • @AccessControl.authorizationCheck: CDS 뷰에 대한 권한 검사를 정의한다.
  • @EndUserText.label: 사용자 인터페이스에 표시될 설명을 설정한다.

어노테이션 사용 예시:

@AbapCatalog.sqlViewName: 'CUSTOMER_VIEW'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Customer Data View'
define view ZCUSTOMER_VIEW as select from scustom
{
    key scustom.id as CustomerID,
    scustom.name as CustomerName,
    scustom.country as Country
}

코드 설명:

위 코드에서는 @AbapCatalog.sqlViewName 어노테이션을 사용하여 ABAP Dictionary에서 생성될 SQL 뷰의 이름을 'CUSTOMER_VIEW'로 지정한다. @AccessControl.authorizationCheck 어노테이션을 통해 권한 검사가 필요 없음을 설정하고, @EndUserText.label은 뷰의 설명을 'Customer Data View'로 설정한다.


Data Definitions (데이터 정의)

CDS 데이터 정의는 ABAP 리포지토리 객체로, ABAP CDS DDL(Data Definition Language)을 사용해 정의된다. 데이터 정의를 통해 ABAP 프로그램 내에서 데이터 소스로 사용할 수 있는 CDS 엔터티를 정의할 수 있다. CDS 엔터티는 다양한 ABAP SQL 문장에서 사용할 수 있다.

CDS 엔터티의 유형

  • CDS View (CDS 뷰): 기존의 데이터베이스 테이블과 다른 CDS 뷰를 조합하여 데이터의 특정 프로젝션을 정의하는 CDS 엔터티이다.

  • CDS Table Function (CDS 테이블 함수): 테이블 함수를 정의하며, 이 함수는 데이터베이스에서 직접 호출되어 데이터를 반환한다.

  • CDS Hierarchy (CDS 계층): 계층 구조로 데이터를 구성하는 CDS 엔터티이다.

데이터 정의 예시

@AbapCatalog.sqlViewName: 'CUSTOMER_HIERARCHY_VIEW'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Customer Hierarchy Data'
define view ZCUSTOMER_HIERARCHY as select from scustom
association [1..1] to sbook as _booking on scustom.id = _booking.customer_id
{
    key scustom.id as CustomerID,
    scustom.name as CustomerName,
    _booking.bookid as BookingID
}

이 예시는 CDS Hierarchy와 Association을 사용해 고객과 그들의 예약 정보를 조회하는 예시이다. association을 통해 scustom 테이블과 sbook 테이블을 연결하고, _booking 연관 필드를 통해 예약 데이터를 추가로 조회할 수 있다.


Access Controls (액세스 제어)

액세스 제어는 CDS 엔터티에 대해 권한을 관리하는 기능이다. ABAP CDS는 민감한 데이터를 보호하기 위해 특정 사용자가 데이터를 조회하거나 조작할 수 있는지 여부를 제어하는 방법을 제공한다.

Access Control 예시

@AbapCatalog.sqlViewName: 'AUTH_CUSTOMER_VIEW'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Authorized Customer Data View'
define view ZAUTH_CUSTOMER_VIEW as select from scustom
{
    key scustom.id as CustomerID,
    scustom.name as CustomerName,
    scustom.country as Country
}

이 예시는 @AccessControl.authorizationCheck: #CHECK 어노테이션을 사용하여 권한 검사가 필요한 CDS 뷰를 정의한 것이다. 권한 검사를 통과한 사용자만 이 데이터를 조회할 수 있게 된다.


결론

ABAP CDS를 사용하여 데이터베이스 레벨에서 데이터를 효과적으로 관리하고, 필요에 따라 권한 검사를 통해 데이터를 보호할 수 있다. 이러한 개념들을 이해하고 활용하면 SAP HANA와 ABAP CDS를 사용해 더 효율적이고 안전한 데이터 모델을 구축할 수 있다.

profile
백엔드 프로그래머

0개의 댓글