찬란하게

Salesforce <-데이터교환-> 외부시스템 본문

SaaS/Salesforce Certi

Salesforce <-데이터교환-> 외부시스템

체리핫 2024. 11. 29. 23:23

Salesforce와 외부 시스템 간 데이터 교환 방식

1. REST API

Salesforce와 외부 시스템 간 실시간 데이터 교환에 가장 널리 사용되는 방법.

특징

  • 경량 프로토콜: JSON 또는 XML 형식을 사용.
  • HTTP 메서드: GET, POST, PUT, DELETE를 통해 CRUD 작업 수행.
  • OAuth 인증: 안전한 데이터 교환을 위한 인증 방식.

사용 사례

  • 모바일 또는 웹 애플리케이션에서 Salesforce 데이터 조회 및 업데이트.
  • 실시간으로 데이터를 교환해야 하는 경우.

예시


2. SOAP API

XML 기반의 데이터 교환 프로토콜로, 복잡한 시스템 통합에 적합.

특징

  • 엄격한 표준: WSDL(Web Service Description Language)을 사용.
  • 보안 및 트랜잭션 지원: WS-Security 프로토콜을 활용.
  • 레거시 시스템과 호환성: 기존 SOAP 프로토콜 기반의 시스템과 쉽게 통합 가능.

사용 사례

  • 레거시 시스템이 Salesforce 데이터에 접근하거나 통합될 때.
  • 보안이 중요한 대규모 기업 시스템에서 사용.

예시

xml
코드 복사
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="urn:partner.soap.sforce.com"> <soapenv:Body> <web:query> <web:queryString>SELECT Name FROM Account LIMIT 10</web:queryString> </web:query> </soapenv:Body> </soapenv:Envelope>

3. Bulk API

대량 데이터 삽입, 업데이트, 삭제 또는 쿼리 작업을 위한 API.

특징

  • 비동기 처리: 대규모 데이터 작업을 배치로 처리.
  • CSV 파일 지원: 대량 데이터 로드에 적합한 형식 사용.
  • 성능 최적화: 대량 데이터 처리 속도를 높임.

사용 사례

  • 대규모 데이터 마이그레이션.
  • 정기적인 대량 데이터 업데이트 및 삽입.

예시

http
코드 복사
POST https://yourInstance.salesforce.com/services/data/v54.0/jobs/ingest Authorization: Bearer Content-Type: application/json { "object": "Account", "contentType": "CSV", "operation": "insert" }

4. Platform Events

Salesforce에서 발생하는 이벤트를 외부 시스템에 실시간으로 알림.

특징

  • 이벤트 기반 아키텍처: 이벤트를 발생시키고 구독하는 방식.
  • 비동기 통신: 외부 시스템이 Salesforce 이벤트를 구독하고 처리 가능.
  • 확장성: 여러 시스템에서 동일한 이벤트를 수신 가능.

사용 사례

  • 실시간으로 Salesforce에서 외부 시스템으로 상태 변경 알림.
  • 주문, 사용자 활동 등 특정 이벤트 기반 프로세스 처리.

예시

apex
코드 복사
// Platform Event 정의 public class OrderCreatedEvent__e { @PlatformEvent public String OrderId; public String Status; }

5. Outbound Messages

워크플로우 규칙 또는 프로세스 빌더를 통해 외부 시스템으로 데이터를 자동 전송.

특징

  • 자동화된 통합: Salesforce에서 조건이 충족되면 외부 시스템에 메시지 전송.
  • HTTP POST 방식: 메시지 전달을 위해 SOAP 프로토콜 사용.
  • 코드 불필요: 클릭 기반으로 설정 가능.

사용 사례

  • 주문 생성, 상태 변경 등 조건 충족 시 외부 시스템으로 알림 전송.
  • 간단한 자동화가 필요한 경우.

예시

xml
코드 복사
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <notification> <sObject> <AccountId>0012w00000F1LhaAA</AccountId> <Amount>1000</Amount> </sObject> </notification> </soapenv:Body> </soapenv:Envelope>

6. Apex Callouts

Apex 코드에서 외부 시스템의 REST 또는 SOAP API 호출.

특징

  • 커스터마이징 가능: REST 또는 SOAP API 호출을 완벽히 제어.
  • Apex 클래스를 통해 복잡한 비즈니스 로직 처리.

사용 사례

  • Salesforce에서 외부 API 호출 및 데이터 가져오기.
  • 외부 시스템과 Salesforce 간의 복잡한 양방향 통합.

예시

apex
코드 복사
Http http = new Http(); HttpRequest request = new HttpRequest(); request.setEndpoint('https://api.example.com/data'); request.setMethod('GET'); request.setHeader('Authorization', 'Bearer '); HttpResponse response = http.send(request);

비교표

방식특징사용 사례

     
REST API 경량, 실시간, JSON 형식 실시간 데이터 교환, 웹/모바일 앱 통합
SOAP API XML 기반, 보안 및 트랜잭션 지원 복잡한 시스템 통합, 레거시 시스템 연동
Bulk API 대량 데이터 처리, 비동기 처리 대규모 데이터 로드, 데이터 마이그레이션
Platform Events 이벤트 기반, 실시간 알림 실시간 상태 변경 알림, 이벤트 기반 통합
Outbound Messages 자동화된 워크플로우 메시지 전송 간단한 조건 기반 통합
Apex Callouts 코드 기반, REST/SOAP 호출 지원 외부 API 호출, 복잡한 비즈니스 로직

 

'SaaS > Salesforce Certi' 카테고리의 다른 글

PD1 202407 - 해설#1 Governor Limits  (0) 2024.11.30
Salesforce 주요 Annotation  (1) 2024.11.30
Salesforce Apex Testing  (0) 2024.11.29
Salesforce WorkFlow VS Flow  (1) 2024.11.28
Salesforce 자동화도구 총정리  (0) 2024.11.27