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로 핵심 로직에 깊숙이 개입하
예외 처리를 빼먹으면 진짜 큰일 납니다 HANA SQLScript로 작성한 프로시저가 운영 환경에서 갑자기 멈추고, 수천 건의 SalesOrder가 절반만 처리된 채 롤백되는 상황을 본 적이 있나요? 이 글은 SQLScript의 예외 처리(Exception Handling) 메커니즘을
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에
예외 처리, 왜 필수인가 HANA SQLScript 프로시저에서 오류가 발생해도 핸들러가 없으면 전체 트랜잭션이 즉시 중단됩니다. 호출 측에 오류가 그대로 노출되고, 이미 실행된 DML도 롤백될 수 있습니다. 실수 1 — 핸들러 없이 SELECT INTO 사용 -- 위험: ID 999가
BTP Generative AI Hub LLM 통합 시 실수 TOP 3 SAP BTP Generative AI Hub는 OpenAI, Anthropic, Google 등 다양한 LLM을 단일 API로 호출할 수 있게 해주는 서비스입니다. 하지만 비즈니스 앱에 통합할 때 흔히 발생하는 실
SQLScript에서 예외 처리를 빠뜨리면? HANA SQLScript로 프로시저를 작성할 때, 예외 처리를 생략하면 어떤 일이 벌어질까요? 트랜잭션 롤백 없이 데이터가 반쪽만 저장되거나, 오류 메시지 없이 프로세스가 멈추는 상황이 발생합니다. 실제 운영 환경에서는 디버깅조차 어려운 큰
에러 처리, 매번 따로 짜고 있진 않나요? CAP for Java 프로젝트가 커지면, 서비스마다 try-catch 반복하게 됩니다. Global Exception Handler 로 한 곳에서 처리하면 코드도 줄고, 클라이언트 응답도 일관됩니다. 핵심 구조 Spring의 @Controll
이 글이 답하는 질문 SQLScript가 일반 SQL과 뭐가 다른가? HANA Procedure를 언제 써야 하나? TABLE TYPE은 왜 별도로 정의하는가? 직접 해보기 1. Table Type 정의 CREATE TYPE tt_employee AS TABLE ( empId NVARC
이 글이 답하는 질문 SQLScript 프로시저 기본 구조는? TABLE TYPE으로 여러 행을 반환하려면? DECLARE, IF 절차형 구문은 어떻게 쓰나요? 프로시저 기본 구조 BEGIN-END 블록에 IN/OUT 파라미터를 선언하고 로직을 작성합니다. CREATE OR REPLAC
이 글이 답하는 질문 CAP for Java에서 역할(Role) 기반 접근 제어를 어떻게 선언하나요? @AuthorizedRole과 @PreAuthorize 중 어떤 걸 써야 하나요? 로컬에서 권한 테스트는 어떻게 하나요? 직접 해보기 1. CDS에서 Role 선언 CDS 서비스 정의에
이 글이 답하는 질문 HANA SQLScript에서 WHILE/FOR 루프를 쓰면 왜 느린가? Set 방식으로 어떻게 대체하나? 실무에서 루프를 피해야 하는 이유는? 직접 해보기 루프 방식 (느림) -- 행 단위 처리 — 대용량에서 치명적 DECLARE i INT = 1; WHILE i
이 글이 답하는 질문 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 선언
이 글이 답하는 질문 CAP Java 앱에 Health Check가 없으면 어떤 일이 생기나? Cloud Foundry / Kyma에서 Health Check는 어떻게 설정하나? Actuator와 커스텀 Health Indicator는 어떻게 추가하나? Health Check란 플랫폼(
이 글이 답하는 질문 CAP Java에서 무거운 작업을 비동기로 처리하려면? @Async 를 붙이기만 하면 되는가? 비동기 메서드가 작동하지 않는 이유는 무엇인가? @Async란 Spring Boot에서 메서드에 @Async 를 붙이면 해당 메서드가 별도 스레드에서 실행된다. 이메일 발
이 글이 답하는 질문 CAP Java에서 System.out.println 뭐가 문제인가? SLF4J 어떻게 쓰나? 실무에서 꼭 알아야 할 logging 패턴 3가지는? println을 쓰면 안 되는 이유 로그 레벨 없음 — DEBUG/INFO/WARN/ERROR 구분 불가 운영 환경에
Authority Check란 ABAP에서 사용자가 특정 기능을 수행할 권한이 있는지 런타임에 검증하는 메커니즘입니다. SAP는 S_ 로 시작하는 권한 오브젝트(예: S_TCODE , S_DEVELOP , S_TABU_DIS )를 통해 사용자 마스터의 프로파일과 매칭합니다. 권한 체크를
CAP Java에서 CdsService 를 직접 쓰면 문자열 쿼리 대신 타입 안전한 빌더 API로 데이터를 조회할 수 있습니다. OData 핸들러 밖에서도 CAP 엔티티를 쿼리해야 할 때 실제로 어떻게 쓰는지 코드로 확인해봅니다. 이 글이 답하는 질문 CdsService vs Entit
ABAP Unit Test에서 DB 의존 코드를 Mock Framework로 테스트하는 방법 — cl_osql_test_environment, cl_abap_testdouble 실전 가이드