yozm.tech
피드로 돌아가기
news.hada.ioHOTAI 재작성

페디버스 서버, Fedify 벗고 Elixir로 전환한 이유

작은 페디버스(Fediverse) 서버 'sukhi-fedi'가 기존에 사용하던 Fedify 라이브러리를 제거하고, 핵심 기능을 Elixir 언어로 직접 구현했습니다. 이는 메모리 효율성 개선과 언어 경계에서 발생하는 문제 해결을 위한 것으로, Fedify의 장점과 한계를 동시에 보여주는 사례입니다. 이번 전환은 페디버스 개발자들에게 중요한 시사점을 제공합니다.

5시간 전·2026.07.03·읽기 2·nyanrus https://news.hada.io/user/nyanrus

분산형 소셜 네트워크인 페디버스(Fediverse)의 한 서버인 'sukhi-fedi'가 기존에 사용하던 Fedify 라이브러리를 걷어내고, 핵심 기능을 Elixir 언어로 직접 재구현했습니다. Fedify는 페디버스 서버 간 메시지 교환에 필수적인 JSON-LD 조립과 HTTP 서명 처리를 담당하는 라이브러리였으나, sukhi-fedi는 더 나은 성능과 유연성을 위해 자체 구현을 선택했습니다.

이번 전환의 주된 이유는 세 가지였습니다. 첫째, sukhi-fedi는 Fedify의 상위 프레임워크 기능 대신 하위 부품만 사용하고 있었기 때문에, 팔로우 승인, 멱등성 처리, 인스턴스 액터 등 많은 연합(federation) 기능을 이미 직접 구현해야 했습니다. 둘째, 목표로 하는 512~768MB 메모리 환경에서 Elixir는 130MB로 안정적인 반면, Bun 워커로 동작하던 Fedify는 120MB에서 메모리 부족(OOM)으로 종료되는 문제가 발생했습니다. 시스템 내 유일한 이종 언어 부분이 가장 무겁고 취약했던 것입니다. 셋째, TypeScript/JavaScript 기반의 Fedify와 Elixir 기반의 메인 시스템 간 언어 및 프로세스 경계가 서명 검증을 위한 원본 데이터 보존, 주소 복원, 키 포장 등 지속적인 '배관 작업'을 유발하여 복잡성을 가중시켰습니다.

Fedify를 제거하고 Elixir로 직접 구현하는 작업은 12개 파일, 약 2,100줄의 코드로 완료되었습니다. 흥미로운 점은 Fedify가 자체적인 안전망 역할을 했다는 것입니다. Fedify가 제공하는 Ed25519 서명과 URDNA2015 정규화는 동일한 입력에 대해 항상 동일한 결과를 도출하므로, Fedify 코드로 '정답 데이터'를 미리 생성하여 Elixir로 구현한 결과와 한 글자도 틀리지 않게 검증할 수 있었습니다. 현재 Fedify의 Bun 워커는 은퇴했지만, 개발 환경에서 정답 데이터를 생성하는 역할로 남아 있습니다.

이번 사례는 Fedify가 TypeScript/JavaScript 기반의 페디버스 프레임워크를 통째로 활용하려는 개발자들에게 여전히 최적의 선택임을 시사합니다. 실제로 Ghost의 ActivityPub 기능, hackers.pub, Hollo 등 다수의 프로젝트가 Fedify 위에서 구동되고 있습니다. 또한 Fedify 팀은 현재 ActivityPub 디버깅 도구인 DrFed를 개발 중이며, 이는 연합 과정의 문제점을 진단하고 서명 방식을 단계별로 추적할 수 있는 강력한 도구가 될 것으로 기대됩니다.

1인 창업자를 위한 기회 분석
AI 분석 · 참고용이며 검증이 필요합니다
3/10
약한 신호
3점인가

페디버스 생태계는 아직 초기 단계이며, 일반적인 1인 창업자가 진입하기에는 기술적 난이도가 높고 시장 규모가 작습니다.

문제 / 미충족 수요

페디버스(ActivityPub) 구현은 복잡하며, 특히 다양한 언어 환경에서 안정적인 연동과 디버깅이 어렵습니다.

한국 시장
국내 미진출 — 기회한국에서는 페디버스 생태계가 아직 초기 단계이며, 관련 개발 도구나 라이브러리 수요가 미미합니다. 하지만 잠재적 수요는 존재합니다.
수익 모델

B2B SaaS 구독, API 종량제 · 돈 내는 주체: 페디버스 서버를 운영하거나 ActivityPub 기능을 자사 서비스에 통합하려는 개발자 및 기업

1인 실현 가능성
2/5

ActivityPub 사양 자체가 복잡하고, 안정적인 라이브러리 개발에는 상당한 전문성과 지속적인 유지보수가 필요합니다. 디버깅 도구 역시 다양한 구현체와의 호환성을 확보해야 합니다.

진입 지점 (Wedge)

특정 언어(예: Python, Go) 기반의 ActivityPub 라이브러리 개발 및 유지보수, 또는 ActivityPub 연동 문제 진단 전문 도구 제작.

이번 주 첫 실험

ActivityPub 사양을 깊이 분석하고, 기존 오픈소스 라이브러리들의 장단점을 비교하여 특정 언어 생태계의 미충족 수요를 파악합니다.

Original source
이 글은 news.hada.io의 기사를 yozm.tech가 한국어로 재작성한 버전입니다.
원문 보기