CDS 개념

Ada·2024년 9월 23일

SAP ABAP

목록 보기
13/21

ABAP Core Data Services(CDS)는 SAP HANA와 같은 데이터베이스에서 데이터 모델을 정의하고 처리하는 효율적인 방법을 제공하는 프레임워크이다. ABAP CDS를 사용하면 데이터베이스 레벨에서 복잡한 연산을 처리할 수 있어 서버 부하를 줄이고 성능을 극대화할 수 있다.

ABAP CDS의 목표

  • 데이터베이스 레벨에서 연산 처리: 데이터를 애플리케이션 서버로 가져와 처리하는 대신, 데이터베이스 레벨에서 필요한 연산을 처리하여 성능을 최적화한다.

  • 코드 푸시다운: 복잡한 데이터 로직과 연산을 데이터베이스로 "푸시"함으로써 애플리케이션 레벨에서의 작업을 최소화하고 네트워크 트래픽을 줄인다.

  • 단순하고 일관된 데이터 모델링: 다양한 데이터 소스에서 데이터를 통합하고 재사용할 수 있는 데이터 모델을 제공한다.


대상 독자

ABAP CDS는 ABAP 개발자와 SAP HANA 사용자를 주요 대상으로 한다. 특히 SAP HANA의 고성능 인메모리 처리 기능을 최대한 활용하고자 하는 개발자들에게 적합하다.

ABAP 개발자

ABAP CDS는 기존 ABAP 프로그램에서 SQL 쿼리를 사용하는 것보다 훨씬 더 효율적으로 데이터를 처리할 수 있는 방법을 제공한다. 복잡한 데이터 모델을 구축하고, 데이터베이스 상에서 성능을 최적화하기 위한 다양한 기능을 활용할 수 있다.

SAP HANA 사용자

SAP HANA의 성능을 극대화하기 위해 설계된 ABAP CDS는 HANA의 인메모리 처리와 결합되어 빠르고 효율적인 데이터 액세스를 제공한다. 데이터를 실시간으로 처리하거나 대량의 데이터를 처리하는 비즈니스 시나리오에서 큰 이점을 가져온다.


CDS View 생성 예시

CDS View는 여러 테이블에서 데이터를 선택하고, 특정 조건에 맞게 데이터를 가공할 수 있는 ABAP CDS의 핵심 기능이다. 이를 통해 데이터베이스 상의 테이블과 SQL 뷰처럼 작업할 수 있다.

@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
}

코드 설명:

  1. @AbapCatalog.sqlViewName: ABAP 딕셔너리에 생성될 SQL 뷰의 이름을 지정한다.
  2. @AccessControl.authorizationCheck: 별도의 권한 검사를 필요로 하지 않음을 나타낸다.
  3. @EndUserText.label: CDS 뷰의 설명을 정의한다.
  4. select from scustom: scustom 테이블에서 고객 ID, 고객 이름, 국가를 선택한다.
    이 뷰는 고객 데이터의 기본적인 정보(고객 ID, 이름, 국가)를 반환한다. SAP HANA에서 이 데이터를 조회하고 애플리케이션에서 재사용할 수 있다.

성능 최적화와 코드 푸시다운

ABAP CDS의 가장 큰 장점 중 하나는 성능 최적화이다. 기존의 ABAP 프로그래밍 방식에서는 데이터를 애플리케이션 서버로 모두 가져온 후 필요한 데이터를 필터링했지만, ABAP CDS는 이러한 연산을 데이터베이스 레벨에서 수행할 수 있다. 이를 통해 성능을 크게 개선할 수 있다.

SAP HANA와의 통합 및 장점

SAP HANA는 인메모리 데이터베이스로서 매우 빠른 데이터 액세스와 처리가 가능하다. ABAP CDS는 이러한 HANA의 성능을 최대로 활용하도록 설계되었다.

장점:

  1. 네트워크 트래픽 감소: 서버로 데이터를 모두 전송하지 않고, 필요한 데이터만을 데이터베이스 레벨에서 처리하므로 네트워크 트래픽이 줄어든다.

  2. 데이터 처리 성능 향상: HANA에서 제공하는 인메모리 기능을 사용해 데이터 처리를 훨씬 빠르게 수행할 수 있다.

  3. 효율적인 리소스 사용: 데이터베이스에서 연산을 처리하기 때문에 서버의 부하를 줄일 수 있으며, 이를 통해 리소스를 효율적으로 사용할 수 있다.

필터링된 CDS View 예시

@AbapCatalog.sqlViewName: 'CUSTOMER_FILTER_VIEW'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Filtered Customer Data View'
define view ZCUSTOMER_FILTER_VIEW as select from scustom
{
    key scustom.id as CustomerID,
    scustom.name as CustomerName,
    scustom.country as Country
}
where scustom.country = 'KR'

이 예시는 특정 국가(KR, 한국)에 속하는 고객 데이터만 필터링하여 반환하는 CDS 뷰이다. 데이터베이스 레벨에서 필요한 조건을 먼저 적용하여 데이터를 가져오기 때문에 성능이 최적화된다.


결론

ABAP CDS는 SAP HANA 환경에서 효율적인 데이터 처리 및 성능 최적화를 가능하게 하는 강력한 도구이다. 이를 통해 복잡한 데이터 로직을 데이터베이스 레벨에서 처리할 수 있으며, 성능 향상과 리소스 절약을 동시에 달성할 수 있다. ABAP 개발자와 SAP HANA 사용자는 이러한 ABAP CDS의 기능을 활용해 더 나은 비즈니스 애플리케이션을 개발할 수 있다.

profile
백엔드 프로그래머

0개의 댓글