N+1 쿼리 금지 — OData $expand 3가지 패턴 #shorts #SAP #UI5
개요와 이 글에서 다루는 범위 SAP UI5 애플리케이션이 OData 서비스를 호출할 때, 마스터-디테일 화면에서 가장 자주 발생하는 성능 병목이 바로 N+1 쿼리 문제입니다. 판매 오더 목록을 가져온 뒤 각 오더의 고객 정보를 따로따로 조회하면 100건 목록에 101번의 HTTP 요청
개요와 이 글에서 다루는 범위 SAP UI5 애플리케이션이 OData 서비스를 호출할 때, 마스터-디테일 화면에서 가장 자주 발생하는 성능 병목이 바로 N+1 쿼리 문제입니다. 판매 오더 목록을 가져온 뒤 각 오더의 고객 정보를 따로따로 조회하면 100건 목록에 101번의 HTTP 요청
개요 및 학습 포인트 ABAP에서 내부 테이블(internal table)을 다룰 때 가장 자주 쓰는 명령 중 하나가 SORT입니다. 단일 필드 정렬은 직관적이지만, 실무에서는 "부서별로 묶고 그 안에서 금액 내림차순" 같은 다중 필드 정렬이 훨씬 흔합니다. 이때 같은 키 값을 가진 행
개요 및 학습 포인트 SAPUI5 애플리케이션을 만들다 보면 모든 데이터를 OData 서비스에 의존하기보다 화면 내부에서만 잠깐 쓰는 상태값(편집 모드 플래그, 필터 조건, 장바구니 임시 데이터 등)을 관리해야 할 때가 많습니다. 이때 sap.ui.model.json.JSONModel
List Report가 어노테이션을 해석하는 방식 SAP Fiori Elements의 List Report는 CDS(또는 OData) 메타데이터에 선언된 @UI 어노테이션을 런타임에 해석해 UI를 자동 렌더링합니다. 개발자가 XML View를 직접 작성하지 않아도 컬럼, 필터바, 헤더
PersistenceService란 무엇인가 PersistenceService 는 CAP for Java 런타임이 제공하는 영속성 추상화 계층입니다. 패키지 com.sap.cds.services.persistence.PersistenceService 에 정의되어 있으며, CDS 엔터티
왜 CAP 아키텍트 면접은 코드 한 줄로 합격이 갈릴까? SAP BTP 프로젝트가 늘어나면서 CAP(Cloud Application Programming Model) 아키텍트 포지션의 채용도 활발해졌습니다. 그런데 막상 면접장에 들어가 보면 "CDS 엔티티 어떻게 정의하나요" 같은 표면
Statement Memory란 무엇인가 SAP HANA의 Statement Memory는 단일 SQL 문(statement)이 실행되는 동안 소비할 수 있는 최대 메모리 양을 제어하는 메모리 관리 체계다. 컬럼스토어 기반의 HANA는 복잡한 집계, 조인, 분석 쿼리를 인메모리로 처리하
예외 처리를 빼먹으면 진짜 큰일 납니다 HANA SQLScript로 작성한 프로시저가 운영 환경에서 갑자기 멈추고, 수천 건의 SalesOrder가 절반만 처리된 채 롤백되는 상황을 본 적이 있나요? 이 글은 SQLScript의 예외 처리(Exception Handling) 메커니즘을
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에
SAP Joule를 BTP에 연동하면 AI 응답 품질은 높아지지만, 토큰 소비가 예상보다 빠르게 늘어납니다. 실제 프로젝트에서 Joule 호출 비용을 절반 가까이 줄인 3가지 최적화 패턴을 공유합니다. 이 글이 답하는 질문 Joule 토큰 비용이 급증하는 주요 원인은? 프롬프트 캐싱으로
CAP for Node.js 앱의 Approuter(xs-app.json) 라우트 설정 실수가 어떻게 인증을 통째로 우회시키는지 분석하고, 안전한 authenticationType·destination·csrfProtection 구성 패턴을 실전 코드로 정리합니다.

CAP for Node.js의 cds.ql로 SQL 집계 쿼리를 작성하는 실전 패턴을 다룹니다. GROUP BY·HAVING·COUNT·SUM·AVG 집계 함수 활용법, WHERE vs HAVING 차이, 서브쿼리 인라인 패턴, Late materialization 원칙까지 판매 대시보

@Component + implements EventHandler 두 마커의 조합으로 CAP Java 런타임이 Spring 컴포넌트 스캔에서 핸들러를 자동 발견하는 메커니즘, @ServiceName/@Before/@On/@After 라우팅 테이블 구축 원리, @HandlerOrder 실

RAP Validation에서 on SAVE와 on MODIFY 이벤트를 잘못 선택하면 UX 버그와 성능 이슈가 생깁니다. 두 이벤트의 호출 시점, BDEF 선언 문법, ABAP 구현 패턴, 흔한 실수 3가지를 실전 코드로 정리합니다.

SAP BTP API Management의 Rate Limit, Quota, Spike Arrest 세 가지 트래픽 정책을 비교하고, XML 설정 예제와 다단계 방어 전략, 429 에러 커스터마이징까지 실전 구성법을 정리합니다.

CAP Node.js에서 @requires와 @restrict 어노테이션으로 서비스·엔티티·액션의 접근 제어를 선언적으로 구현하는 방법을 다룹니다. 인스턴스 수준 보안(where 절), XSUAA 연동, 보안 설계 Best Practices까지 코드 예제와 함께 설명합니다.
SAP Profile 직접 할당 방식의 문제점과 PFCG Role 설계 원칙을 정리했습니다. Authorization Object 구조부터 Composite Role, 감사 대비 최소 권한 설계까지 실전 가이드입니다.
SAP BTP Integration Suite의 iFlow 설계 원칙과 실전 Error Handling 전략을 단계별로 정리했습니다. Exception Subprocess, Dead Letter Queue, MPL 모니터링까지 운영 레벨 가이드입니다.

ABAP Cloud와 Standard ABAP의 핵심 차이를 5가지 실전 Q&A로 정리합니다. SELECT 직접 접근 차단, 미공개 FM 호출 불가, 마이그레이션 5대 이슈, RAP 권장 이유, BAdI/Enhancement 호환성까지 ABAP 코드 비교 예시와 함께 다룹니다. BTP

RAP의 Side Effects와 Business Events를 활용하여 필드 변경 시 자동 갱신, 이벤트 드리븐 워크플로우 자동화를 구현하는 방법을 단계별로 설명합니다.