서드 파티 쿠키 변경사항에 대한 Tray의 접근 방식

Tray은 브라질 소매 시장에 20년 넘게 서비스를 제공해 온 전자상거래 콘텐츠 관리 시스템 (CMS) 제공업체입니다. 판매자는 Tray's 인프라에서 온라인 상점을 운영하며, 이 인프라는 비즈니스 물류, 결제, 프로모션, 보고를 관리하는 서비스와 통합도 제공합니다.

TrayLWSA 그룹의 회원이며 전자상거래 부문의 원동력입니다. Tray는 2024년 1분기에 총 30억 달러가 넘는 GMV를 창출한 18만 명 이상의 고객으로부터 신뢰를 받고 있습니다.

tray.com.br 웹사이트의 홈페이지

서드 파티 쿠키 사용

Tray's 기술 아키텍처는 서드 파티 쿠키 (3PC)를 사용하여 판매자 사이트, 특히 매장 관리에 사용되는 판매자의 백오피스 관리 패널에 서드 파티 기능을 제공합니다. 이러한 쿠키는 판매자의 도메인이 아닌 도메인에 호스팅된 서드 파티 애플리케이션에서 제공하는 콘텐츠를 렌더링하는 데 필수적입니다. Tray's 연구에 따르면 브라우저에서 3PC를 처리하는 방식을 변경할 계획이 있으면 이 기능이 중단될 수 있습니다. Tray는 많은 온라인 소매업체의 중요한 인프라 역할을 하기 때문에 Chrome 및 기타 브라우저에서 3PC를 처리하는 방식이 크게 변경되는 동안에도 비즈니스를 평소와 같이 계속할 수 있어야 합니다.

이 케이스 스터디에서는 Tray's의 잠재적 서비스 중단 발견, 잠재적 해결 방법 평가, 사이트가 3PC 변경에 대비할 수 있도록 마련된 성공적인 해결 방법을 살펴봅니다.

기술 아키텍처

마이크로서비스

Tray는 모든 스토어 및 백오피스 애플리케이션을 자체 도메인인 tray.com.br에 호스팅하며 판매자는 CNAME을 사용하여 자체 맞춤 도메인에서 이러한 애플리케이션을 제공할 수 있습니다. 이 설정을 사용하면 쇼핑객에게 merchant.example과 같은 매장의 도메인만 표시됩니다. Tray는 마이크로서비스 아키텍처를 활용하여 기능을 제공합니다. 이 접근 방식은 각각 특정 기능에 중점을 둔 독립형의 자체 포함 애플리케이션을 사용합니다. 그런 다음 이러한 마이크로서비스는 기능적 기능에 따라 범위로 그룹화됩니다.

  • 스토어: 제품 표시, 검색, 테마 관리와 같은 스토어 기능을 담당하는 애플리케이션을 포함합니다.
  • 구매 흐름: 구매 여정 중에 장바구니, 결제 절차, 고객 상호작용을 관리합니다.
  • 스토어 관리: 관리, 보고, 데이터 가져오기와 같은 작업을 위한 백오피스 애플리케이션을 제공합니다.
  • 통합: 외부 플랫폼과의 연결을 지원하여 교차 마켓플레이스 등록정보를 사용 설정하고 물류를 관리하는 등의 작업을 할 수 있습니다.

백오피스 애플리케이션

Backoffice는 스토어 관리 내의 핵심 애플리케이션으로, Tray의 판매자 가상 스토어를 위한 중앙 관리 패널 역할을 합니다. 이 패널을 통해 판매자는 다음 작업을 할 수 있습니다.

  • 제품 등록
  • 배송 및 결제 수단 구성
  • 프로모션 만들기
  • 라이브 방송 관리
  • 주문 흐름 감독
  • 판매 보고서 모니터링

Backoffice는 Tray에서 운영하는 마이크로서비스와 서드 파티에서 운영하는 마이크로서비스를 단일 인터페이스로 통합하므로 서드 파티 쿠키가 처리되는 방식이 변경되면 특히 서비스가 중단될 수 있습니다.

판매자 맞춤설정을 위한 CNAME

