# 스레드를 더 적은 코드로 만들 수 있었을까: 개리 탄이 소개한 Rama

> 2023-08-22 · Garry Tan · 큐레이션 김태우
> https://challengekim.com/insights/스레드를-더-적은-코드로-만들-수-있었을까-개리-탄이-소개한-rama
> 원문: https://www.youtube.com/watch?v=O2dIsZsjaBA

## 핵심 요약

- 개리 탄은 메타의 스레드 개발에 투입된 인력을 언급하며, Rama를 썼다면 엔지니어 한 명이 코드 1만 줄 미만으로 더 빠르고 저렴하게 만들 수 있었을 것이라고 주장했다. 이는 실제 개발 결과가 아닌 가정이다.
- Rama 개발사 레드플래닛랩스는 자사 플랫폼으로 마스토돈과 유사한 소셜 네트워크를 구현하는 데 코드 약 1만 줄과 9인월이 들었다고 밝혔다.
- Rama는 데이터 기록, 처리, 색인, 조회를 한 시스템에 통합한다. 핵심인 PState는 용도에 맞춰 여러 데이터 구조를 조합해 색인을 만들도록 설계됐다.
- 개발사는 대규모 봇으로 운영하는 사례를 제시했지만, 영상에서 안내한 공개 버전은 시뮬레이션 클러스터에서 애플리케이션을 실행하는 형태다.

## 스레드 개발비 비교는 가정이다

탄은 스레드 개발에 엔지니어 25\~50명이 7개월간 참여했고, 총 25인년이 투입됐다고 말했다. 그는 Rama를 사용했다면 엔지니어 한 명이 코드 1만 줄 미만으로 스레드를 최소 30배 빠르고 저렴하게 만들 수 있었을 것이라고 주장했다. 영상은 Rama로 스레드를 실제 구현한 결과를 제시하지 않는다.

탄은 Rama 개발자인 네이선 마스가 이전에 Apache Storm을 만들었다고 소개했다. 자신은 투자사 Initialized에서 레드플래닛랩스의 초기 투자자 중 한 명이었다고 밝혔다. 이어 과거 자신의 스타트업 Posterous가 MySQL 확장 문제로 어려움을 겪었다는 경험을 Rama에 관심을 갖는 이유로 들었다.

## 개발사가 제시한 마스토돈 구현 사례

마스는 Rama 위에 마스토돈과 소비자용 기능이 유사한 소셜 네트워크를 만들었다고 설명했다. 그에 따르면 구현에는 코드 약 1만 줄과 9인월이 들었다. 그는 트위터의 소비자용 제품 개발에 코드 약 100만 줄과 200인년이 들었다는 수치와 비교하며, Rama 사례의 코드량과 투입 시간이 크게 적었다고 주장했다. 두 수치는 마스가 제시한 비교다.

마스는 운영 중인 사례에서 봇 1억 개가 초당 게시물 3,500개를 올리고, 게시물 하나가 평균 403곳으로 전달된다고 말했다. 또한 자신들의 백엔드 코드가 오픈소스 마스토돈보다 최소 44% 적으며, 더 큰 규모로 확장할 수 있다고 주장했다. 영상에 제시된 부하의 주체는 봇이다.

## 기록부터 조회까지 묶는 구조

Rama의 구성 요소는 네 가지다. **Depot**은 데이터를 순서대로 덧붙여 저장하는 복제 로그다. **ETL**은 그 기록을 병렬로 읽고 변환해 색인을 만든다. 결과물인 **PState**는 데이터를 색인하고 보존하는 구조이며, **쿼리**는 저장된 데이터를 조회한다. 마스에 따르면 개발자는 주로 Java API로 ETL을 작성한다.

쿼리에는 PState의 한 파티션에서 데이터를 찾거나 집계하는 포인트 쿼리와, 여러 PState 및 파티션을 대상으로 미리 정의하는 쿼리 토폴로지가 있다. 탄은 팔로어에게 게시물을 전달하는 피드 작업처럼 애플리케이션에서 처리하던 연산을 데이터 계층으로 옮길 수 있다고 설명했다.

## 데이터 구조와 확장 방식

마스는 기존 데이터베이스가 키·값, 문서, 열 등 정해진 데이터 모델을 제공한다고 설명했다. 그에 비해 Rama에서는 필요한 데이터 구조를 조합해 PState를 만들고, 용도에 따라 여러 PState를 둘 수 있다고 주장했다. 그의 설명대로라면 한 데이터 모델에 맞지 않는 기능을 위해 별도의 데이터베이스를 도입하는 일을 줄일 수 있다.

탄은 여러 데이터베이스를 함께 운영하면 서버뿐 아니라 백업, 인증, 운영 도구도 각각 관리해야 한다고 지적했다. 마스는 Rama 클러스터에서 파티션과 작업자 수를 지정하고, 자원이 더 필요할 때 작업자 수를 늘릴 수 있다고 설명했다. 예로 작업자 20개를 30개로 늘리는 명령을 들었다.

## 현재 공개된 범위

마스에 따르면 당시 누구나 사용해 볼 수 있도록 공개된 Rama 빌드는 완전한 애플리케이션을 만들고 **시뮬레이션 클러스터**에서 실행할 수 있다. 그는 Rama에 학습 곡선이 있다는 점도 인정했다. 영상의 대규모 운영 사례와 공개 빌드에서 사용자가 실행할 수 있는 환경은 구분할 필요가 있다.

Rama의 주장은 데이터 처리 기능을 한데 묶어 백엔드 구현과 운영의 복잡성을 줄일 수 있다는 것이다. 영상은 이를 마스토돈 유사 서비스의 개발·운영 사례로 설명하지만, 스레드를 30배 빠르고 저렴하게 만들 수 있었다는 주장은 가정으로 남는다.

---

원문을 바탕으로 AI 가 한국어로 요약·재구성한 글입니다. 인용·수치는 원문 링크에서 확인해 주세요. [원문 링크](https://www.youtube.com/watch?v=O2dIsZsjaBA)
