본문으로 건너뛰기
개념

App 간 연동 방식 선택하기

현재 조회, 사실 전달, 집계, 호스트 기능 중 필요한 경로를 고릅니다.

App 간 연동 방식 선택하기

요구에 맞는 경로를 고르고 해당 구현 가이드로 진행합니다. 코드를 쓰기 전에 소유 App, 사용자 권한, 상대 App을 사용할 수 없을 때의 동작을 정하세요.

필요한 일방식구현 안내
다른 App의 현재 레코드 선택·조회인가된 Resource ReferenceResource Reference
커밋된 사실에 반응공개 Event와 멱등 소비자이벤트와 비동기 작업 처리하기
여러 App 지표를 나란히 표시App 소유 Dashboard widgetDashboard Widget 추가
제한된 Resource 관계를 한 표로 구성Core Resource CompositionDashboard Widget 추가
여러 사실로 통합 지표 유지소비자 소유 Event projection이벤트와 비동기 작업 처리하기
전자결재·비즈니스 프로세스 실행전용 Core 런타임 계약전자 결재, 업무 프로세스
다른 App의 사용 가능 상태 보장Manifest 선행 조건과 별도 데이터 경로App Manifest 계약

다른 App의 패키지 import·테이블 조회·FK·트랜잭션 공유는 하지 않습니다. 하나의 불변 조건을 위해 양쪽에서 원자적으로 써야 한다면 업무 소유자를 다시 정합니다.

확인

소유자와 데이터 경로가 명확해야 합니다. 선택한 방식에 맞게 소유 App 사용 불가, 참조 거부, 중복 Event, 오래된 projection을 검사합니다.

현재 레코드와 채택 당시 증거

{app_key, resource_key, resource_id}를 저장하며 resource_id에는 소유 App이 정한 공개 식별자를 사용합니다. 소유자가 현재 사용자·범위·시점·목적에 맞는 안전한 뷰를 반환합니다. 표시용 fallback은 현재 상태가 아닙니다. 없음과 접근 거부를 구분하려고 소유 테이블을 조회하지 마세요.

마감 시 채택한 내용을 보존해야 한다면 인가된 snapshot에 as_of, revision, content hash를 남깁니다. 증거임을 표시하고 현재 상태가 필요할 때 다시 resolve합니다. 보호 필드는 snapshot·검색·디버그 출력에서 제외합니다.

available, absent, disabled, failed, stale, unauthorized를 구분합니다. 부재 fallback은 absent에만 적용하며 거부나 실패를 추측값으로 대체하지 않습니다.

사람을 고르는 필드는 필요한 선택 프로필의 directory.party를 사용합니다. Membership eligibility는 후보를 줄일 뿐 권한을 부여하지 않습니다. 정확한 고용 관계는 소유 도메인에서 제공해야 할 수 있습니다. 판단 기준은 Resource Reference에 있습니다.

업무 요청과 결과 수신

Event 위임은 비동기입니다. 요청 사실을 발행하고 상관관계가 연결된 별도 결과를 받습니다. 로컬 상태를 바꾸기 전에 producer·schema·tenant·범위·공개 식별자를 검증하세요. 고정 멱등 키와 거부·재시도·timeout·늦은 결과의 처리 규칙이 필요합니다. HandoffResultState는 공통 결과 어휘이며 업무 상태는 각 App이 소유합니다.

Projection에는 지연이 있습니다. 재생·재조정 경로를 제공하고 판단에 영향을 주는 오래된 상태는 표시합니다. 복사한 필드를 또 하나의 원본으로 취급하지 않습니다.

Dashboard 구성

독립 widget은 각 App의 인가된 질의를 사용합니다. 관련 Resource를 하나의 표로 구성할 때 Core는 catalog가 증명한 관계, source alias, 독립 인가를 갖춘 제한된 그래프만 허용합니다. Raw SQL·임의 join·자동 관계 탐색은 제공하지 않습니다. 그 밖의 집계는 projection이나 적절한 호스트 계약으로 구현합니다.

플랫폼 책임일 때만 SDK에 추가

기존 SDK 기능을 먼저 사용합니다. 새 계약은 지속적인 App-neutral 호스트 책임이어야 하며 어느 App 하나가 없거나 대체되어도 의미가 있어야 합니다. 특정 App 조합의 DTO를 두 곳에서 사용한다는 이유만으로 SDK에 넣지 않습니다. 업무 규칙은 소유 App에 두고 Core가 호스트 실행의 tenant·actor context를 복원하도록 합니다.

App 테스트하기에서 소유 App 부재·비활성, 참조 거부, 중복·늦은 결과와 재조정을 검사합니다. 선행 설치 조건 검사로 데이터 전달이나 인가까지 증명할 수는 없습니다.

원본 위치: docs/developers/content/ko/building-apps/choose-cross-app-integration.md