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. 기본 개념 이해
- Clean Core, Side-by-Side vs In-App 확장
- SAP API Hub 탐색 (https://api.sap.com/content-type/API/apis/packages)
- ABAP Cloud 개발 가이드 라인 숙지
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 무료 강의 활용해서 학습 여정을 따라갈 수 있습니다.
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
'ERP(SAP)' 카테고리의 다른 글
| [ERP] 📘 SAP FI 모듈 기초 T-code 정리 (0) | 2025.09.29 |
|---|---|
| [SAP] 📌 ABAP Cloud란 무엇인가? - 2편 (Classic ABAP 개발자 전환) (1) | 2025.09.26 |
| [SCM]⚡ Agile SCM(민첩 공급망 관리)란? (0) | 2025.09.24 |
| [SCM] 🏭 Lean SCM(린 공급망 관리)란? (0) | 2025.09.23 |
| [SCM] 🌐 Resilient SCM (회복탄력적 공급망)이란? (0) | 2025.09.22 |