ABAP Cloud와 클래식 ABAP, 릴리스된 API 찾는 법 정리
3줄 요약
ABAP Cloud 는 제한된 ABAP 문법(ABAP for Cloud Development)과 "릴리스된 API만 사용"을 합친 프로그래밍 방식이에요.
클래식 ABAP 은 두 문법과 모든 도구, SAP 객체 접근에 제한이 없어요. 한 시스템에서 오브젝트마다 언어 버전을 골라 클라우드 준비 상태로 개발할 수도 있어요.
ADT 의 "Released Objects", ATC 변형
ABAP_CLOUD_READINESS, 공개된 클라우드화 저장소로 어떤 API 를 써도 되는지 확인해요.
어떤 상황에서 쓰나요
S/4HANA 전환이나 확장 개발에서 "Clean Core", "ABAP Cloud 로 개발하라"는 말을 듣지만 클래식 ABAP 과 정확히 무엇이 다른지 말로 설명하기 어려울 때 도움이 돼요. SAP 공식 치트시트 중 *ABAP for Cloud Development* 편은 이 용어를 짧게 정리하고, 직접 확인하는 방법을 알려 줘요.
핵심 내용
ABAP Cloud (프로그래밍 패러다임)
언어 버전은 *ABAP for Cloud Development* 로, 제한된 ABAP 문법이에요. 클래식 UI(딘프로), 리포트(실행 프로그램),
WRITE같은 목록 문장 등은 쓸 수 없어요.SAP 가 제공하는 저장소 오브젝트는 *릴리스된 API*(released API)만 접근할 수 있어요. 예를 들어 SAP 제공 데이터베이스 테이블은 대부분 직접 읽을 수 없고, 대신 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
아직 댓글이 없어요.
로그인하고 댓글 쓰기