
소셜 미디어의 '주인'이 바뀔 수 있다면?
트위터(현 X)에서 대규모 사용자 이탈이 일어나면서 대안 플랫폼들이 주목받은 게 벌써 몇 년 전이에요. 그중 Bluesky가 꽤 의미 있는 사용자 기반을 확보했는데요, Bluesky의 진짜 이야기는 앱 자체가 아니라 그 밑에 깔린 프로토콜에 있어요. 바로 AT Protocol(ATProto)이에요.
AT Protocol이 뭐냐면, 쉽게 말해 "소셜 네트워크를 만들기 위한 공개 규약"이에요. HTTP가 웹페이지를 주고받는 규약이고, SMTP가 이메일을 주고받는 규약인 것처럼, ATProto는 소셜 미디어의 핵심 기능 — 게시글 작성, 팔로우, 피드 구성 등 — 을 표준화한 프로토콜이에요. 왜 이게 중요하냐고요? 한번 찬찬히 풀어볼게요.
ATProto의 핵심 아이디어: 데이터는 사용자 것
지금 우리가 쓰는 소셜 미디어를 생각해보면, 내가 쓴 글, 내 팔로워 목록, 내 프로필 — 이 모든 게 플랫폼 회사의 서버에 저장되어 있어요. 플랫폼이 마음에 안 들어서 옮기고 싶어도 데이터를 가져갈 수가 없죠. 마치 은행을 바꾸려면 계좌 번호, 거래 내역, 신용 기록을 다 두고 와야 하는 것과 비슷해요.
ATProto는 이 구조를 근본적으로 바꿔요. 사용자의 데이터가 특정 서버에 종속되지 않도록 설계되어 있거든요. 핵심 개념 몇 가지를 살펴볼게요.
첫째, DID(Decentralized Identifier)라는 분산 식별자 체계예요. 이건 내 아이덴티티가 특정 서버에 묶이지 않는다는 뜻이에요. 지금은 @nick.bsky.social 같은 핸들을 쓰지만, 이 핸들 뒤에 있는 진짜 ID(DID)는 서버와 무관하게 존재해요. 서버를 옮겨도 내 정체성은 유지되는 거예요.
둘째, PDS(Personal Data Server)라는 개념이 있어요. 이게 뭐냐면, 내 데이터를 보관하는 개인 서버예요. 지금은 대부분 Bluesky가 운영하는 PDS를 쓰지만, 원하면 직접 PDS를 운영하거나 다른 호스팅 서비스로 이전할 수 있어요. 내 글, 내 팔로우 관계, 내 좋아요 기록이 전부 내 PDS에 있으니까요.
셋째, 커스텀 피드예요. ATProto에서는 피드 알고리즘이 플랫폼에 내장된 게 아니라 별도 서비스로 분리되어 있어요. 누구나 자기만의 피드 알고리즘을 만들어서 공개할 수 있고, 사용자는 마음에 드는 피드를 골라 쓸 수 있어요. 알고리즘에 의해 특정 콘텐츠가 강제로 노출되는 문제를 구조적으로 해결하려는 시도인 거죠.
Mastodon의 ActivityPub과 뭐가 다를까?
"분산 소셜 네트워크면 Mastodon이 이미 있지 않나?"라고 생각하실 수 있어요. 맞는 말인데, ATProto와 ActivityPub(Mastodon이 사용하는 프로토콜)은 설계 철학이 꽤 달라요.
ActivityPub은 서버(인스턴스) 중심이에요. 내가 어떤 인스턴스에 가입하느냐에 따라 경험이 크게 달라지고, 인스턴스 간 연합(federation)으로 네트워크가 연결돼요. 문제는 내가 가입한 인스턴스가 문을 닫거나, 관리자와 마찰이 생기면 팔로워와 데이터를 잃을 수 있다는 거예요. 또한 글로벌 검색이나 발견 기능이 구조적으로 약해서 "내 인스턴스 밖의 사람을 찾기 어렵다"는 문제가 있었어요.
ATProto는 이런 점을 의식하고 만들어진 느낌이 강해요. 계정 이식성(portability)을 프로토콜 레벨에서 보장하고, 전체 네트워크를 인덱싱하는 릴레이(Relay) 서비스를 통해 글로벌 발견 기능을 지원해요. 사용자 입장에서는 기존 중앙집중형 소셜 미디어와 거의 비슷한 경험을 하면서도, 내부적으로는 분산 구조의 장점을 누릴 수 있도록 설계된 거예요.
물론 ATProto도 완벽하진 않아요. 현재 릴레이와 앱뷰(AppView) 같은 핵심 인프라를 Bluesky 팀이 거의 독점적으로 운영하고 있기 때문에, "분산이라고 하면서 사실상 중앙집중 아니냐"는 비판도 있어요. 이 부분은 생태계가 성숙하면서 점진적으로 분산화되어야 할 과제이기도 해요.
개발자 관점에서 ATProto가 흥미로운 이유
ATProto 위에서 Bluesky 같은 마이크로블로깅만 만들 수 있는 건 아니에요. 프로토콜 자체가 범용적으로 설계되어 있어서, 소셜 기능이 필요한 어떤 앱이든 ATProto 위에 만들 수 있어요. 실제로 ATProto 기반의 장문 블로그 플랫폼, 레시피 공유 앱, 북마크 관리 도구 같은 서드파티 프로젝트들이 이미 나오고 있어요.
개발자에게 매력적인 점은 Lexicon이라는 스키마 시스템이에요. 이건 ATProto에서 데이터 구조와 API를 정의하는 방식인데, 새로운 종류의 레코드 타입을 정의해서 기존 네트워크 위에 올릴 수 있어요. 예를 들어 "코드 리뷰 요청"이라는 새로운 레코드 타입을 정의하면, ATProto 네트워크의 소셜 그래프를 그대로 활용하면서 코드 리뷰 플랫폼을 만들 수 있는 거예요.
SDK도 여러 언어로 제공되고 있어서 TypeScript, Python, Go, Dart 등으로 ATProto 기반 앱을 만들어볼 수 있어요.
한국 개발자에게 주는 시사점
당장 업무에서 ATProto를 쓸 일은 많지 않을 거예요. 하지만 몇 가지 관점에서 주목할 가치가 있어요.
먼저, 분산 시스템 설계를 공부하기 좋은 실전 레퍼런스예요. DID, 데이터 이식성, 분산 인덱싱 같은 개념들이 실제 대규모 서비스에서 어떻게 구현되는지 볼 수 있거든요. ATProto의 공개 스펙 문서와 레퍼런스 구현체가 모두 오픈소스이기 때문에 깊이 들여다볼 수 있어요.
또한, 사이드 프로젝트로 ATProto 기반 앱을 만들어보는 것도 좋은 경험이 될 수 있어요. 이미 수천만 명의 사용자가 있는 네트워크 위에서 앱을 만들 수 있다는 건, 초기 사용자 확보라는 사이드 프로젝트의 가장 큰 허들을 낮춰주는 셈이니까요.
마지막으로, 웹의 미래 방향성에 대한 힌트를 줘요. "데이터 주권"이라는 개념이 GDPR이나 개인정보보호법 강화와 맞물려 점점 중요해지고 있는데, ATProto는 이걸 기술적으로 실현하는 하나의 모델이에요. 이런 흐름을 이해해두면 앞으로 서비스 설계할 때 시야가 넓어질 거예요.
정리하면
AT Protocol은 "소셜 미디어를 이메일처럼 만들자"는 비전을 가진 프로토콜이에요. 아직 갈 길이 멀지만, 실제 사용자가 있는 제품(Bluesky)이 그 위에서 돌아가고 있다는 점에서 이전의 분산 소셜 시도들과는 좀 다른 위치에 있어요.
여러분은 소셜 미디어의 데이터 소유권 문제에 대해 어떻게 생각하시나요? 혹시 ATProto나 ActivityPub 기반으로 뭔가 만들어보신 경험이 있다면 공유해주세요.
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공