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

정보·팁

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

에이든ABAP 개발자운영자모듈 MMSD기타조회 5

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

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

  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

아직 댓글이 없어요.

정보·팁 목록전체 목록