메인 콘텐츠로 건너뛰기

ABAP CDS와 OPEN SQL, 언제 무엇을 사용할까

행귤
행귤
조회수 18
요약

비교의 대상이 아닌 두 가지, CDS와 OPEN SQL

ABAP CDS와 OPEN SQL은 서로 대체하거나 경쟁하는 기능이 아니라, 각자 보완해주는 역할을 합니다. CDS에서 할 수 없는 일이 있고, OPEN SQL에서만 가능한 것이 있습니다. 반대로 CDS만의 특징 역시 존재합니다.

OPEN SQL이 적합한 상황

일상적인 SAP 개발에서는 대부분의 데이터 조회, 조합, 간단한 로직을 OPEN SQL로 충분히 처리할 수 있습니다. 여러 테이블을 합쳐서 원하는 결과를 얻고, 레포트나 단순 프로그램 작성에는 별도의 CDS를 만들 필요 없이 OPEN SQL만으로도 대부분의 요구를 만족합니다.

OPEN SQL만 필요한 경우

동적으로 테이블이나 필드를 지정해야 하는 상황, 즉 프로그램 실행 중에 쿼리 구성을 바꿔야 한다면 CDS로는 구현이 어렵고 OPEN SQL이 필수입니다. 또한 'for all entries' 문법처럼 버퍼 테이블과 데이터베이스 테이블을 효과적으로 분리해 연결해야 할 때도 OPEN SQL이 더 적합합니다.

OPEN SQL의 데이터 수정 기능

데이터의 수정, 삭제, 업데이트 작업은 OPEN SQL을 통해 수행해야 합니다. CDS는 주로 조회를 위한 구조이기 때문에, 실제 데이터 변경이 필요한 경우 SELECT 외의 OPEN SQL 문장이 필요합니다.

CDS가 빛을 발하는 순간: 재사용성과 권한 제어

여러 프로그램에서 반복되는 쿼리 로직을 매번 작성하기 번거롭다면 CDS를 정의해서 재사용하는 것이 좋습니다. 또, CDS에는 '접근제어(Access Control)' 기능이 있어 조회 결과에 권한 조건을 직접 적용할 수 있어 보안 측면에서도 유리합니다.

OData 서비스 및 도메인-기반 확장성

CDS는 간단한 애노테이션만으로 OData 서비스를 만들 수 있어, 외부 시스템 연동이나 Fiori 앱 개발 등에 유용합니다. 또한 다양한 도메인 특화 애노테이션을 활용해 분석, 퍼포먼스 튜닝까지 한 번에 처리할 수 있습니다.

HANA 최적화와 특수 기능

HANA DB의 특성을 활용한 최적화, 예를 들어 양 변환이나 통계적 집계를 위한 특수 함수 등은 CDS에서만 지원하는 경우가 많습니다. OPEN SQL로는 이러한 기능을 사용할 수 없어 반드시 CDS가 필요합니다.

무변경 확장성

표준 CDS를 직접 수정하지 않고도 새로운 필드나 논리 추가가 가능합니다. 기존 SELECT 쿼리는 직접 수정해야 하지만 CDS는 상속(extend)을 통해 기존 로직을 간편하게 확장할 수 있습니다.

여러 기술에서 데이터 모델 재활용

CDS는 한 번 정의하면 다양한 SAP 기술—예를 들어 RAP, BOPF, OData 등—에서 모두 재활용 가능한 '데이터 모델' 역할을 합니다. 기술별로 각각 별도로 모델을 만드는 수고를 크게 줄여줍니다.

선택의 기준: 가능하면 OPEN SQL, 필요하면 CDS

대부분의 상황에서는 OPEN SQL로 처리하는 것이 쉽고 효율적입니다. 하지만 아래 경우에는 CDS를 사용해야 합니다:

  • 권한 제어가 필요하다

  • 재사용성이나 데이터 모델 공유가 중요하다

  • HANA 특화 기능 혹은 복잡한 도메인 기반 애노테이션이 필요하다

  • OData 등 서비스 연동을 쉽게 하고 싶다

필요에 따라 현명하게 두 가지를 구분하여 활용하는 것이 바람직합니다.

Source & Reference :