오류 수집 직접 코딩? — UI5 MessageModel로 자동화 #shorts #SAP #UI5
1. 수동 오류 수집의 문제점 UI5 애플리케이션을 처음 작성할 때 가장 흔히 마주치는 안티 패턴은 컨트롤러마다 onError , onValidationError , onParseError 핸들러를 따로 두고 sap.m.MessageBox.error() 를 호출하는 방식입니다. 입력 필
1. 수동 오류 수집의 문제점 UI5 애플리케이션을 처음 작성할 때 가장 흔히 마주치는 안티 패턴은 컨트롤러마다 onError , onValidationError , onParseError 핸들러를 따로 두고 sap.m.MessageBox.error() 를 호출하는 방식입니다. 입력 필
OData 전체 컬럼 요청의 문제점 SAPUI5 애플리케이션을 운영하다 보면 "왜 이렇게 느리지?"라는 질문을 자주 듣게 됩니다. 네트워크 탭을 열어보면 답이 보이는 경우가 많습니다. 판매주문(SalesOrder) 목록을 단순히 ID, 고객명, 금액 세 컬럼만 화면에 표시하는데도 서버는
개요 및 이 글의 목표 SAP UI5 애플리케이션을 개발하다 보면 백엔드가 항상 JSON이나 OData를 내려주지는 않습니다. 레거시 ERP 인터페이스, 외부 카탈로그 시스템, RSS/Atom 피드, SOAP 응답, 또는 ABAP에서 직접 직렬화한 XML 응답을 그대로 화면에 묶어야 할
개요 및 학습 포인트 SAPUI5 애플리케이션을 만들다 보면 모든 데이터를 OData 서비스에 의존하기보다 화면 내부에서만 잠깐 쓰는 상태값(편집 모드 플래그, 필터 조건, 장바구니 임시 데이터 등)을 관리해야 할 때가 많습니다. 이때 sap.ui.model.json.JSONModel
개요 및 핵심 포인트 SAP Fiori/UI5 애플리케이션이 복잡해질수록 화면 하나에서 발생하는 OData 호출 수가 빠르게 늘어납니다. 주문 목록, 고객 정보, 배송 상태, 첨부 파일을 각각 별도의 HTTP 요청으로 보낸다면 네트워크 왕복 비용과 서버 세션 부담이 모두 누적됩니다. 이
1. Object Page 레이아웃과 섹션의 역할 SAP Fiori Elements의 Object Page는 단일 비즈니스 엔티티(예: 판매주문 한 건, 거래처 한 곳)의 상세 정보를 표시하기 위한 표준 플로어플랜입니다. List Report에서 행을 클릭했을 때 펼쳐지는 그 페이지를
List Report가 어노테이션을 해석하는 방식 SAP Fiori Elements의 List Report는 CDS(또는 OData) 메타데이터에 선언된 @UI 어노테이션을 런타임에 해석해 UI를 자동 렌더링합니다. 개발자가 XML View를 직접 작성하지 않아도 컬럼, 필터바, 헤더
왜 EventBus가 필요한가 대형 SAP Fiori 애플리케이션은 보통 여러 개의 Component로 쪼개져 있습니다. 주문 목록을 보여주는 컴포넌트, 주문 상세를 띄우는 컴포넌트, 사이드 알림 패널을 다루는 컴포넌트가 서로 다른 페이지·다른 라이프사이클을 가진 상태에서 "방금 사용자
시니어 UI5 면접에서 자주 나오는 함정 UI5 시니어 포지션 면접에서는 단순 사용법이 아닌, 내부 동작 원리 를 묻는 질문이 핵심입니다. 합격자와 불합격자를 가르는 3가지 포인트를 정리했습니다. ① OData 바인딩 모드 — 언제 어떤 걸 쓰나요? 면접관이 "왜 Two-way 바인딩을
왜 destroy()가 필요한가 SAPUI5는 자체 ManagedObject 레지스트리로 모든 컨트롤을 추적합니다. 컨트롤을 DOM에서 제거하거나 부모에서 detach해도 이 레지스트리 참조는 그대로 남습니다. 이벤트 핸들러, 모델 바인딩, 프래그먼트 캐시까지 메모리에 계속 쌓입니다.
OData V2 vs V4 — Service Binding 선택의 차이 ABAP RAP에서 Service Binding을 생성할 때 OData 버전을 선택해야 합니다. V2 는 오래된 Fiori 앱과 호환성이 높고, V4 는 최신 기능과 성능이 더 우수합니다. 언제 어느 버전을 선택해야
아직도 SAPGUI 쓰고 있나요? SAP Fiori는 더 이상 선택이 아닙니다. 많은 기업이 여전히 SAPGUI의 복잡한 트랜잭션 화면에 의존하고 있지만, SAP는 Fiori를 표준 UX로 공식 전환했습니다. 마이그레이션을 미루는 사이 기술 부채가 쌓입니다. Fiori 마이그레이션 핵심
SAPUI5 i18n 다국어 지원 완전 정복 — Resource Bundle 설정부터 XML View 바인딩, Controller 동적 텍스트 처리까지
CAP Java 인증 설정, 빼먹으면 진짜 큰일 CAP Java 애플리케이션을 BTP에 배포할 때 인증 설정을 빠뜨리면 엔드포인트가 외부에 그대로 노출 된다. XSUAA와 JWT 설정 방법을 핵심만 정리했다. 기본 보안 설정 — xs-security.json BTP에서 XSUAA 서비스
ABAP Cloud vs Standard — 뭐가 다른가? ABAP를 오래 써왔다면 한 번쯤 들었을 키워드: ABAP Cloud . 기존 Standard ABAP와 뭐가 다른지, 왜 갑자기 중요해진 건지 핵심만 정리했다. 핵심 차이: Released API만 허용 ABAP Standar
OpenAI GPT-5.5 Instant ChatGPT 기본 모델 교체, 셀프서브 광고 베타, Google Gemini Webhooks, 미스트랄 Medium 3.5
CAP에서 외부 서비스를 쓰는 방법 CAP(Cloud Application Programming Model) 애플리케이션에서 외부 REST API나 OData 서비스를 호출해야 할 때가 있습니다. 직접 HTTP 클라이언트를 설정하는 대신, CAP의 cds.connect.to() 를 사용
RAP Action이 뭔가요? RAP(RESTful ABAP Programming)에서 Action은 CRUD 외의 비즈니스 로직을 처리하는 오퍼레이션입니다. 버튼 클릭 한 번으로 "승인", "취소", "전기" 같은 작업을 수행할 때 사용합니다. Action에는 크게 두 종류가 있습니다
왜 cds.connect.to인가? CAP 앱에서 외부 REST API나 S/4HANA 서비스를 직접 axios 로 호출하면 인증 토큰 관리, BTP Destination 연동, 에러 핸들링을 모두 직접 구현해야 합니다. cds.connect.to() 를 쓰면 이 모든 과정이 단 한 줄
수동 setItems, 지금 당장 그만 UI5에서 리스트에 아이템을 하나씩 추가하는 코드, 아직도 쓰고 있다면 Aggregation Binding으로 교체할 때입니다. 수동 방식은 모델과 뷰가 분리되지 않아 유지보수가 어렵고, 데이터 변경 시 화면 갱신을 직접 처리해야 합니다. Aggr