
CAP Java 목록이 느린 진짜 원인은? 왕복 횟수 #shorts #SAP #CAPforJava
이 글이 답하는 질문 목록 화면이 건수가 늘수록 느려지는데, 쿼리는 한 번뿐인 것 같다면 어디를 봐야 하나? 필요한 필드만 고르는 것이 실제로 얼마나 차이를 만드는가? 연관 데이터를 가져올 때 확장과 개별 조회 중 무엇을 골라야 하나? 대량 저장에서 건별 처리와 묶음 처리는 어디서 갈리

이 글이 답하는 질문 목록 화면이 건수가 늘수록 느려지는데, 쿼리는 한 번뿐인 것 같다면 어디를 봐야 하나? 필요한 필드만 고르는 것이 실제로 얼마나 차이를 만드는가? 연관 데이터를 가져올 때 확장과 개별 조회 중 무엇을 골라야 하나? 대량 저장에서 건별 처리와 묶음 처리는 어디서 갈리

📖 개요 및 핵심 체크리스트 CAP Java 프로젝트가 커지면 어느 순간 이런 질문이 반복됩니다. "이 필드는 @readonly 로 막아야 하나, 아니면 핸들러에서 검사해야 하나?" "권한은 @requires 인가 @restrict 인가?" 어노테이션은 종류가 많은 데다 이름이 비슷해
📖 개요: 이 글에서 다루는 것 CAP Java 프로젝트에서 CDS 어노테이션은 단순한 메타데이터가 아니라, 런타임 동작(검증·권한·CRUD 제한)과 UI 렌더링을 실제로 바꾸는 선언적 계약입니다. 문제는 "어떤 어노테이션을 CDS에 걸고, 어떤 로직을 Java 핸들러로 내려야 하는가

개요: 왜 CDS 모델 확장을 알아야 하는가 CAP(Cloud Application Programming Model) 프로젝트가 커지면 하나의 CDS 모델을 여러 팀, 여러 앱이 공유하게 됩니다. 이때 원본 모델 파일을 직접 고치지 않고 필드·연관·어노테이션을 덧붙이는 기법이 바로 CD

📖 이 글에서 다루는 내용 전통적인 Java 엔터프라이즈 개발에서는 이벤트 리스너 하나를 붙이려면 XML 설정 파일에 bean을 선언하고 wiring을 관리해야 했습니다. CAP Java(SAP Cloud Application Programming Model)는 이 과정을 뒤집었습니다

개요: 이 글에서 다루는 것 SAP CAP(Cloud Application Programming Model) Java 애플리케이션에서 @requires 어노테이션은 인증(Authentication)과 역할 기반 접근 제어를 선언적으로 처리하는 핵심 도구입니다. 이 글에서는 물류 창고 운

📖 개요 — 이 글에서 다루는 것 CAP Java 프로젝트에서 트랜잭션은 대부분 프레임워크가 알아서 열고 닫아 주기 때문에, 격리 수준(Isolation Level)을 의식하지 않고 개발하는 경우가 많습니다. 그러다 동시 요청이 몰리는 재고 차감, 채번, 잔액 갱신 로직에서 갱신 유실
도입 — 정산 배치가 절반만 커밋되는 사고, 어디서 시작됐을까 CAP Java로 서비스를 만들다 보면 초반에는 트랜잭션을 의식할 일이 거의 없습니다. 프레임워크가 요청 단위로 알아서 커밋과 롤백을 처리해 주기 때문입니다. 그런데 어느 순간 이런 요구사항이 들어옵니다. "정산 배치 1만

이 글에서 다루는 내용 CAP for Java 이벤트 핸들러를 작성하다 보면 "지금 들어온 요청이 어떤 엔티티를, 어떤 키로, 어떤 조건으로 조회하는가"를 알아야 하는 순간이 반드시 옵니다. 이때 cqn.toString() 결과를 문자열로 잘라 쓰는 코드는 당장은 동작해도 확장 시 반드

개요: 왜 모든 오류가 500으로 나가는가 CAP Java로 서비스를 개발하다 보면, 핸들러 안에서 발생한 예외가 아무 처리 없이 그대로 올라가 클라이언트에게 500 Internal Server Error 로 반환되는 상황을 자주 만납니다. 재고 부족처럼 명백한 "업무 오류"조차 500

📖 개요: CAP Java 트랜잭션 롤백, 왜 자꾸 어긋나는가 SAP CAP(Cloud Application Programming Model) for Java는 개발자가 트랜잭션 경계를 직접 열고 닫지 않아도 되도록 ChangeSet 컨텍스트 라는 추상화를 제공합니다. 편리하지만, 이

📖 개요 및 이 글에서 다루는 것 CAP Java 애플리케이션이 자기 데이터베이스만 바라보는 경우는 드뭅니다. 실무에서는 S/4HANA의 OData API나 다른 팀이 만든 마이크로서비스를 호출해 데이터를 합쳐 보여줘야 하는 상황이 훨씬 많습니다. 이 글에서는 CAP Java의 Rem

📖 개요: Before와 After, 이름만 보고 쓰면 반드시 사고가 난다 CAP Java에서 커스텀 핸들러를 처음 작성할 때 가장 많이 겪는 사고는 문법 오류가 아니라 "코드는 정상 실행됐는데 DB에는 아무 것도 반영되지 않는" 침묵의 버그 입니다. 특히 @After 핸들러에서 엔티
개요 — 핸들러 실행 순서를 알아야 하는 이유 CAP Java(SAP Cloud Application Programming Model, Java 런타임)에서 커스텀 비즈니스 로직은 @Before , @On , @After 세 페이즈(Phase)의 이벤트 핸들러로 작성합니다. 이 세 페이

개요: 핸들러 실행 순서를 알아야 하는 이유 CAP Java(SAP Cloud Application Programming Model, Java 런타임)에서 커스텀 로직은 @Before , @On , @After 세 가지 페이즈(Phase)의 이벤트 핸들러로 작성합니다. 문제는 이 세 페
1. 왜 런타임 선택이 CAP 프로젝트의 첫 번째 관문인가 SAP Cloud Application Programming Model(CAP)은 하나의 프레임워크지만, 실제 서비스를 구현하는 런타임은 Java와 Node.js 두 가지로 나뉩니다. CDS(Core Data Services)

개요 및 이 글에서 다루는 내용 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