ABAP Core Data Services(ABAP CDS)의 뷰 정의
ABAP Core Data Services 또는 ABAP CDS는 ABAP에서 풍부한 의미 구조를 가진 데이터 모델을 정의하고 사용하기 위한 인프라입니다. CDS DDL을 사용하여 시맨틱 데이터 모델을 구현하는 CDS 엔티티를 정의합니다. 가장 중요한 CDS 모델링 엔티티는 CDS 뷰 엔티티입니다.

CDS 뷰 정의에는 재사용 가능한 SQL 로직이 포함되어 있습니다. 테이블 필드 프로젝션처럼 단순하거나 계산, 집계, 조인, 유니온 등을 통해 좀 더 정교할 수도 있습니다.
CDS 뷰 정의에는 데이터 모델의 관계를 반영하는 연관 관계가 포함될 수 있습니다. 뷰의 사용자는 연관 관계를 사용하여 관련 데이터를 검색할 수 있습니다.
마지막으로 주석은 뷰 정의를 의미적으로 확장하는 데 사용됩니다. 이 메타데이터는 CDS 뷰 정의를 기반으로 빌드하는 프레임워크에 의해 평가됩니다. 이러한 프레임워크 중 하나는 ABAP RESTful 어플리케이션 프로그래밍 모델이며 이 과정의 뒷부분에서 예시를 살펴보겠습니다.
CDS 뷰 정의의 예를 살펴보겠습니다.

CDS 뷰 정의는 데이터 정의 유형의 저장소 오브젝트에 포함되어 있습니다. 이제 데이터 정의 /DMO/I_CONNECTION의 소스 코드를 살펴보겠습니다.
주요 부분은 DEFINE VIEW ENTITY 문입니다. 여기에는 CDS 뷰 엔티티의 이름과 키워드 FROM 뒤에 데이터 소스가 포함됩니다. 이 예에서 뷰 엔티티의 이름은 /DMO/I_Connection 이고 데이터 소스는 데이터베이스 테이블 /dmo/connection 입니다. 선택사항인 추가 요소 AS는 뷰 정의 내에서 데이터 소스를 처리하기 위해 연결 이라는 별칭 이름을 정의합니다.
노트
중괄호 쌍에는 뷰 요소 리스트가 포함됩니다. 이 예에서 뷰 요소는 데이터베이스 테이블 /dmo/connection의 필드입니다. 처음 두 요소 앞의 키워드 키는 CDS 뷰 엔티티의 키 필드로 정의됩니다. 선택적 추가 요소 AS는 각 뷰 요소의 별칭 이름을 정의합니다.

association 추가하여 다른 CDS 뷰 엔티티에 대한 관계를 정의합니다. 이 예에서 관련 뷰는 CDS 뷰 엔티티 /DMO/I_Carrier 이고 연관 관계의 이름은 _Airline 입니다.
이 연관 관계는 뷰 소비자가 요소 리스트에 추가하여 사용할 수 있게 됩니다. 이를 연관 관계 노출이라고 합니다.

주석은 at sign(@)으로 시작하며 소비자를 위한 뷰 정의를 의미적으로 확장하는 데 사용됩니다. 뷰 정의 앞의 주석을 엔티티 주석이라고 합니다. 엔티티 주석은 뷰 엔티티의 메타데이터를 전체적으로 정의하는 데 사용됩니다. 중괄호 사이의 주석을 요소 주석이라고 합니다. 요소 주석은 뷰의 여러 요소에 대한 메타데이터를 정의하는 데 사용됩니다.

데이터 미리보기 툴을 사용하여 데이터베이스 테이블의 내용을 조회하고 분석하는 방법을 이미 배웠습니다. 이 툴은 CDS 뷰 엔티티에도 사용할 수 있습니다.
지정된 CDS 엔티티의 데이터 미리보기를 열려면 데이터 정의의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 Open With→Data Preview 를 선택합니다. 또는 데이터 정의의 아무 곳에나 커서를 놓고 F8 을 누릅니다.
이 툴에는 CDS 엔티티에서 반환된 데이터가 표시됩니다. 동일한 기능을 사용하여 데이터를 정렬하거나 필터링하고 표시를 조정할 수 있습니다.
뷰 정의에 하나 이상의 연관 관계가 포함된 경우 이 연관 관계를 사용하여 관련 데이터를 표시할 수 있습니다. 이렇게 하려면 다음과 같이 진행합니다.
- 화면에서 행을 마우스 오른쪽 버튼으로 클릭합니다.
- 단축 메뉴에서 Follow Association 을 선택합니다.
- 사용 가능한 연관 관계 리스트에서 관심 있는 항목을 선택합니다.

특정 데이터베이스 테이블을 소스로 사용하는 모든 CDS 뷰를 찾으려면 ADT의 사용처 리스트 툴을 사용할 수 있습니다. 이 툴을 사용하려면 다음과 같이 하십시오.
- 데이터베이스 테이블의 정의를 엽니다.
- 소스 코드를 마우스 오른쪽 버튼으로 클릭하고 단축 메뉴에서 사용처 리스트 가져오기 를 선택합니다. 또는 Ctrl + Shift + G 를 누르거나 툴바에서 같은 기호가 있는 버튼을 선택할 수 있습니다.
- 검색 뷰에는 데이터베이스 테이블을 직접 사용하는 모든 개발 오브젝트의 리스트가 표시됩니다.

사용처 리스트 에 필터를 적용할 수 있습니다. 예를 들어 특정 오브젝트 유형의 특정 패키지나 오브젝트에 관심이 있는 경우에만 필터를 적용할 수 있습니다. 이 예에서는 테이블을 사용하는 CDS 뷰를 필터링하는 방법을 보여줍니다.
