SAP 확장 Tier 1 vs 2 vs 3 어떻게 다를까 #shorts #SAP #ABAP
SAP 확장 모델이 3계층으로 나뉜 이유 SAP S/4HANA Cloud가 등장하면서 ERP를 "건드리지 않고 어떻게 확장할 것인가"가 핵심 과제로 떠올랐습니다. 과거 ECC 시절에는 SE38에서 표준 프로그램을 그대로 수정하거나, User Exit/BAdI로 핵심 로직에 깊숙이 개입하
SAP 확장 모델이 3계층으로 나뉜 이유 SAP S/4HANA Cloud가 등장하면서 ERP를 "건드리지 않고 어떻게 확장할 것인가"가 핵심 과제로 떠올랐습니다. 과거 ECC 시절에는 SE38에서 표준 프로그램을 그대로 수정하거나, User Exit/BAdI로 핵심 로직에 깊숙이 개입하
PersistenceService란? CAP for Java에서 PersistenceService 는 데이터베이스에 직접 접근할 수 있는 타입 안전 영속성 API입니다. 일반적인 CqnService와 달리 이벤트 핸들러를 우회해 DB에 바로 쿼리를 실행합니다. 주로 커스텀 핸들러 내부에
이 글이 답하는 질문 CAP에서 외부 OData 서비스를 연결하려면? 서드파티 API를 CAP 쿼리처럼 쓸 수 있나? RemoteService 3단계 1. CDS에서 외부 서비스 선언 // srv/external.cds using { northwind } from '../srv/exte
Principal Propagation이란? SAP BTP에서 외부 백엔드 시스템을 호출할 때, 현재 로그인한 사용자의 ID를 그대로 전달 하는 메커니즘입니다. 이게 없으면 기술 사용자(Technical User)로만 연결되어 감사 추적(Audit Trail)이 불가능 합니다. 왜 문제
BTP Generative AI Hub LLM 통합 시 실수 TOP 3 SAP BTP Generative AI Hub는 OpenAI, Anthropic, Google 등 다양한 LLM을 단일 API로 호출할 수 있게 해주는 서비스입니다. 하지만 비즈니스 앱에 통합할 때 흔히 발생하는 실
외부 서비스가 죽으면? CAP Java에서 외부 REST API를 호출할 때 해당 서비스가 응답하지 않으면 스레드가 블로킹되고, 요청이 쌓여 결국 전체 서비스가 다운 됩니다. Circuit Breaker는 이 장애 전파를 막는 패턴입니다. Resilience4j 3가지 상태 Closed
에러 처리, 매번 따로 짜고 있진 않나요? CAP for Java 프로젝트가 커지면, 서비스마다 try-catch 반복하게 됩니다. Global Exception Handler 로 한 곳에서 처리하면 코드도 줄고, 클라이언트 응답도 일관됩니다. 핵심 구조 Spring의 @Controll
이 글이 답하는 질문 SQLScript 프로시저 기본 구조는? TABLE TYPE으로 여러 행을 반환하려면? DECLARE, IF 절차형 구문은 어떻게 쓰나요? 프로시저 기본 구조 BEGIN-END 블록에 IN/OUT 파라미터를 선언하고 로직을 작성합니다. CREATE OR REPLAC
이 글이 답하는 질문 CAP for Java에서 역할(Role) 기반 접근 제어를 어떻게 선언하나요? @AuthorizedRole과 @PreAuthorize 중 어떤 걸 써야 하나요? 로컬에서 권한 테스트는 어떻게 하나요? 직접 해보기 1. CDS에서 Role 선언 CDS 서비스 정의에
이 글이 답하는 질문 CAP for Java에서 Custom Action을 어떻게 정의하나? Java Handler를 @On으로 연결하는 정확한 방법은? Action 구현 시 자주 하는 실수는? 직접 해보기 1. service.cds에 Action 정의 // srv/my-service.
Custom Action이란? CAP CDS에서 action 은 데이터 조회·수정 외의 비즈니스 로직을 명시적으로 노출하는 방법입니다. REST로 치면 POST /approve 같은 비표준 동작을 OData 서비스에 추가할 때 사용합니다. CDS 정의 service OrderServic
Custom Action이 필요한 순간 CAP for Java에서 표준 CRUD만으로는 부족할 때 Custom Action을 사용합니다. 주문 승인, 결제 처리, 외부 시스템 호출처럼 특정 비즈니스 로직을 전용 API 엔드포인트로 노출할 수 있습니다. CDS 모델에서 Action 선언
Expression Binding이란? UI5의 Expression Binding은 XML View 안에서 JavaScript 표현식을 직접 실행할 수 있는 기능입니다. {= ... } 문법을 사용하며, 단순한 조건 처리나 문자열 조합을 위해 Controller에 formatter 함수
이 글이 답하는 질문 CAP Java 앱에 Health Check가 없으면 어떤 일이 생기나? Cloud Foundry / Kyma에서 Health Check는 어떻게 설정하나? Actuator와 커스텀 Health Indicator는 어떻게 추가하나? Health Check란 플랫폼(
인증 빼먹으면 API가 그대로 노출됩니다 CAP for Java 앱을 BTP에 배포할 때 XSUAA 바인딩과 JWT 검증을 누락하면, 인증 없는 엔드포인트가 외부에 그대로 노출될 수 있습니다. 특히 @cds.requires: 'authenticated-user' 선언을 빠뜨리면 Serv
이 글이 답하는 질문 CAP Java 핸들러에서 요청 데이터를 타입 안전하게 꺼내는 방법은? EventContext가 CdsContext와 다른 점은? put/get 대신 typed accessor를 쓰면 뭐가 좋은가? EventContext란 CAP Java의 EventContext
이 글이 답하는 질문 SAP 개발을 VSCode에서 시작하려면 뭘 설치해야 하나요? CAP, Fiori, ABAP 각각 어떤 확장이 필요한가요? Eclipse ADT 없이 SAP 개발이 가능한가요? 직접 해보기 1. CAP 개발 — CDS Language Support # VSCode
이 글이 답하는 질문 CAP for Java에서 주기적인 배치 작업을 어떻게 구현하나요? @Scheduled 어노테이션 하나로 cron을 직접 구현하지 않아도 되나요? Spring의 @Scheduled을 CAP 서비스에서 바로 쓸 수 있나요? 직접 해보기 1. 의존성 확인 — Sprin
이 글이 답하는 질문 CAP Java에서 무거운 작업을 비동기로 처리하려면? @Async 를 붙이기만 하면 되는가? 비동기 메서드가 작동하지 않는 이유는 무엇인가? @Async란 Spring Boot에서 메서드에 @Async 를 붙이면 해당 메서드가 별도 스레드에서 실행된다. 이메일 발
BTP에서 Buildpack이란? SAP BTP Cloud Foundry 환경에서 앱을 배포할 때, Buildpack은 실행 환경을 자동으로 구성해 주는 도구입니다. 코드만 push하면 Buildpack이 런타임·의존성을 알아서 설치하고 앱을 기동합니다. 별도 Dockerfile 없이도