DB 없이 CDS 뷰 테스트 3가지 — CDS Test Double #shorts #SAP #ABAP
작성 중...
작성 중...
ABAP에서 동기 CALL FUNCTION 대신 cl_background_jobs로 비동기 백그라운드 잡을 처리하는 방법을 알아봅니다.
1. 개요 및 핵심 포인트 SAPUI5 / OpenUI5 애플리케이션의 부트스트랩 단계는 사용자가 화면을 보기까지 걸리는 첫 번째 병목입니다. 동기(synchronous) manifest 로드 방식은 코드가 단순하지만 브라우저 메인 스레드를 차단하고, 점차 deprecated 처리되어
1. 개요 및 핵심 포인트 UI5 애플리케이션을 BTP에 배포하면 사용자가 페이지를 열 때마다 sap-ui-core.js , Component-preload.js , 컨트롤 라이브러리 등 수백 KB의 정적 리소스가 네트워크로 흘러갑니다. 이 트래픽을 줄이고 초기 로딩을 1초 이하로 끌어
개요 및 핵심 포인트 ABAP의 RAISE EXCEPTION 명령은 단순히 오류를 던지는 것 이상의 의미를 가집니다. TYPE 으로 어떤 예외 클래스를 발생시킬지, MESSAGE 로 사용자에게 보여줄 메시지를 어떻게 첨부할지, RESUMABLE 로 호출자가 실행을 이어갈 수 있도록 허용
개요 및 핵심 체크리스트 ABAP에서 중첩 구조체를 다룰 때 모든 하위 컴포넌트는 부모 구조체와 동일한 연속 메모리 블록에 한꺼번에 할당됩니다. 이는 작은 구조에서는 문제가 없지만, 거대한 sub-structure를 자주 사용하지 않거나, 자기참조(self-referential) 트리·
왜 ABAP에서 Optional Return이 중요한가 ABAP 메서드를 설계할 때 가장 자주 마주치는 고민 중 하나는 "리턴값을 강제할 것인가, 선택적으로 둘 것인가"입니다. 자바나 C++에서는 리턴값을 무시하면 컴파일러 경고가 나오거나 명시적인 캐스팅이 필요한 경우가 많지만, ABA
들어가며 — 왜 CDS 성능 힌트가 중요한가 HANA 기반 ABAP 개발에서 CDS 뷰는 단순한 SELECT 래퍼가 아닙니다. ABAP RAP, Fiori Elements, OData 서비스의 모든 데이터 흐름이 CDS를 통과하기 때문에, 뷰 한 개의 실행 계획이 어긋나면 화면 로딩이
왜 Embedded Steampunk가 등장했는가 S/4HANA Cloud Private Edition과 On-Premise 시스템에서 클린코어(Clean Core) 원칙을 강제하기 위해 도입된 개발 모델이 바로 Embedded Steampunk 입니다. 기존의 Classic ABAP은
1. 개요 및 이 글의 목표 ABAP에서 서로 다른 프로그램, 서브루틴, 함수 모듈, 다이얼로그 사이에 임시 데이터를 주고받아야 하는 상황은 빈번하게 발생합니다. 파라미터로 직접 전달할 수 없는 컨텍스트(예: SUBMIT 호출, CALL TRANSACTION, 모달 팝업 종료 후 결과
1. 개요 및 이 글의 목표 ABAP 객체지향 설계에서 클래스 간 결합도를 낮추는 두 가지 대표적인 기법이 의존성 주입(Dependency Injection, DI) 과 서비스 로케이터(Service Locator) 패턴입니다. 두 기법 모두 "객체가 자신이 필요로 하는 의존 객체를 직
1. 개요 및 이 글의 목표 ABAP Objects의 Singleton 패턴 은 특정 클래스의 인스턴스가 단일 세션 내에서 단 하나만 존재하도록 보장하는 객체 생성 패턴입니다. 설정 관리자, 캐시, 로거, 데이터베이스 연결과 같이 시스템 전반에서 동일한 상태를 공유해야 하는 컴포넌트를
1. 개요 및 이 글의 목표 ABAP CDS(Core Data Services)는 데이터 모델링 계층을 SAP HANA 데이터베이스에 가깝게 끌어올린 핵심 기술입니다. 그런데 데이터 모델이 강력해질수록 "누가 어떤 행(row)을 볼 수 있는가"라는 질문이 더 중요해집니다. ABAP CD
개요 및 이 글의 목표 ABAP 7.40 SP08 이후 도입된 인라인 선언(Inline Declaration)과 생성자 표현식(Constructor Expressions)은 ABAP 개발 방식을 근본적으로 바꾸어 놓았습니다. 과거에는 변수 하나를 쓰기 위해 DATA 블록에서 명시적으로
1. 개요 및 이 글에서 얻어갈 것 ABAP CDS(Core Data Services)를 처음 마주하면 보통 DEFINE VIEW 한 줄로 시작하지만, 실제 S/4HANA 표준 코드를 들여다보면 Virtual Data Model (이하 VDM)이라 부르는 거대한 뷰 계층 구조가 존재합니
1. 개요 및 이 글에서 얻어갈 것 ABAP 7.40 SP02부터 도입된 DATA(...) 인라인 선언은 단순한 문법 설탕(syntactic sugar)이 아니라, ABAP 개발 스타일 자체를 바꾼 핵심 기능입니다. 변수를 사용하는 위치 에서 곧바로 선언함으로써 코드의 가독성이 향상되고
개요 및 핵심 포인트 ABAP에서 객체를 다룰 때 임시 변수가 화면을 가득 채우는 경험을 해본 적이 있을 것입니다. 메서드 체이닝(Method Chaining)은 동일 객체의 메서드를 점으로 이어 호출하는 패턴으로, 빌더(Builder)와 같은 Fluent Interface를 ABAP
개요와 이 글에서 얻어갈 것 SAP 표준 CDS 뷰는 SAP가 소유한 자산이라 직접 수정하면 업그레이드 시 충돌이 발생합니다. 그렇다고 같은 데이터에 컬럼 한두 개를 더 붙이려고 새 뷰를 통째로 복제하면 유지보수가 악몽이 됩니다. 이 글에서는 원본을 건드리지 않고 필드와 행을 확장하는
개요 및 이 글에서 다루는 것 ABAP CDS 뷰에서 검색 기능을 선언적으로 노출하려면 @Search 어노테이션 패밀리를 활용해야 합니다. 단순히 OData 필터로 동등 비교를 거는 것과 달리, @Search 는 Fiori Elements의 글로벌 검색창, SADL(서비스 어댑테이션 정
개요 및 이 글에서 다루는 것 ABAP RAP(RESTful Application Programming Model)에서 비즈니스 로직을 구현할 때 가장 자주 마주치는 함정 중 하나가 바로 FAILED와 REPORTED 테이블의 오용 입니다. 두 구조는 이름이 비슷하지만 역할이 완전히 다