체인지셋 하나 실패하면 전부 롤백되는 이유는? #shorts #SAP #RAP
이 글에서 다루는 내용 RAP(ABAP RESTful Application Programming Model)으로 만든 서비스에 여러 건의 변경을 한 번에 보냈는데, 딱 한 건의 검증 오류 때문에 나머지 아홉 건까지 전부 사라지는 경험을 해본 적이 있을 것입니다. 이것은 버그가 아니라 O
이 글에서 다루는 내용 RAP(ABAP RESTful Application Programming Model)으로 만든 서비스에 여러 건의 변경을 한 번에 보냈는데, 딱 한 건의 검증 오류 때문에 나머지 아홉 건까지 전부 사라지는 경험을 해본 적이 있을 것입니다. 이것은 버그가 아니라 O
📖 개요: 이 글에서 다루는 것 UI5 앱을 처음 열었을 때 흰 화면이 3~5초씩 이어진다면, 대부분은 서버 성능이 아니라 부트스트랩과 리소스 로딩 방식 의 문제입니다. 이 실전 예제에서는 SAPUI5/OpenUI5(1.120 LTS 기준) 앱의 초기 로딩 속도를 개선하는 7가지 방법
1. 이 글에서 다루는 내용과 목표 UI5 커스텀 컨트롤을 만들 때 가장 많은 사고가 나는 곳이 바로 렌더러(renderer)입니다. 화면에는 그럭저럭 나오는데 리렌더링 시 깨지거나, 스크린리더가 읽지 못하거나, 목록에 100개만 놓아도 느려지는 문제 대부분이 렌더러 작성 습관에서 시작
📖 개요: 바인딩 없이 화면을 갱신해야 하는 순간들 UI5 개발을 하다 보면 "모든 화면 갱신은 데이터 바인딩으로"라는 원칙을 배우게 됩니다. 하지만 실무에서는 바인딩이 오히려 과한 경우가 있습니다. 일회성 상태 메시지, 초당 수십 번 갱신되는 실시간 카운터, 모델에 담을 필요가 없는
이 글이 답하는 질문 BTP 트라이얼은 언제 만료되고, 만료되면 정확히 무엇이 사라지나? "정지"와 "삭제"는 다른 상태인가 — 되살릴 수 있는 구간은 어디까지인가? HANA Cloud 인스턴스는 왜 며칠만 안 써도 멈춰 있나? 날리기 전에 무엇을 백업해 두어야 다시 세울 수 있나? 계
📖 이 글에서 다루는 것 Fiori Elements Object Page는 어노테이션만으로 화면 대부분이 만들어지지만, 실무에서는 표준 CRUD 버튼 외에 업무 고유의 액션 버튼 이 반드시 필요해집니다. 이 글은 물류 도메인의 출하 모니터링 앱을 가정하고, Object Page 헤더에
📖 개요: 프로젝트 첫 주에 결정한 것들이 1년을 좌우합니다 SAP BTP 프로젝트는 첫 2주 안에 내린 결정(리전, 서브계정 구조, 권한 모델)이 이후 운영 전체를 지배합니다. 문제는 이 결정들이 나중에 바꾸기 매우 어렵다는 점입니다. 예를 들어 서브계정의 리전은 생성 후 변경할 수
이 글에서 다루는 것과 도달 지점 SAPUI5/OpenUI5 앱의 초기 로딩 성능을 좌우하는 두 가지 번들, Component-preload.js 와 library-preload.js 를 빌드 최적화 관점에서 비교합니다. 두 파일이 각각 언제 생성되고 어떤 시점에 로드되는지, UI5 T
이 글이 답하는 질문 화면에 값을 그대로 뿌리는 경우는 거의 없습니다. 상태 코드를 한글로 바꾸고, 금액에 통화를 붙이고, 조건에 따라 색을 달리해야 합니다. 이때 선택지가 둘 있습니다. XML 뷰 안에 표현식을 직접 쓰는 방법과, 자바스크립트 함수로 빼는 방법입니다. 둘 다 되기 때문
개요: 왜 모든 오류가 500으로 나가는가 CAP Java로 서비스를 개발하다 보면, 핸들러 안에서 발생한 예외가 아무 처리 없이 그대로 올라가 클라이언트에게 500 Internal Server Error 로 반환되는 상황을 자주 만납니다. 재고 부족처럼 명백한 "업무 오류"조차 500
이 글이 답하는 질문 목록에서 상세 화면으로 넘어가는 것까지는 잘 됩니다. 그런데 같은 상세 화면을 "필터 조건 없이" 열어야 하는 요건이 생기면 갑자기 라우트가 안 잡힙니다. 주소창에 값 하나가 빠졌을 뿐인데 빈 화면이 뜨거나 notFound로 떨어집니다. 원인은 대부분 라우트 패턴에
이 글에서 얻어갈 것 — 30초 요약의 전체 지도 Fiori Elements는 어노테이션 기반으로 화면을 자동 생성하는 프레임워크지만, 실무에서는 반드시 "표준에 없는 버튼 하나, 컬럼 하나"를 추가해야 하는 순간이 옵니다. 이 글은 그때 필요한 확장 포인트를 종류별로 빠르게 정리한 실
📖 개요 — 이 글에서 다루는 것 SAP Fiori elements 기반 앱에서 사용자가 입력하다 만 데이터를 안전하게 임시 저장해 주는 Draft(초안) 패턴은, CAP Node.js에서는 어노테이션 한 줄( @odata.draft.enabled )로 켤 수 있습니다. 그런데 "한
📖 이 글이 답하는 질문 버튼을 눌렀는데 화면이 3초간 아무 반응이 없다면, 사용자는 앱이 멈췄다고 판단하고 버튼을 다시 누릅니다. 그 결과는 중복 요청, 이중 저장, 그리고 "앱이 느리다"는 평가입니다. SAPUI5(및 OpenUI5)에는 이 문제를 한 줄로 해결하는 setBusy
이 글에서 다룰 것 Fiori Elements List Report는 코드를 거의 쓰지 않고도 목록·필터·내비게이션을 갖춘 앱을 만들어 주지만, "표준 템플릿이라 커스터마이징이 안 된다"는 오해가 여전히 많습니다. 실제로는 freestyle로 새로 짜지 않아도 Annotation, ma
📖 개요: 확장 코드 없이 컬럼을 추가한다는 것 SAP Fiori Elements List Report에서 컬럼 하나를 추가해야 할 때, 많은 개발자가 습관적으로 Adaptation Project나 컨트롤러 확장부터 떠올립니다. 하지만 RAP(ABAP RESTful Applicatio
📖 개요: 이 글에서 다루는 것 SAP Fiori 앱을 새로 만들 때 가장 먼저 마주치는 갈림길이 바로 Fiori Elements 와 Freestyle UI5 의 선택입니다. 같은 SAPUI5 프레임워크 위에서 동작하지만, 개발 속도·커스터마이징 자유도·유지보수 비용이 크게 달라지기
개요: 저장 버튼 없이 화면이 스스로 갱신되는 원리 Fiori Elements 앱에서 수량 필드를 바꿨는데 총액이 그대로라면, 사용자는 "이 앱이 계산을 안 하나?"라고 느낍니다. 백엔드 Determination은 이미 값을 다시 계산했지만, 브라우저가 그 사실을 모르는 것이 문제입니다
1. Joule과 SAP AI Core — 이름만 봐서는 뭐가 다른지 모른다 SAP의 AI 소식을 따라가다 보면 두 이름이 계속 등장합니다. Joule 과 SAP AI Core . 둘 다 "SAP의 생성형 AI"로 소개되다 보니, 처음 접하는 분들은 "같은 것의 다른 이름인가?" 혹은
📖 개요: Cross-App Navigation에서 파라미터가 왜 생명선인가 SAP Fiori Launchpad(FLP) 환경에서는 하나의 업무가 여러 앱을 넘나들며 완성됩니다. 판매 오더 목록 앱에서 특정 오더를 선택해 청구서 조회 앱으로 이동할 때, 오더 번호 같은 컨텍스트 파라미