#Backend

프라이버시 우선 연결: 에어비앤비의 소셜 경험 강화를 위한 기술적 접근

프라이버시 우선 연결: 에어비앤비의 소셜 경험 강화를 위한 기술적 접근
01

Summary

에어비앤비가 '프라이버시'와 '소셜'이라는 두 마리 토끼를 잡는 법: Profile ID 분리 전략

데이터 결합은 막고 소셜 연결은 돕는 에어비앤비의 컨텍스트 기반 아키텍처 설계기

에어비앤비는 'Privacy by Design' 철학을 바탕으로 사용자의 내부 데이터와 외부 프로필을 분리하는 거대한 마이그레이션을 단행했습니다. 단순한 기능 추가를 넘어 시스템 아키텍처 수준에서 프라이버시를 보호하는 기술적 여정을 소개하며, 대규모 서비스에서 신원 관리(Identity Management)를 어떻게 다루어야 하는지에 대한 통찰을 제공합니다.

  • 01User(내부 정보)와 Profile(외부 노출) 개념의 명확한 분리 및 정의
  • 02컨텍스트마다 다른 Profile ID를 사용하여 서비스 간 사용자 추적 원천 봉쇄
  • 03자체 권한 시스템 'Himeji'를 통한 고성능 데이터 레이어 권한 제어
  • 04Python 스크립트와 AI 리팩토링 도구를 활용한 효율적인 전사 코드 마이그레이션
  • 05최소 권한 원칙(Least-Privileged Access)을 기반으로 한 데이터 가시성 제어

RECOMMENDATION

대규모 사용자 데이터를 다루는 서비스에서 개인정보 보호와 소셜 기능을 동시에 구현해야 하는 백엔드 엔지니어 및 아키텍트에게 필독을 권장합니다.

The Problem

에어비앤비가 소셜 생태계로 진화함에 따라, 사용자 간의 연결성을 강화하면서도 개인 식별 정보가 여러 컨텍스트(숙소, 체험, 호스팅 등)에 걸쳐 원치 않게 노출되거나 추적되는 문제를 해결해야 했습니다.

The Solution

내부 데이터인 'User'와 외부 노출 데이터인 'Profile'을 엄격히 분리하고, 각 컨텍스트에 따라 별도의 Profile ID를 부여하는 구조를 도입했습니다. 또한 자체 권한 부여 시스템인 Himeji를 활용해 쓰기 시점 비정규화를 수행함으로써 빠른 권한 체크를 구현하고, AI 도구를 활용한 전사적 코드 마이그레이션을 진행했습니다.

The Result

사용자는 개별 체험별로 자신의 프로필 공유 여부를 독립적으로 제어할 수 있게 되었으며, Himeji의 최적화된 아키텍처를 통해 복잡한 권한 검사 환경에서도 지연 시간 없는 사용자 경험을 유지했습니다.

Trade-off

단일 식별자 구조에 비해 매핑 데이터와 ID 관리의 복잡성이 증가했으며, 전사적인 데이터 접근 패턴을 수정하기 위해 대규모 코드 감사와 리팩토링 리소스가 투입된 것으로 판단됩니다.

03

Key Concepts

Concept · 01

User vs Profile Decoupling

내부적인 사용자 식별 정보와 외부로 보여지는 프로필 정보를 물리적/논리적으로 분리하여 관리하는 설계 방식입니다.

  • 하나의 User ID가 여러 개의 컨텍스트별 Profile ID를 가질 수 있도록 구현했습니다.
  • 사용자의 민감한 개인정보(이메일, 전화번호 등)가 프로필을 통해 노출되는 것을 방지합니다.
Concept · 02

Himeji

에어비앤비가 자체 개발한 확장 가능한 중앙 집중식 권한 부여(Authorization) 시스템입니다.

  • 데이터 레이어에서 직접 접근 제어를 수행하여 보안성을 극대화합니다.
  • 쓰기 시점 비정규화(Relation Denormalization)를 통해 읽기 성능을 최적화했습니다.
Concept · 03

Context-Aware Identifiers

사용자가 활동하는 특정 상황이나 서비스(숙박, 특정 체험 등)에 따라 각기 다른 식별자를 부여하는 기술입니다.

  • 특정 체험의 참가자 명단에서 다른 체험의 참가 여부를 유추할 수 없도록 차단합니다.
  • 호스트로서의 신원과 게스트로서의 신원을 독립적으로 유지할 수 있게 합니다.