[SAP] 📌 ABAP Cloud란 무엇인가? - 1편

1. ABAP Cloud란 무엇인가?

ABAP Cloud는 SAP가 클린 코어(Clean Core) 철학을 바탕으로 제시한 차세대 ABAP 개발 모델입니다.

* 클린코어란 ?  속적인 비즈니스 혁신과 현대화를 지원하는 일련의 기본 원칙


전통적인 On-Premise 방식의 ABAP 개발은 SAP 표준 코드를 수정하거나, 내부 Private API를 직접 호출하는 방식으로 확장을 진행했습니다. 그러나 이런 방식은 업그레이드 시 충돌이 발생하고, 유지보수 비용이 급격히 커지는 문제를 낳았습니다.

 

SAP는 이를 해결하기 위해 ABAP Cloud를 제시했습니다.
즉, "더 이상 SAP의 코어를 건드리지 말고, 공식적으로 공개된 API·Extension Point·서비스만 활용하라"는 철학입니다.

 

👉 요약:

  • 과거: Z* 코드(CBO 프로그램), 수정된 표준 프로그램, 직접 DB 접근
  • 현재: ABAP Cloud API, CDS View, RAP(Restful ABAP Programming), Event-driven 확장

2. ABAP Cloud의 철학

(1) 클린 코어 (Clean Core)

  • SAP 코어 시스템은 가능한 한 순수하게 유지해야 함
  • 고객/파트너의 확장은 코어 외부 또는 공식 확장 포인트를 통해서만 허용

(2) Public API 기반 개발

  • SAP가 공식적으로 제공하는 Released API, CDS View, Business Object만 사용
  • Private/Internal 객체 사용 금지 → 장기적으로 업그레이드 호환성 보장

(3) 클라우드 네이티브

  • 애플리케이션은 멀티테넌시, 확장성, 업그레이드 안정성을 고려해 설계
  • RAP 모델을 통한 OData 서비스 자동 생성 → Fiori Elements와 바로 연계

(4) 표준화된 아키텍처

  • RAP (Restful ABAP Programming Model): ABAP Cloud 개발의 핵심
  • Event-driven 확장: BTP Event Mesh, Business Events 활용
  • API-first 철학: 모든 비즈니스 로직은 서비스화

3. ABAP Cloud 개발 예시

(예시 1) CDS View 확장

  • SAP가 제공한 Released CDS View를 활용해 고객 맞춤형 Analytics 뷰 생성
@AbapCatalog.sqlViewName: 'ZCUSTSALES'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Customer Sales Analytics'
define view entity Z_CustomerSales
  as select from I_SalesOrder as so
    inner join I_Customer as c on so.Customer = c.Customer {
      key so.SalesOrder,
      so.SalesOrderDate,
      c.CustomerName,
      so.NetAmount
}

 

(예시 2) RAP 기반 서비스 생성

define root view entity Z_Book
  as select from ZBOOK_TABLE {
    key BookID,
    Title,
    Author,
    Price
}

define behavior for Z_Book
  persistent table ZBOOK_TABLE
  lock master
{
  create;
  update;
  delete;
}

 

이렇게 CDS Entity와 Behavior Definition을 작성하면,
자동으로 OData V4 서비스가 생성되고, Fiori Elements UI까지 연동 가능.

 

예시 3) Event-driven 확장

  • SAP S/4HANA에서 SalesOrder.Created 이벤트가 발생하면, BTP Event Mesh로 이벤트 송신
  • ABAP Cloud 또는 CAP 애플리케이션이 이를 구독해서 후속 프로세스 실행 (예: Slack 알림, 외부 시스템 업데이트)
CLASS zcl_salesorder_handler DEFINITION PUBLIC FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    INTERFACES: if_rap_event_handler.
ENDCLASS.

CLASS zcl_salesorder_handler IMPLEMENTATION.
  METHOD if_rap_event_handler~on_salesorder_created.
    " 후속 처리 로직
    MESSAGE 'Sales Order Created Event Received' TYPE 'I'.
  ENDMETHOD.
ENDCLASS.

 

 

이외로 SAP BTP ABAP 환경을 통해 다양한 이점을 가질 수 있습니다.

 

개발

  • ADT (ABAP Development Tools for Eclipse)  ABAP 클라우드 앱 개발: ABAP 클라우드 시스템을 쉽게 연결하고 풍부한 툴세트를 활용하여 프로젝트 개발 
  • OData 기반 SAP Fiori 어플리케이션 생성
  • ABAP AI 를 통한 개발 가속화, 기존 ABAP 코드 향상

https://www.sap.com/korea/products/technology-platform/abap.html


4. 학습 커리큘럼 (Classic ABAP → ABAP Cloud 전환 로드맵)

Step 1. 기본 개념 이해

Step 2. CDS & RAP 기초

  • CDS View 작성법, Annotations, Associations
  • RAP 모델(Entity, Behavior Definition, Service Definition, Projection)

Step 3. Fiori Elements와 연계

  • CDS/RAP 기반 OData 서비스 → Fiori UI 자동 생성
  • UI Annotations ( @UI.lineItem, @UI.identification )

Step 4. Event-driven 확장

  • S/4HANA Business Events → BTP Event Mesh
  • Event Handler 구현

Step 5. Security & Authorization

  • ABAP Cloud의 권한 관리 (Authorization Object → Restriction by CDS)
  • OAuth2 / JWT 토큰 기반 인증

Step 6. DevOps & Lifecycle

  • gCTS (Git-enabled CTS) 활용
  • SAP BTP CI/CD 서비스와 통합

 

SAP learning 무료 강의 활용해서 학습 여정을 따라갈 수 있습니다.

https://learning.sap.com/

 

Learn SAP skills | SAP Learning

SAP Learning offers self-paced and premium learning resources for anyone who wants to build in-demand SAP skills and prepare for an SAP Certification.

learning.sap.com

 

SAP BTP ABAP Cloud.

https://www.sap.com/korea/products/technology-platform/abap.html