
쓰기 락 없이 — CAP Java ReadOnly 트랜잭션 3가지 #shorts #SAP #CAPforJava
개요 및 이 글에서 다루는 내용 CAP for Java(SAP Cloud Application Programming Model for Java)는 기본적으로 모든 비즈니스 로직을 트랜잭션 컨텍스트 안에서 실행합니다. 문제는 단순히 상품 카탈로그를 조회하거나 주문 내역을 검색하는 읽기 전

개요 및 이 글에서 다루는 내용 CAP for Java(SAP Cloud Application Programming Model for Java)는 기본적으로 모든 비즈니스 로직을 트랜잭션 컨텍스트 안에서 실행합니다. 문제는 단순히 상품 카탈로그를 조회하거나 주문 내역을 검색하는 읽기 전

PersistenceService란 무엇인가 PersistenceService 는 CAP for Java 런타임이 제공하는 영속성 추상화 계층입니다. 패키지 com.sap.cds.services.persistence.PersistenceService 에 정의되어 있으며, CDS 엔터티

PersistenceService란? CAP for Java에서 PersistenceService 는 데이터베이스에 직접 접근할 수 있는 타입 안전 영속성 API입니다. 일반적인 CqnService와 달리 이벤트 핸들러를 우회해 DB에 바로 쿼리를 실행합니다. 주로 커스텀 핸들러 내부에

외부 서비스가 죽으면? CAP Java에서 외부 REST API를 호출할 때 해당 서비스가 응답하지 않으면 스레드가 블로킹되고, 요청이 쌓여 결국 전체 서비스가 다운 됩니다. Circuit Breaker는 이 장애 전파를 막는 패턴입니다. Resilience4j 3가지 상태 Closed

이 글이 답하는 질문 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 선언
인증 빼먹으면 API가 그대로 노출됩니다 CAP for Java 앱을 BTP에 배포할 때 XSUAA 바인딩과 JWT 검증을 누락하면, 인증 없는 엔드포인트가 외부에 그대로 노출될 수 있습니다. 특히 @cds.requires: 'authenticated-user' 선언을 빠뜨리면 Serv
이 글이 답하는 질문 CAP for Java에서 주기적인 배치 작업을 어떻게 구현하나요? @Scheduled 어노테이션 하나로 cron을 직접 구현하지 않아도 되나요? Spring의 @Scheduled을 CAP 서비스에서 바로 쓸 수 있나요? 직접 해보기 1. 의존성 확인 — Sprin

이 글이 답하는 질문 CAP Java에서 무거운 작업을 비동기로 처리하려면? @Async 를 붙이기만 하면 되는가? 비동기 메서드가 작동하지 않는 이유는 무엇인가? @Async란 Spring Boot에서 메서드에 @Async 를 붙이면 해당 메서드가 별도 스레드에서 실행된다. 이메일 발

@Value란? CAP for Java는 Spring Boot 기반이므로 @Value 어노테이션을 그대로 사용할 수 있습니다. application.yaml 에 정의된 설정값을 Java 필드 한 줄로 바로 주입합니다. 설정 파일 작성 # application.yaml myapp: end

CAP Java DB 접근 방식 SAP CAP for Java에서 데이터베이스에 접근하는 방법은 크게 두 가지입니다. CDS Query API(CQL)와 JDBC 직접 접근입니다. 언제 어느 것을 써야 할지 알면 코드가 훨씬 깔끔해집니다. CDS Query API 사용 // CDS Qu

이 글이 답하는 질문 CAP Java에서 System.out.println 뭐가 문제인가? SLF4J 어떻게 쓰나? 실무에서 꼭 알아야 할 logging 패턴 3가지는? println을 쓰면 안 되는 이유 로그 레벨 없음 — DEBUG/INFO/WARN/ERROR 구분 불가 운영 환경에

CAP Java에서 CdsService 를 직접 쓰면 문자열 쿼리 대신 타입 안전한 빌더 API로 데이터를 조회할 수 있습니다. OData 핸들러 밖에서도 CAP 엔티티를 쿼리해야 할 때 실제로 어떻게 쓰는지 코드로 확인해봅니다. 이 글이 답하는 질문 CdsService vs Entit

TL;DR CAP for Java 프로젝트에서 Jacoco를 설정하면 테스트 커버리지를 자동으로 측정하고, 기준 미달 시 빌드를 실패시킬 수 있습니다. 이 글이 답하는 질문 CAP Java에서 코드 커버리지를 어떻게 측정하나? Jacoco 플러그인 설정은 어떻게 하나? 커버리지 목표(6

CAP Java Service란? CAP for Java에서 서비스 로직은 EventHandler 를 구현한 컴포넌트 클래스에 작성합니다. 핵심은 @ServiceName 으로 대상 서비스를 정확히 지정하는 것입니다. 이 어노테이션이 없으면 이벤트가 핸들러로 라우팅되지 않습니다. @Ser

CAP Java 인증 설정, 빼먹으면 진짜 큰일 CAP Java 애플리케이션을 BTP에 배포할 때 인증 설정을 빠뜨리면 엔드포인트가 외부에 그대로 노출 된다. XSUAA와 JWT 설정 방법을 핵심만 정리했다. 기본 보안 설정 — xs-security.json BTP에서 XSUAA 서비스

@Component + implements EventHandler 두 마커의 조합으로 CAP Java 런타임이 Spring 컴포넌트 스캔에서 핸들러를 자동 발견하는 메커니즘, @ServiceName/@Before/@On/@After 라우팅 테이블 구축 원리, @HandlerOrder 실

CAP Java Multitenancy — 90%가 놓치는 핵심 3가지 CAP for Java에서 멀티테넌시를 구현할 때 대부분 MTX Sidecar 설정에서 막힙니다. 2026년 4월 릴리스 기준으로 놓치기 쉬운 핵심 포인트를 정리했습니다. 1. MTX Sidecar 헬스체크 타임아웃