피드로 돌아가기
Sync and manage contacts across providers: Nylas Contacts API
Dev.toDev.to
Backend

단일 Schema 기반 Multi-Provider 주소록 통합 추상화 설계

Sync and manage contacts across providers: Nylas Contacts API

Qasim2026년 6월 21일7intermediate

Context

Google People API와 Microsoft Graph API의 상이한 데이터 모델 및 쿼리 구조로 인한 통합 비용 발생. 주소록 데이터가 단순 저장 목록 외에 자동 수집 및 조직 디렉토리 등 다수 소스로 분산되어 발생하는 데이터 파편화 문제 해결 필요.

Technical Solution

  • 서로 다른 Provider API를 단일 Schema와 grant_id 기반의 통합 엔드포인트로 추상화한 Unified API 계층 설계
  • 데이터 성격에 따라 address_book, inbox, domain으로 구분한 Source 필드 도입을 통해 데이터 필터링 정밀도 향상
  • 다중 값 필드(emails, phone_numbers)를 Array 구조로 모델링하여 Provider별 데이터 보유량 차이에 대응
  • Profile Photo를 Contact 레코드와 분리하여 별도 엔드포인트로 제공함으로써 페이로드 최적화 및 불필요한 바이트 전송 방지
  • Provider별 최대 값 제한(iCloud 1개, MS 3개 등) 및 필드 타입 제약 사항을 API Layer에서 매핑하여 데이터 손실 가능성 제어

- 외부 API 통합 시 Provider별 데이터 모델 차이를 수용하는 Unified Schema 설계 검토 - 데이터 소스의 성격(의도적 저장 vs 자동 수집)을 명시적으로 구분하여 UX/UI 필터링 전략 수립 - 대용량 바이너리 데이터(이미지 등)는 메인 객체와 분리하여 Lazy Loading 구조 채택 - Provider별 제약 사항(Max Limit)을 정의하고 데이터 동기화 시 Silent Loss 방지 로직 구현

원문 읽기