TrayCNAME 레코드를 사용하여 스토어를 원활하게 통합합니다.

판매자는 새 매장을 설정할 때 CNAME을 설정하여 요청을 Tray's 도메인(tray.com.br)에 호스팅된 애플리케이션으로 전달할 수 있습니다. 즉, 고객이 판매자의 웹사이트(예: example.com)를 방문하면 CNAME 레코드가 주소 표시줄에 판매자의 URL을 유지하면서 고객을 Tray's 도메인으로 리디렉션합니다. 이렇게 하면 판매자의 웹사이트에서 직접 콘텐츠가 게재되는 것처럼 원활한 사용자 환경을 제공할 수 있습니다.

CNAME 이해하기

CNAME 레코드는 휴대전화의 전화 전달과 비슷하게 작동합니다. 친구의 전화번호 555-0199로 전화를 걸었지만 친구가 받지 않는다고 가정해 보겠습니다. 통화가 555-0100과 같은 다른 번호의 음성사서함으로 전달될 수 있습니다. 하지만 호출자는 이 리디렉션을 전혀 인식하지 못합니다. 휴대전화가 원활하게 연결되고 음성사서함 인트로에 친구의 원래 번호 (555-0199)가 계속 표시됩니다.

CNAME은 웹사이트에서도 동일하게 작동합니다. 사용자가 판매자의 웹사이트 (예: example.com)를 방문하면 CNAME 레코드가 백그라운드에서 요청을 assets.example.com와 같은 다른 서버로 리디렉션할 수 있습니다. 하지만 사용자와 브라우저의 관점에서는 모든 작업이 example.com에서 이루어집니다. 주소 표시줄에는 판매자의 URL이 표시되며 사용자는 콘텐츠가 해당 도메인에서 직접 제공된 것처럼 웹사이트와 상호작용합니다.

잠재적 서비스 중단 평가

Tray's 3PC 처리에 대한 계획된 변경사항을 분석한 결과 백오피스 애플리케이션에 중단이 발생한 것으로 확인되었습니다. 서드 파티 쿠키가 차단되면 백엔드 페이지에 삽입된 iframe 내의 다른 도메인에서 페이지를 로드할 때 문제가 발생했습니다. 이는 회사 자체 서비스에 속한 내부 도메인과 API를 사용하여 Tray와 통합되는 애플리케이션을 개발하는 외부 파트너에게 적용되었습니다.

예를 들어 backoffice.merchant.example의 페이지에 tray.com.br 및 기타 서드 파티에서 호스팅하는 콘텐츠가 삽입되어 있다고 가정해 보겠습니다. 브라우저는 도메인 차이로 인해 이 삽입된 콘텐츠를 서드 파티로 취급하여 서드 파티 제한에 따라 제한할 수 있습니다.

이 설정은 다음과 같은 여러 문제를 일으킬 수 있습니다.

  • 세션 손상: 차단된 서드 파티 컨텐츠로 인해 영향을 받는 세션이 손상되어 사용자가 여러 번 로그인해야 하거나 iframe이 제대로 작동하지 않아 백오피스 페이지가 중단되거나 일관성이 유지되지 않을 수 있습니다.
  • 통합 문제: API를 사용하여 Tray's 백엔드와 통합하는 파트너 애플리케이션 및 내부 서비스는 3PC 제한으로 인해 유사한 어려움을 겪을 수 있습니다.

다음 그림은 이 시나리오를 보여줍니다.

  • 사용자가 merchant.example에 호스팅된 백오피스 애플리케이션에 액세스합니다.
  • 삽입된 애플리케이션은 서로 다른 도메인에 있습니다. 일부는 Tray가 소유한 tray.com.br에 있고, 일부는 서드 파티 공급업체 도메인 (third-party.example)에 있습니다.
  • 이 도메인 차이로 인해 3PC 제한이 트리거되어 삽입된 애플리케이션에 문제가 발생할 수 있습니다.
CNAME 예시를 보여주는 다이어그램: backoffice.merchant.example의 위젯은 CNAME을 상속하므로 모두 판매자 사이트에 대해 SameSite입니다.

중요한 사용자 여정 테스트

