디스코드 대항마 Fluxer, 오픈소스 기반의 새로운 소통 플랫폼
스웨덴 개발자가 디스코드(Discord)와 유사한 오픈소스 채팅 앱, Fluxer를 공개
오픈소스(Open Source), 자가 호스팅(Self-hosting), 그리고 데이터 미저장 정책(Zero-Retention Policy)을 강조하며, 독립적인 플랫폼 구축을 목표로 함
Erlang/OTP 및 Cassandra를 활용한 백엔드 아키텍처(Backend Architecture)와 디스코드(Discord)와의 호환성을 언급
개발자의 경험과 자금 조달 모델(Funding Model), 그리고 커뮤니티 지원에 대한 내용 포함
Fluxer의 기술 스택 및 아키텍처
Fluxer는 디스코드(Discord)의 아키텍처를 참고하여 설계되었으며, Erlang/OTP를 활용한 실시간 시스템(Real-time System)을 구축했다. 특히, Erlang의 핫 코드 스와핑(Hot Code Swapping) 기능을 통해 시스템 중단 없이 코드 변경이 가능하도록 설계했다. 데이터베이스(Database)로는 Cassandra를 사용하며, 자가 호스팅(Self-hosting)을 위한 SQLite 지원도 제공한다. 또한, 웹 소켓(Web Socket) 게이트웨이(Gateway)는 Erlang으로 작성되어 실시간 성능을 최적화했다.
디스코드(Discord)와의 차별점: 오픈소스 및 자가 호스팅
Fluxer는 오픈소스(Open Source)를 지향하며, 사용자가 직접 서버를 운영할 수 있도록 설계되었다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 사용자의 데이터 주권을 보장하고, 플랫폼 종속성을 줄이는 것을 목표로 한다. 또한, Fluxer는 데이터 미저장 정책(Zero-Retention Policy)을 통해 사용자 프라이버시(Privacy)를 강화하고, 독립적인 운영을 통해 투자자 중심의 플랫폼과는 다른 가치를 추구한다.
성능 및 확장성 고려 사항
Fluxer는 Cassandra를 사용하여 쓰기 중심의 이벤트 기반 설계를 지원하며, 효율적인 데이터 모델링을 위해 노력했다. Cassandra는 고가용성(High Availability)과 수평적 확장성(Horizontal Scalability)을 제공하며, 스키마 변경(Schema Change) 시 다운타임(Downtime)이 없는 장점을 가진다. 또한, Fluxer는 SQLite를 통해 자가 호스팅 환경에서도 성능을 유지할 수 있도록 설계되었다.
LLM(Large Language Model) 활용 및 개발 방식
Fluxer 개발자는 LLM(Large Language Model)을 코드 생성(Code Generation)에 제한적으로 활용하며, 코드 검토(Code Review) 및 테스트(Test)를 통해 품질을 관리한다. LLM은 기계적인 작업(Mechanical Tasks)을 가속화하는 데 사용되며, Fluxer의 핵심 아키텍처(Core Architecture) 설계에는 관여하지 않는다. 개발자는 LLM의 결과물을 외부 기여와 동일하게 취급하며, 코드의 이해도와 검증을 강조한다.