ABAP Cloud와 클래식 ABAP, 릴리스된 API 찾는 법 정리
3줄 요약
ABAP Cloud는 제한된 언어 버전과 사용이 허용된 API를 바탕으로 개발하는 모델이에요.
클래식 ABAP과는 도구와 SAP 객체 접근 규칙이 달라요. 객체의 언어 버전도 확인해야 해요.
ADT의 Released Objects·API State와 ATC 검사로 사용할 API와 기존 코드의 제약을 확인해요.
어떤 상황에서 쓰나요
S/4HANA 확장 개발에서 ABAP Cloud와 Clean Core라는 말을 자주 접하게 돼요. 이번 글에서는 ABAP Cloud가 클래식 ABAP과 어떻게 다른지 알아보고, ADT에서 사용할 수 있는 API와 언어 버전을 확인하는 순서를 살펴봐요.
ABAP Cloud의 API 제약을 출입구에 비유하면 아래와 같습니다. SAP 객체에 직접 접근하는 대신, 사용이 허용된 API를 통해 필요한 기능을 이용합니다.
핵심 내용
ABAP Cloud (개발 방식)
언어 버전은 *ABAP for Cloud Development* 로, 제한된 ABAP 문법이에요. 클래식 UI(딘프로), 리포트(실행 프로그램),
WRITE같은 목록 문장 등은 쓸 수 없어요.SAP가 제공하는 저장소 오브젝트는 *릴리스된 API*(released API)만 접근할 수 있어요. 예를 들어 SAP 제공 데이터베이스 테이블은 대부분 직접 읽을 수 없고, 대신 CDS 엔티티라는 CDS 엔티티를 통해 읽어요. 라이브러리(예: XCO)는 미리 정의된 기능을 제공해요. 릴리스된 오브젝트에는
C0,C1같은 릴리스 계약이 붙어요.도구는 ADT(ABAP Development Tools for Eclipse)만 지원해요.
SE80,SE24같은 SAP GUI 트랜잭션은 쓰지 않아요.트랜잭션 프로그래밍 모델은 RAP(ABAP RESTful Application Programming Model)이에요.
클래식 ABAP
레거시 방식의 개발 방식이에요. 표준(Standard) ABAP과 ABAP for Cloud Development 문법을 둘 다 쓸 수 있고, ADT와 SAP GUI를 둘 다 쓸 수 있고, 릴리스된 API 밖의 SAP 오브젝트도 접근할 수 있어요.
치트시트는 SAP S/4HANA에서 지원된다고 소개해요.
직접 확인해 보는 방법 (치트시트가 따라 하는 순서를 내 말로 줄였어요)
ADT 프로젝트 탐색기의 *Released Objects* 에서 릴리스된 오브젝트를 둘러봐요. 예를 들어
CL_ABAP_RANDOM_INT클래스를 열어 속성의 *API State* 를 보면 C1 같은 릴리스 계약이 보여요.클래식 ABAP 시스템에서 전역 클래스를 만들어 속성의 *ABAP Language Version* 을 보면 *Standard ABAP* 이에요. 이 값을 *ABAP for Cloud Development* 로 바꾸면 그 클래스는 제한된 문법과 릴리스된 API만 쓸 수 있고, 금지된 구문이 있으면 문법 오류가 나서 활성화할 수 없어요.
기존 코드가 클라우드 준비 상태인지는 ATC 검사 변형
ABAP_CLOUD_READINESS로 확인해요. 클래스에서 마우스 오른쪽 단추 > Run As > ABAP Test Cockpit With... 로 변형 이름을 넣고 실행하면 *ATC Problems* 탭에 지적 사항이 나와요. 시간이 걸릴 수 있어요.
아래 그림은 치트시트가 보여 주는 ADT 화면이에요. 순서대로 릴리스된 오브젝트 목록, CL_ABAP_RANDOM_INT의 API 상태, 클래스 속성의 언어 버전이에요.
금지되는 구문의 예 (치트시트의 예제 코드가 일부러 모은 것): MOVE num3 TO num1. 대신 num1 = num3., DESCRIBE TABLE ... LINES 대신 lines( ), GET REFERENCE OF 대신 REF #( ), sy-datum/sy-uzeit/sy-timlo 대신 릴리스된 시간 API, 그리고 SELECT ... FROM spfli(릴리스되지 않은 DB 테이블)나 USING CLIENT 추가 구문이에요. 동적 SQL(FROM ('SPFLI'))은 컴파일 오류는 안 나도 실행 중에 오류가 나서 cl_abap_dyn_prg로 검사하라고 해요.
사용이 허용된 API를 찾는 방법
ADT의 *Released Objects*
SAP Business Accelerator Hub(api.sap.com) 의 S/4HANA 제품 페이지
ATC와 GitHub의 *Cloudification Repository* (
SAP/abap-atc-cr-cv-s4hc), 그리고 그 뷰어 사이트필요한 API의 사용 허용을 요청하려면 SAP Customer Influence 캠페인에 등록해요(퍼블릭 클라우드 에디션 기준).
릴리스된 API를 쓸 때의 타입 주의. 릴리스된 메서드에 넘기는 변수의 타입을 TYPE RANGE OF i처럼 직접 만들면, API가 나중에 확장될 때 호환성이 깨질 수 있어서 구문 경고가 떠요. API가 제공하는 타입(if_abap_prob_types=>int_range)을 쓰면 경고가 사라진다고 치트시트가 예제로 보여 줘요.
주의할 점
이 글은 SAP 공식 치트시트 한 편을 읽고 정리한 것이에요. 도구 메뉴 이름과 제품 이름은 릴리스와 시기마다 바뀌므로 SAP Help Portal의 최신 안내를 확인하세요.
치트시트는 "S/4HANA에서 클래식 ABAP을 지원한다"고만 말해요. 어느 S/4HANA 릴리스에서 어떤 오브젝트가 릴리스되어 있는지는 시스템마다 다르니, 내 시스템에서 직접 확인하세요.
ABAP_CLOUD_READINESS검사 결과를 실제 프로젝트의 전환 범위와 연결하는 방법은 이 글에서 다루지 않았어요. 제가 직접 실행해 보지도 못했어요.
원문 주소: https://github.com/SAP-samples/abap-cheat-sheets/blob/main/19_ABAP_for_Cloud_Development.md
출처와 이용 안내
원문: ABAP Cheat Sheets - ABAP for Cloud Development · 작성자 SAP SE and contributors SAP-samples · 작성일 2023-09-20 · 기준 ABAP Cloud 클라우드 ABAP 환경과 최신 S/4HANA 릴리스 · 확인일 2026-10-25
이 글은 위 원문을 읽고 한국어로 요약·재구성한 글이며 번역본이 아니에요. 원문의 저작권은 작성자와 SAP에 있어요.
원문은 Apache-2.0 라이선스(https://www.apache.org/licenses/LICENSE-2.0)로 공개된 자료예요. 이 글은 내용을 한국어로 줄이고 순서를 바꾼 변경본이며, 원저작자가 이 글을 보증하지 않아요.
설정과 화면은 릴리스마다 달라요. 적용하기 전에 원문과 SAP Help Portal, 관련 SAP Note에서 최신 내용을 확인해 주세요.
SAP와 SAP 제품명은 SAP SE의 상표예요. 바로투입은 SAP와 관련이 없어요.
댓글 0
아직 댓글이 없어요.
로그인하고 댓글 쓰기