Tray's 테스트 및 분석은 서드 파티 통합과 많은 사용자가 서드 파티 쿠키 없이 탐색하는 미래에 대비하는 데 중점을 두고 웹사이트 성능과 사용자 경험을 개선하는 것을 목표로 했습니다.

Tray개인 정보 보호 샌드박스 분석 도구 (PSAT)와 Chrome DevTools를 사용하여 고객 및 판매자의 주요 사용자 흐름을 분석했습니다. 이를 위해 iframe 내 페이지 로드를 테스트하고, 사용자 세션이 유효한지 확인하고, 서드 파티 애플리케이션이 예상대로 계속 작동하는지 확인했습니다. 테스트에서는 다양한 사용자 역할, 기기, 브라우저(Chrome, Firefox, Safari 포함)를 포함하여 잠재적인 교차 브라우저 호환성 문제를 파악했습니다. Tray는 PSAT 및 Chrome 개발자 도구를 사용하여 쿠키를 분류하고 사용자 환경에 미치는 영향을 평가했습니다.

이 분석은 서드 파티 쿠키가 제한되거나 사용할 수 없는 미래에 대비하여 원활하고 일관된 사용자 환경을 보장하기 위한 중요한 단계였습니다.

개인 정보 보호 샌드박스 솔루션 분석

Storage Access API

Storage Access API(SAA)는 Tray's 중단을 해결할 수 있고 모든 주요 브라우저에서 지원되지만 다음 두 가지 주요 이유로 비즈니스에 적합하지 않았습니다.

  1. 삽입된 콘텐츠는 여러 사이트에서 동일한 쿠키에 액세스하는 것이 아니라 삽입된 출처의 쿠키에만 액세스하면 되었습니다.
  2. SAA와 관련된 브라우저 메시지는 특히 사이트 전반에서 사용자를 추적하는 데 쿠키가 사용되지 않았기 때문에 이상적이지 않았습니다.

CHIPS

CHIPS는 교차 사이트 삽입을 위한 우수한 사용자 환경을 갖춘 강력한 솔루션을 제공했습니다. Partitioned 속성은 구현하기 쉽고 Chrome 사용자의 사용자 상호작용에 눈에 띄는 영향을 미치지 않았습니다. Tray에서 서비스를 변경할 때 다른 주요 브라우저에서 CHIPS를 지원하지 않았으므로 Tray에서는 브라우저 전반에서 일관된 환경을 제공하기 위해 소유 및 운영하는 삽입을 최상위 애플리케이션과 동일한 사이트로 이동하기로 결정했습니다. 서드 파티 삽입된 콘텐츠는 Chrome의 CHIPS를 사용하며 다른 브라우저에서는 새 창 (퍼스트 파티 컨텍스트)을 엽니다. 그러나 Tray's 초기 구현 이후 Firefox는 곧 CHIPS를 출시할 계획을 확인했으며 Safari는 기술 미리보기부터 Partitioned 속성에 대한 지원을 추가하기 시작했습니다.

Google은 CHIPS가 우아한 솔루션이라고 생각했으며 여러 브라우저에서 채택되고 있어 기쁩니다. Google은 모든 브라우저가 CHIPS를 채택하기 전에도 지원할 수 있도록 퍼스트 파티 사이트로 이전하는 것 외에도 CHIPS 솔루션을 유지하기로 결정했습니다.

— 다카시 타나카, Tray CTO

브라우저 호환성, W3C, 표준

Chrome은 표준 커뮤니티에서 중요한 역할을 합니다. W3C 작업반PrivacyCG와 같은 커뮤니티 그룹에 적극적으로 참여하는 것은 더 광범위한 브라우저 생태계가 새로운 웹 기술을 채택하도록 영향을 미치는 데 중요합니다.

개인 정보 보호 샌드박스는 웹 생태계와 협력하여 업계의 의견과 참여도에 따라 CHIPS와 같은 API를 지속적으로 개선합니다. 이러한 투명하고 표준 중심의 접근 방식은 다른 주요 브라우저에서 CHIPS를 채택하는 데 중요한 역할을 했습니다.

