포스트

CDS View 란?

CDS View 란?

1. CDS View 큰 분류(개념)

SAP CDS View는 “데이터를 의미 있게 모델링해서 재사용/노출”하기 위한 뷰 계층이야. 학습 관점에서는 보통 아래 2가지 축으로 정리하면 이해가 빨라.

  • VDM(View Data Modeling) 계층(의미/재사용/노출 관점)
  • Basic(Interface) → Composite → (Transactional) Root → Projection → Consumption
  • 기술/아키텍처 관점(어디에 쓰는가)
  • Classic CDS View(DDIC 기반, 예전 방식) vs CDS View Entity(ABAP Cloud/RAP 권장)
  • Analytical(Query/Cube/Dimension) vs Transactional(BO/RAP) vs API 노출(OData)

    2. VDM 계층별 “모든(대표) 뷰” 설명

    2.1 Basic View = Interface View (I_*)

    목적: 표준 테이블/기본 뷰를 외부에서 “재사용 가능한 의미 모델”로 만드는 기본 빌딩블록 주요 역할

  • 원천: Standard Table 또는 Standard View
  • 필드명 정리(외부에서 이해하기 쉬운 이름)
  • Label / Semantic / Unit-Currency 등 의미 어노테이션 추가
    예) 금액 + 통화코드 매핑
  • Association 설정(다른 엔티티와의 관계 표현)
  • VDM 관련 기본 어노테이션 설정 언제 쓰나
  • 여러 BO/서비스에서 공통으로 재사용할 “표준 의미 모델”을 만들 때

    2.2 Composite View (C_* 또는 상황별 네이밍)

    목적: 여러 Interface View를 조합(Join/Association/계산)해서 업무적으로 유용한 하나의 데이터셋을 만드는 계층 주요 역할

  • 여러 I_* 뷰를 결합해 업무 단위로 “한 번에 쓸 수 있는 모델”로 구성
  • 계산 필드/파생 필드 추가(예: 합계, 상태 판정, 기간 계산 등)
  • 복잡한 Join/Association을 캡슐화해서 하위 계층의 재사용성을 높임 언제 쓰나
  • 화면/서비스/리포트에서 필요한 데이터가 여러 엔티티에 흩어져 있을 때

    2.3 Transactional Root View (RAP BO의 Root Entity)

    목적: RAP에서 Business Object(BO)의 루트 엔티티가 되는 CDS 엔티티(트랜잭션의 중심) 핵심 포인트

  • CDS View만으로는 기본적으로 CUD(생성/변경/삭제) 트랜잭션 기능이 없음
  • 트랜잭션을 제공하려면 아래가 추가로 필요:
  • Behavior Definition (BDEF)
  • Behavior Implementation (BIMP)

    정리: Business Object(BO) = Root View + Behavior Definition/Implementation 언제 쓰나

  • RAP로 저장/검증/액션 포함한 업무 객체를 만들 때

    2.4 Transactional Child / BO 하위 엔티티(Composition 대상)

    목적: Root에 종속된 아이템/라인/상세 등 하위 엔티티 모델링 주요 역할

  • Root ↔ Child 관계(Composition)로 BO를 구성
  • Root 저장 시 Child 저장/검증이 함께 일어나도록 설계(Behavior로 제어) 언제 쓰나
  • Header–Item 구조(예: 주문 헤더/아이템)처럼 루트에 종속된 데이터가 있을 때

    2.5 Projection View (P_*)

    목적: 내부 모델(Interface/Root)을 서비스로 노출하기 위한 공개 모델
    “무엇을 밖으로 보여줄지”를 결정하는 캡슐화 계층 주요 역할

  • Root(또는 Interface) 기반으로 노출할 필드/association만 선택
  • 외부 API/화면 요구사항에 맞춰 구조를 정리
  • 내부 구현 변경이 있어도 공개 계약(Contract)을 안정적으로 유지 언제 쓰나
  • OData V4 서비스로 엔티티를 노출할 때(서비스 정의/바인딩과 함께)

    2.6 Behavior Projection (Projection 전용 Behavior)

    목적: Projection 계층에서 허용할 동작(필드 편집 가능 여부, 액션 노출 등)을 정의 주요 역할

  • “이 서비스에서는 create 허용, update는 특정 필드만 허용” 같은 정책을 Projection 단에서 제어
  • 동일한 BO라도 서비스/앱별로 다른 정책을 적용할 때 유용

    2.7 Consumption View (UI/소비 최적화, 보통 C_*)

    목적: “소비(Consumption)” 시나리오, 특히 Fiori/UI에 최적화된 뷰 주요 역할

  • UI/검색/필터/정렬/value help(F4) 등을 위한 어노테이션을 풍부하게 포함
    예) @UI.*, @Search.*, @Consumption.*
  • 화면에서의 표시 순서, 그룹, 라인아이템 구성 등 프레젠테이션 중심 언제 쓰나
  • Fiori Elements 등 UI 자동생성/표준 UI 패턴을 강하게 활용할 때
    (프로젝트에 따라 Projection에 UI 어노테이션을 집중하고 Consumption을 생략하기도 함) —

    3. 분석(Analytical) 시나리오에서의 대표 뷰 종류

    RAP 트랜잭션과 별개로, CDS는 분석용 모델링도 중요한 축이야. 학습할 때 같이 알아두면 좋아.

    3.1 Dimension View

    목적: 마스터/기준 정보(차원) 모델
    예: 제품, 고객, 조직, 플랜트 등

    3.2 Fact / Cube View

    목적: 수치 데이터(금액, 수량 등)가 있는 사실(Fact) 모델을 큐브 형태로 구성

  • 측정값(measure)과 차원(dimension)을 연결

    3.3 Query View (Analytical Query)

    목적: 최종적으로 분석 툴/리포트에서 실행되는 질의 모델

  • 집계, 필터, 변수, 계층 등 분석 기능을 표현

    참고: 실제 어노테이션/모델링 방식은 S/4HANA Embedded Analytics, SAC, BW/4 등 목표 플랫폼에 따라 달라질 수 있어.

    4. 기술 방식별 분류(학습용)

    4.1 CDS View (Classic, DDIC 기반)

  • 예전 방식(일부 시스템/레거시에서 여전히 존재)
  • 학습은 하되, 신규 개발 특히 ABAP Cloud/RAP에서는 “CDS View Entity”를 우선으로 보는 편이 좋아.

    4.2 CDS View Entity (권장)

  • ABAP Cloud/RAP에서 권장되는 방식
  • 더 엄격한 모델링/확장/릴리즈 정책과 잘 맞음

    4.3 View Entity vs Projection View(Entity)

  • View Entity는 “CDS 엔티티 정의 방식(기술)”
  • Projection View는 “VDM 계층(노출 목적)”
    즉 서로 다른 축이라 함께 사용될 수 있음. —

    5. 최종 정리본(암기/복습용)

    5.1 한 줄 흐름(VDM/RAP 기준)

    Standard Table/View → Interface(Basic) → Composite → (Transactional) Root(+Behavior) → Projection(+Behavior Projection) → Consumption(UI)

    5.2 각 뷰의 핵심 키워드

  • Interface(Basic): 의미 표준화, 재사용, Semantics/Association
  • Composite: 조합/캡슐화, Join/계산, 업무 데이터셋
  • Root(Transactional): BO의 중심, 트랜잭션은 Behavior로
  • Child(Transactional): Root 종속 구성(Composition)
  • Projection: 외부 노출 계약, 캡슐화, 서비스 단위 모델
  • Behavior Projection: 서비스별 허용 동작/권한/편집 범위
  • Consumption: UI/소비 최적화, UI/Search/ValueHelp 어노테이션

    5.3 꼭 기억할 문장

    “CDS View는 데이터 모델링, 트랜잭션은 Behavior, 서비스 노출은 Projection, UI 최적화는 Consumption”

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.