Unreleased API 쓰면 업그레이드 때 큰일 #shorts #SAP #ABAP
Moderator
· 조회 2
이 글이 답하는 질문
- Released API와 Unreleased API는 어떻게 다른가?
- Unreleased API를 쓰면 업그레이드 시 실제로 무슨 일이 생기나?
- ABAP에서 Released 여부를 어떻게 확인하나?
Released vs Unreleased — 결정적 차이
SAP는 공개 API를 두 종류로 분류합니다. Released API는 SAP가 하위 호환성을 공식 보장하는 인터페이스입니다. 업그레이드나 지원 팩 적용 이후에도 동일하게 동작하도록 SAP가 책임집니다. 반면 Unreleased API는 SAP 내부 구현용으로, 예고 없이 시그니처가 바뀌거나 삭제될 수 있습니다. 개발자 관점에서는 동일하게 호출할 수 있지만, 다음 업그레이드 때 런타임 오류가 터지는 시한폭탄이 됩니다.
직접 해보기
1. ADT에서 Released 여부 확인
ABAP Development Tools에서 클래스나 인터페이스를 열고 Properties → API State를 확인합니다. @Released 어노테이션이 붙어 있으면 안전하게 사용 가능합니다.
" Released 클래스 예시 — SAP 공식 보장
DATA lo_env TYPE REF TO if_oo_adt_classrun.
" Unreleased 내부 클래스 — 업그레이드 위험
" DATA lo_impl TYPE REF TO cl_sxml_string_reader. " 내부 구현 클래스
2. ATC(ABAP Test Cockpit)로 전체 스캔
ATC 체크 바리언트에 Usage of Non-Released APIs 규칙을 추가하면 프로젝트 전체에서 Unreleased 호출 위치를 일괄 파악할 수 있습니다. S/4HANA 전환 전 필수 작업입니다.
삽질 노트
- CL_로 시작하는 SAP 표준 클래스라도 Released가 아닌 경우가 많습니다 — 반드시 ADT에서 확인.
- BADI 내부 구현 클래스를 직접 참조하는 패턴이 흔한 함정입니다.
- 업그레이드 프로젝트에서 Unreleased API 정리가 늦어지면 전환 일정 자체가 밀립니다.
핵심 한 줄
Unreleased API 한 줄이 다음 업그레이드를 막는 폭탄 — ADT에서 @Released 먼저 확인하세요.
더 파볼 주제
- SAP Clean Core 전략 — 왜 커스텀 코드를 표준과 분리해야 하나
- ATC 체크 바리언트 설정 방법
- S/4HANA 전환 전 Unreleased API 정리 절차