Tray는 모든 유형의 기기와 브라우저에서 판매자와 고객을 지원합니다. CHIPS 기반 접근 방식만 사용하는 것이 좋았지만 당시 CHIPS를 지원하지 않는 다른 브라우저를 지원하기 위해 추가 변경사항도 적용되었습니다.

Tray's 접근 방식은 3PC를 사용할 수 없을 때 발생하는 서비스 중단을 해결하기 위해 두 가지 주요 전략을 사용했습니다.

1. 내부 애플리케이션

삽입된 콘텐츠의 소스가 판매자가 설정한 CNAME을 상속하도록 실시간 상점, Dropshipping, 인보이스 발급자를 비롯한 완전히 운영되는 Tray 마이크로서비스를 업데이트했습니다. 간단히 말해 삽입된 콘텐츠가 삽입된 페이지와 함께 퍼스트 파티로 업데이트되어 서드 파티 쿠키 변경으로 인한 서비스 중단이 없었습니다.

2. 서드 파티 애플리케이션

백오피스를 통해 액세스하는 서드 파티 애플리케이션의 경우 Tray는 더 동적인 접근 방식을 구현했습니다. 방법은 다음과 같습니다.

  • 파티션화된 속성 구현: Partitioned 쿠키 속성의 구현이 신뢰할 수 있는 공급업체를 위해 유지되어 서드 파티 애플리케이션이 CHIPS를 지원하는 브라우저에서 쿠키를 효과적으로 설정할 수 있습니다.
  • 서드 파티 쿠키가 차단된 경우: 사용자의 브라우저에서 서드 파티 쿠키를 차단하면 서드 파티 애플리케이션이 새 퍼스트 파티 창에서 열립니다. 이렇게 하면 열기 문제가 방지되고 3PC 제한이 있더라도 계속 작동할 수 있습니다.
  • 서드 파티 쿠키가 허용되는 경우: 사용자의 브라우저에서 서드 파티 쿠키를 허용하는 경우 애플리케이션은 이전과 같이 iframe 내에서 계속 열립니다.

솔루션 시각화

다음 그림은 솔루션을 보여줍니다. 스토어의 기본 도메인 (merchant.example)을 상속하여 모든 삽입된 애플리케이션이 동일한 소스에서 비롯된 것처럼 보입니다. 이렇게 하면 모든 위젯이 서로 퍼스트 파티가 되므로 서드 파티 제한이 적용되지 않습니다. 이러한 모든 프레임은 서로 퍼스트 파티가 되므로 개인 정보 보호 원칙은 다른 퍼스트 파티 쿠키의 원칙을 따릅니다. 즉, 퍼스트 파티 컨텍스트에서만 액세스할 수 있으며 교차 사이트 추적 가능성을 제한합니다.

Tray가 소유하지 않은 서드 파티 서비스는 Partitioned 속성을 사용하여 CHIPS 쿠키를 설정합니다. 즉, 설정된 컨텍스트에서만 액세스할 수 있으며 교차 사이트 추적 가능성을 제한합니다.

CHIPS 예시를 보여주는 다이어그램: 퍼스트 파티 도메인으로 이동된 위젯은 퍼스트 파티 쿠키 저장소에 액세스할 수 있습니다. 서드 파티 위젯은 파티션된 쿠키 저장소를 사용합니다.

요약

  • 웹에서 개인 정보 보호를 위한 일률적인 해결책은 없습니다. 개인 정보를 보호하면서도 원활한 사용자 환경을 제공하는 방법은 다양합니다.
  • 리소스를 동일한 최상위 도메인으로 통합하면 서드 파티 쿠키 제한이 있더라도 쿠키가 작동할 수 있습니다.
  • CHIPS는 모든 리소스를 동일한 최상위 사이트로 이전하는 것보다 쉬운 솔루션일 수 있습니다.
  • Tray's 솔루션은 지속 가능하며 여러 브라우저에서 작동합니다. 추가 브라우저에서 CHIPS 지원을 구현함에 따라 Tray's과 같은 시나리오에 적합한 안정적인 교차 브라우저 솔루션으로 간주될 수 있습니다.