UI5 개발자 90%가 놓치는 EventBus 패턴 #shorts #SAP #UI5
왜 EventBus가 필요한가 대형 SAP Fiori 애플리케이션은 보통 여러 개의 Component로 쪼개져 있습니다. 주문 목록을 보여주는 컴포넌트, 주문 상세를 띄우는 컴포넌트, 사이드 알림 패널을 다루는 컴포넌트가 서로 다른 페이지·다른 라이프사이클을 가진 상태에서 "방금 사용자
왜 EventBus가 필요한가 대형 SAP Fiori 애플리케이션은 보통 여러 개의 Component로 쪼개져 있습니다. 주문 목록을 보여주는 컴포넌트, 주문 상세를 띄우는 컴포넌트, 사이드 알림 패널을 다루는 컴포넌트가 서로 다른 페이지·다른 라이프사이클을 가진 상태에서 "방금 사용자
Code Inspector와 ATC, 뭐가 다른가 ABAP 코드 품질을 잡는 도구는 두 가지입니다. Code Inspector(SCI 트랜잭션)는 2000년대부터 사용해온 전통적인 방식이고, ATC(ABAP Test Cockpit)는 SAP가 현재 권장하는 현대적 품질 관리 방식입니다.
왜 CAP 아키텍트 면접은 코드 한 줄로 합격이 갈릴까? SAP BTP 프로젝트가 늘어나면서 CAP(Cloud Application Programming Model) 아키텍트 포지션의 채용도 활발해졌습니다. 그런데 막상 면접장에 들어가 보면 "CDS 엔티티 어떻게 정의하나요" 같은 표면
같은 요건, 세 갈래의 길 SAP S/4HANA와 ABAP Platform 환경에서 표준 기능을 확장할 때, 어떤 방식을 고를지 망설인 경험이 한 번쯤 있을 겁니다. 같은 "판매 오더에 프로모션 코드 필드 하나 추가"라는 요건이라도 Tier 1(Key User), Tier 2(Devel
SAP 확장 모델이 3계층으로 나뉜 이유 SAP S/4HANA Cloud가 등장하면서 ERP를 "건드리지 않고 어떻게 확장할 것인가"가 핵심 과제로 떠올랐습니다. 과거 ECC 시절에는 SE38에서 표준 프로그램을 그대로 수정하거나, User Exit/BAdI로 핵심 로직에 깊숙이 개입하
SAP HANA SQLScript의 EXEC 문은 강력한 기능이지만, 잘못 사용하면 SQL Injection 공격에 그대로 노출됩니다. 이 글은 실무에서 발생하는 취약 패턴을 재현하고, 안전하게 Dynamic SQL을 설계하는 방법을 단계별로 설명합니다. Dynamic SQL의 동작 원
Statement Memory란 무엇인가 SAP HANA의 Statement Memory는 단일 SQL 문(statement)이 실행되는 동안 소비할 수 있는 최대 메모리 양을 제어하는 메모리 관리 체계다. 컬럼스토어 기반의 HANA는 복잡한 집계, 조인, 분석 쿼리를 인메모리로 처리하
예외 처리를 빼먹으면 진짜 큰일 납니다 HANA SQLScript로 작성한 프로시저가 운영 환경에서 갑자기 멈추고, 수천 건의 SalesOrder가 절반만 처리된 채 롤백되는 상황을 본 적이 있나요? 이 글은 SQLScript의 예외 처리(Exception Handling) 메커니즘을
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에
예외 처리, 왜 필수인가 HANA SQLScript 프로시저에서 오류가 발생해도 핸들러가 없으면 전체 트랜잭션이 즉시 중단됩니다. 호출 측에 오류가 그대로 노출되고, 이미 실행된 DML도 롤백될 수 있습니다. 실수 1 — 핸들러 없이 SELECT INTO 사용 -- 위험: ID 999가
이 글이 답하는 질문 CAP에서 외부 OData 서비스를 연결하려면? 서드파티 API를 CAP 쿼리처럼 쓸 수 있나? RemoteService 3단계 1. CDS에서 외부 서비스 선언 // srv/external.cds using { northwind } from '../srv/exte
이 글이 답하는 질문 On-stack ABAP과 BTP ABAP, 실제로 어떤 코드 제약이 생기나? 클라우드 전환 시 가장 먼저 포기해야 할 것은? 진짜 차이 3가지 1. Released API만 허용 BTP ABAP(ABAP Cloud)은 SAP가 릴리즈 계약(C1/C2)을 공개한 클
상관 서브쿼리, 왜 문제인가? ABAP OpenSQL에서 상관 서브쿼리(Correlated Subquery)는 외부 쿼리의 각 행마다 서브쿼리가 실행됩니다. 결과 행이 많을수록 DB 라운드트립이 기하급수적으로 늘어나 성능 병목의 주범이 됩니다. LATERAL JOIN이란? ABAP 7.
Principal Propagation이란? SAP BTP에서 외부 백엔드 시스템을 호출할 때, 현재 로그인한 사용자의 ID를 그대로 전달 하는 메커니즘입니다. 이게 없으면 기술 사용자(Technical User)로만 연결되어 감사 추적(Audit Trail)이 불가능 합니다. 왜 문제
Generative AI Hub란? SAP BTP의 Generative AI Hub는 OpenAI, Anthropic, Mistral 등 주요 LLM을 단일 API 엔드포인트로 통합 제공합니다. 각 모델마다 별도 계정 없이 BTP 자격증명 하나로 모든 LLM을 호출할 수 있습니다. AI
SQLScript에서 예외 처리를 빠뜨리면? HANA SQLScript로 프로시저를 작성할 때, 예외 처리를 생략하면 어떤 일이 벌어질까요? 트랜잭션 롤백 없이 데이터가 반쪽만 저장되거나, 오류 메시지 없이 프로세스가 멈추는 상황이 발생합니다. 실제 운영 환경에서는 디버깅조차 어려운 큰
OData V2 vs V4 — Service Binding 선택의 차이 ABAP RAP에서 Service Binding을 생성할 때 OData 버전을 선택해야 합니다. V2 는 오래된 Fiori 앱과 호환성이 높고, V4 는 최신 기능과 성능이 더 우수합니다. 언제 어느 버전을 선택해야
외부 서비스가 죽으면? CAP Java에서 외부 REST API를 호출할 때 해당 서비스가 응답하지 않으면 스레드가 블로킹되고, 요청이 쌓여 결국 전체 서비스가 다운 됩니다. Circuit Breaker는 이 장애 전파를 막는 패턴입니다. Resilience4j 3가지 상태 Closed
ABAP 개발자도 이제 AI 코파일럿 시대 SAP의 AI 어시스턴트 Joule 이 ABAP 개발 환경에 직접 통합되었습니다. ABAP Development Tools(ADT)나 SAP Build Code에서 코드를 짜다가 막히면, Joule에게 바로 물어볼 수 있습니다. 어떤 걸 도와주
MTA(Multi-Target Application)란? SAP BTP에서 여러 모듈(백엔드, 프론트엔드, DB)을 하나의 패키지로 묶어 배포하는 표준 방식입니다. 핵심은 mta.yaml 파일 한 장입니다. mta.yaml 기본 구조 _schema-version: "3.1" ID: my