반응형
원문 : Get to Know the ABAP RESTful Application Programming Model | SAP Tutorials
약간 개념적으로 아리까리한 부분이 있어 튜토리얼을 진행한 뒤 다시 정리해야 할 듯
1. ABAP RESTful Application Programming Model 개요
ABAP RESTful Application Programming[RAP] Model은 세 가지 주요 레이어로 구성된다.
- Data Modeling & Behavior
- transactional behavior(crud 행위)와 CDS(Core Data Services)라 부르는 도메인 특화 비즈니스 객체(domain-specific business objects)를 포함
- Business Services Provisioning
- 데이터 모델의 어떤 부분을 OData 프로토콜을 통해 서비스로 노출할지 결정함
- 데이터 모델의 특정 측면에 초점을 맞춤
- projection views => encapsulation과 유사
- Service Consumption
- 서비스가 노출한 OData를 사용하는 계층
2. 데이터베이스 레이어
데이터베이스 테이블은 딕셔너리 테이블(dictionary tables)에 의해 정의됨.
위 1의 3계층에 포함되지 않지만, 비즈니스 데이터모델의 기초임
점선 직사각형 부분에 주목
3. Core Data Services(CDS) 기반 데이터 모델
핵심 데이터 모델은 CDS에 의해 정의됨.
- CDS 계층(layer)을 사용해 데이터베이스에 영속(persist)되는 데이터를 사용하고 조작함.
- CDS는 딕셔너리 테이블을 바로 사용하는 view임.
- projection은 데이터 모델 필드의 부분집합(subset)임.
- 예를 들어 UI 주석은 projection view의 일부임
- service definition은 어떤 데이터를 비즈니스 서비스로 노출할 지 결정함
- projection을 사용하여
- DTO와 유사함
- service binding은 클라이언트에 서버 데이터를 연결해주는 역할을 수행함
- ex) ajax, axios 서버의 컨트롤러
이미지의 점선 직사각형 부분에서 해당 부분을 구현한다.
웹으로 비유하자면 DB Table > Model > ViewModel > Service > client-server communication client(axios) 정도가 될듯 하다.
약간 JPA의 개념과 유사한것 같다.
모델 로직은 behavior에 들어가 있을 것이다.
- CDS Data Model -> Repository Entity
- Data Model Projection -> Domain Object
- Service Difinition -> DTO
- Service Binding -> Controller
4. transactional behavior
트랜잭셔널함 > crud 로직을 포함함을 의미
- behavior definition
- crud 기능 인터페이스
- behavior implementation
- crud 기능 메써드
이미지의 점선 직사각형 부분에서 해당 부분을 구현한다.
4. enhance behavior(추가 사용자 정의 로직 개발)
- validation(검증)
- action(상태 변경과 같은 사이드이펙트, 비즈니스 로직과 같이 사용되는 기능)
점선 직사각형 부분에서 해당 로직을 구현한다.
반응형