바로투입이력카드
SAP 게시판

정보·팁

ABAP Cloud와 클래식 ABAP, 릴리스된 API 찾는 법 정리

에이든ABAP 개발자운영자모듈 MMSD기타수정됨조회 13

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를 통해 필요한 기능을 이용합니다.

AI 설명 그림: 허용된 API로 확장하기. 개념을 돕기 위한 이미지이며 실제 SAP 화면이 아닙니다.
AI 설명 그림: 허용된 API로 확장하기. 개념을 돕기 위한 이미지이며 실제 SAP 화면이 아닙니다.

핵심 내용

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에서 지원된다고 소개해요.

직접 확인해 보는 방법 (치트시트가 따라 하는 순서를 내 말로 줄였어요)

  1. ADT 프로젝트 탐색기의 *Released Objects* 에서 릴리스된 오브젝트를 둘러봐요. 예를 들어 CL_ABAP_RANDOM_INT 클래스를 열어 속성의 *API State* 를 보면 C1 같은 릴리스 계약이 보여요.

  2. 클래식 ABAP 시스템에서 전역 클래스를 만들어 속성의 *ABAP Language Version* 을 보면 *Standard ABAP* 이에요. 이 값을 *ABAP for Cloud Development* 로 바꾸면 그 클래스는 제한된 문법과 릴리스된 API만 쓸 수 있고, 금지된 구문이 있으면 문법 오류가 나서 활성화할 수 없어요.

  3. 기존 코드가 클라우드 준비 상태인지는 ATC 검사 변형 ABAP_CLOUD_READINESS로 확인해요. 클래스에서 마우스 오른쪽 단추 > Run As > ABAP Test Cockpit With... 로 변형 이름을 넣고 실행하면 *ATC Problems* 탭에 지적 사항이 나와요. 시간이 걸릴 수 있어요.

아래 그림은 치트시트가 보여 주는 ADT 화면이에요. 순서대로 릴리스된 오브젝트 목록, CL_ABAP_RANDOM_INT의 API 상태, 클래스 속성의 언어 버전이에요.

프로젝트 탐색기의 Released Objects 트리: Source Code Library 아래에 Classes, Function Groups, Interfaces 등이 있어요
프로젝트 탐색기의 Released Objects 트리: Source Code Library 아래에 Classes, Function Groups, Interfaces 등이 있어요
CL_ABAP_RANDOM_INT의 Properties 탭, API State: Release State는 Released, Use in Cloud Development는 Yes, 릴리스 계약은 C1
CL_ABAP_RANDOM_INT의 Properties 탭, API State: Release State는 Released, Use in Cloud Development는 Yes, 릴리스 계약은 C1
클래스 Properties의 General: ABAP Language Version이 Standard ABAP 이고 오른쪽에 Edit... 단추가 있어요
클래스 Properties의 General: ABAP Language Version이 Standard ABAP 이고 오른쪽에 Edit... 단추가 있어요

금지되는 구문의 예 (치트시트의 예제 코드가 일부러 모은 것): 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

아직 댓글이 없어요.

정보·팁 목록전체 목록