CAP Java Multitenancy 90% 틀리는 이유 #shorts #SAP #CAPforJava
Moderator
CAP Java Multitenancy — 90%가 놓치는 핵심 3가지
CAP for Java에서 멀티테넌시를 구현할 때 대부분 MTX Sidecar 설정에서 막힙니다. 2026년 4월 릴리스 기준으로 놓치기 쉬운 핵심 포인트를 정리했습니다.
1. MTX Sidecar 헬스체크 타임아웃 설정
기본값은 1초(1s)인데, 느린 네트워크나 콜드 스타트 환경에서는 헬스체크가 실패해 테넌트 구독이 안 됩니다. 2026년 4월 신기능으로 타임아웃이 설정 가능해졌습니다.
# application.yaml
cds:
multitenancy:
health-check:
timeout: 5s # 기본 1s → 환경에 맞게 조정 필수
2. cds-starter-cloudfoundry 의존성 누락
멀티테넌시에 필요한 XSUAA 인증·HANA 지속성·CF 환경 지원은 이 번들 하나에 들어 있습니다. 빠지면 XSUAA 토큰 검증부터 실패합니다.
<dependency>
<groupId>com.sap.cds</groupId>
<artifactId>cds-starter-cloudfoundry</artifactId>
</dependency>
3. 테넌트 구독 핸들러 미구현
구독·해제 이벤트에 커스텀 로직(DB 스키마 초기화, 데이터 마이그레이션)을 추가하려면 TenantProviderService를 직접 구현해야 합니다.
@Component
public class MyTenantHandler implements TenantProviderService {
@Override
public void subscribeTenant(SubscribeTenantContext ctx) {
// 커스텀 DB 스키마 초기화 로직
String tenant = ctx.getTenantId();
// 테넌트별 스키마 생성 및 마이그레이션
}
@Override
public void unsubscribeTenant(UnsubscribeTenantContext ctx) {
// 테넌트 데이터 정리 로직
}
}