본문 바로가기

CDS View(Core Data Service)/Core Data Service 기초

Core Data Service의 발전

CDS (Core Data Services) 뷰에 대한 포괄적인 이해를 시작하기 전에, Open SQL에서 CDS로의 진화에 대해 간략히 살펴보겠습니다. SAP HANA 이전에는 Open SQL이 SAP 인증을 받은 모든 데이터베이스에 접근하기 위한 개발자들의 선호 언어였습니다. Open SQL은 데이터 정의에 대한 표준화된 구문과 의미론을 제공하여 모든 비즈니스 작업을 수행할 수 있습니다. 개발자들은 Open SQL을 SAP 애플리케이션에서 데이터를 읽거나 조작하기 위해 광범위하게 사용했는데, 이는 데이터베이스에 독립적인 특성 때문입니다. 내부적으로 Open SQL 문을 기반 데이터베이스에서 필요한 네이티브 SQL 문으로 변환하는 데이터베이스 인터페이스 덕분에 기반 데이터베이스가 변경되거나 이관되더라도 코드 변경이 필요하지 않았습니다.

따라서, 조화로운 문법(Harmonized Syntax)과 데이터베이스에 독립적인 특성 때문에 대부분의 비즈니스 작업은 응용 프로그램 개발자가 Open SQL 문을 사용하여 수행되었습니다. 그러나 특히 복잡한 비즈니스 시나리오에서는 아래 그림에서 보여주는 것처럼, Open SQL의 사용은 복잡한 SQL 쿼리와 조인을 초래하여 응용 프로그램 코드와 실제 비즈니스 작업 사이의 의미론적 및 성능적 격차를 넓히게 됩니다.

예를 들어, 고객 유형에 따라 항공사에서 생성된 총 수익을 얻기 위해서는 여러 개의 조인이 포함된 SQL 문이 필요합니다. SQL 절의 사용은 복잡성을 증가시키고 실제 작업과 응용 프로그램 코드 간의 의미론적인 격차를 넓히게 될 수 있습니다. 이러한 SQL 문의 복잡성을 줄이기 위해 개발자는 ABAP 코드를 사용할 수도 있지만, 응용 프로그램에서 여러 개의 중첩된 루프(Nested Loop), 쿼리 및 함수를 사용할 수 있기 때문에 성능 문제를 야기할 수 있습니다.

일부 경우에는 복잡성을 줄이기 위해 고전적인 데이터베이스 뷰를 사용할 수도 있지만, ABAP Data Dictionary에서 생성된 뷰는 제한적인 의미 정보와 모든 종류의 조인에 대한 완전한 지원 부족으로 인해 제한적입니다. ABAP Data Dictionary은 또한 중첩 뷰의 사용과 여러 산술식, SQL 함수 또는 UNION 절을 사용하여 복잡한 계산을 수행하는 능력을 제한합니다. 이러한 제한사항으로 인해 응용 프로그램 개발자는 런타임에 응용 프로그램 레이어(Application Program Layer) 에서 필터링 및 계산을 수행하기 위해 추가적인 ABAP 코딩을 사용해야 합니다.

데이터베이스 뷰는 아래 그림2에 나와 있습니다. 이는 외부 또는 복잡한 조인을 생성할 수 없다는 의미로, 그림 3에 나와 있는 것처럼 한정적인 조인 지원만 제공합니다. 또한 그림 4에 나와 있는 것처럼 복잡한 필터 조건은 지원되지 않습니다. 이는 ABAP Data Dictionary 뷰에서 유니온, 중첩 뷰 또는 인라인 주석을 제공하지 않는다는 것을 보여줍니다.

그림 2
그림 3
그림 4

따라서 Open SQL 문과 ABAP 사전 뷰의 한계를 극복하고 비즈니스 작업과 구현 간의 의미적 격차를 줄이기 위해 핵심 데이터 서비스(CDS)가 도입되었습니다.

그림 5에 나와 있는 것처럼, SAP HANA DB는 데이터 정의를 생성하고 관리하기 위해 SQL 문을 지원하지만, ABAP의 Business Object Processing Framework (BOPF)와 같은 여러 다른 기술도 사용할 수 있으며, 이러한 기술은 OData, SAPUI5, Embedded Analysis, Angular 등의 소비자에게 추가 의미를 제공하기 위해 더 높은 수준의 데이터 모델을 도입합니다. 이러한 모델은 많은 측면에서 유사하며 기술별로 특정한 영역을 가지지만, 그 범위는 제한적이며 다른 스택 간에 재사용할 수 없을 수도 있습니다. 따라서 개발자는 동일한 비즈니스 작업에 대해 뷰를 재설계해야 하며, 이로 인해 개발 노력과 복잡성이 증가할 수 있습니다.

따라서 SQL 문의 한계를 극복하고 모든 스택에서 프로그래밍 모델을 표준화하고 간소화하여 사용을 용이하게 하기 위해 SAP에서는 코어 데이터 서비스(CDS)라고 하는 도메인별 언어와 서비스의 집합을 정의하고 사용하는 새로운 방법을 도입했습니다. 

CDS를 사용하면 테이블, 뷰, 사용자 정의 타입과 같은 의미론적으로 풍부한 데이터 모델을 정의하고 사용할 수 있습니다. CDS는 모든 종류의 조인, 유니온, SQL 표현식 및 내장 함수를 지원하여 데이터베이스 레이어에서 복잡한 계산을 수행할 수 있습니다.

반응형