Rêver de l’Agora #1. 도전, 연결 그리고 아고라

Rêver de l’Agora #1. 도전, 연결 그리고 아고라

2026-03-18 0 By 커피사유

Rêver de l’Agora는 카페지기 커피사유가 ‘거대한 아고라’ 사계 대광장을 운영하면서 겪은 좌충우돌들을 기록 · 보존해두는 일지 시리즈입니다.


대학교를 졸업하고 대략 3주 가까이 지났다. 졸업장을 구석에 던져놓은 뒤, 대학 내내 학업에 치여 제대로 하지 못했던 것들을 하나씩 해보고 있다.

첫 주는 개인 서버 교체와 정비에 시간을 썼다. 거의 4년 가까이 써 온 Raspberry Pi 4B 보드를 놓아주고, 이 블로그와 기타 내가 이용하고 있는 음악 스트리밍 · 클라우드 · 북마크 관리 · RSS 구독 등의 여러 시스템들을 성능이 월등히 좋은 Mini PC로 옮겼다. 솔직히 말하자면 시점이 좋지는 못했다. 인공지능 열풍 때문에 대부분의 메모리 사업자가 HBM 등 인공지능 연산에 맞추어 공장 생산 라인들을 조절한 덕에 DRAM 가격이 이전의 거의 갑절로 올랐으니까. 원래 내가 눈여겨보고 있던 지금의 이 Mini PC의 가격은 40만원대였는데, 한 달 만에 가격이 70만원이 되어 버렸다. 하지만 서버 교체를 안 할 수도 없는 노릇이라 결국 울며 겨자 먹기로 살 수밖에 없었다.

그래도 서버를 바꾸면서 기존 Debian 기반의 Raspbian에서 Ubuntu로 운영체제를 바꾸니 훨씬 편해졌기에 후회하지는 않는다. 기존 Raspbian은 운영체제 상의 제약이 너무 많았다. 대부분의 Self-hosted 오픈소스 소프트웨어는 범용 OS인 Ubuntu를 주로 지원하지, Raspbian 등의 지원은 보통 뒷전이었다. 지금 쓰고 있는 클라우드 소프트웨어인 Seafile도 최신 버전인 Community Edition 13의 경우 Raspbian을 공식적으로 제대로 지원하지는 않았다. 8.x 버전에 대한 오래된 Raspbian 전용 포크가 있을 뿐이었다. 하지만 이제는 Raspberry Pi 재단이 커널을 개선해서 Ubuntu를 공식 지원하고 있는데다가 작업을 위한 시간도 확보되었으니 클라우드 서비스를 비롯해 대부분을 업그레이드하는 선택은 필수불가결했다.

대부분의 서비스를 Docker 기반으로 옮겼다는 점도 부언해두어야 할 것 같다. 오직 정적 파일을 바로 서비스하는 이 블로그와 이미지 갤러리(image.stevenoh0908.pe.kr)만 웹 서버로 바로 운용하지, 그 외의 모든 다른 서비스는 Docker 위에 올려 내부 네트워크에 두고 프록시 연결로 구동하고 있다. 이러한 운영 방식은 여러 개의 서비스 사이에 대한 격리 · 환경 분리를 실현하기 때문에 보안 향상과 유지 보수에 큰 도움이 된다. 서버를 업그레이드하기 이전에는 환경 변수가 꼬여서 고생한 적이 한두 번이 아니었기 때문에, 앞으로도 독립된 서비스는 성능 저하를 조금 감수하고서라도 Docker로 돌리는 게 옳은 선택이 되지 않을까 싶다.

서비스의 전반적인 품질과 속도가 향상되었긴 하지만, 옮기는 작업은 그다지 쉽지 않았다. 두 가지가 발목을 잡았는데, 첫째는 운영체제가 변경된 것이었고 둘째는 물려 사용하고 있는 HDD의 파일 시스템을 바꿔야 했다는 것이다. 운영체제의 변경은 상대적으로 덜 귀찮은 쪽이었다. 운영체제가 바뀌었을 때 타격을 입는 경우는 기존 시스템들이 의존하고 있던 패키지나 바이너리들이 바뀌는 경우인데, Docker를 사용하면서 각 환경에 독립적인 바이너리를 구성할 수 있었기에 대부분 상관없게 되어버렸기 때문이다. 정말 문제가 컸던 것은 HDD의 파일 시스템을 기존에 사용해오던 NTFS에서 ext4로 바꾸는 쪽이었다.

기존에 이 블로그를 운영하고 있던 서버는 NTFS 파일 시스템으로 포맷된 HDD를 사용하고 있었다. 혹시나 문제가 생기는 경우 Windows 환경인 내 노트북에서 파일을 손쉽게 확인하고 옮길 수 있도록 하기 위함이었다. 하지만 이번에 Docker 기반으로 여러 서비스를 설치해보면서 알게 된 사실은, NTFS의 경우 Linux의 파일 권한을 제대로 지원하지 않는다는 것이었다. ntfs-3g와 같은 패키지들이 ‘가짜로 파일 권한 라벨이 있는 것’처럼 지원해주기는 하지만, 소유자와 권한, ACL에 따른 접근의 제한을 실제로 지원하는 것이 아니었다. 덕분에 Docker로 여러 소프트웨어를 설치할 때 NTFS 디스크가 권한 문제들을 일으키기 시작해서, 4TB 디스크에 지금까지 모인 총 1.3TB의 데이터를 어떻게든 다시 ext4 디스크로 옮기는 작업을 해야만 했다.

문제는 내가 가지고 있는 다른 디스크의 최대 용량은 1TB였다는 것이었다. 가지고 있는 1TB HDD는 2개였고, 여기에 새로 마련한 Mini PC의 경우 1TB M.2 SSD Storage를 가지고 있었으므로 데이터를 모두 옮길 수는 있었다. 하지만 적절한 ‘테트리스 작업’과 번거로운 데이터 복사를 여러 번 해야만 했다. 4TB 디스크의 데이터를 1TB Storage들에 나누어 옮긴 뒤, 무결성 검사와 제대로 옮겨졌는지 검사를 돌리고, 다시 4TB 디스크를 ext4로 포맷한 뒤 다시 도로 옮긴 뒤 또 무결성 검사와 제대로 옮겨졌는지 검사를 돌려야 했다. 여기에 클라우드 서비스인 Seafile은 기존에 사용하던 Non-docker Deployment 환경에서 Docker Deployment 환경으로의 Migration을 제대로 지원하지 않았기 때문에, 클라우드에 저장된 파일은 일일이 웹 인터페이스로 내려받아 따로 백업한 뒤 새로 구축한 서버에 일일이 업로드해야만 했다. 덕분에 작업은 아주아주 길어졌고, 모든 데이터를 옮기고 검사까지 마쳤을 때는 일주일이 지나 있었다.


그래도 위처럼 고생을 해서 서버를 바꾼 덕에 성능이 꽤 올라왔다. 그에 따라 이제 놀고 있던 다른 Raspberry Pi 머신을 써먹을 수 있게 되었다. 2년인가 2년 반 전 즈음에 새로 출시된 Raspberry Pi 5를 구매해둔 적이 있었는데, 그 당시에는 권장 전류가 흐르는 5V-5A 어댑터를 파는 인터넷 쇼핑몰을 찾을 수가 없어서 저전압 경고에 시달리다가 짜증이 나서 구석에 박아두었던 머신이었다. 4GB RAM, 나쁘지 않은 Storage, 꽤 괜찮은 4코어 CPU의 성능을 어떻게 써먹을까 고민하다가, 예전부터 그려왔던 프로젝트를 실행해보기로 결정했다.

정확하게 해 두자면 예전부터 그려왔던 프로젝트이기 때문만은 아니다. 약속된 일이기도 했다. 작년 초 그러니까 2025년 초에 나는 모종의 계기로 사계(四季)라는 커뮤니티에 들어가게 되었고, 인연이 닿아 운영위원회에서 자문 역할을 맡게 되었다. 이 커뮤니티는 단체 카카오톡 채팅방을 운영하고 있었는데, 취지는 좋았으나 그 운영이 의도와 합치되지 않는 문제가 있었다. 자유로운 의사 교환이나 친목을 위해 만들었던 채팅방이었으나 사람만 50명 넘게 있었기 때문에 사실상 흔하디 흔한 대학교 학과 공지방의 실태처럼 5명 이하의 사람 외에는 아무도 글을 올리지 않고 그저 내용만을 확인하거나 침묵을 지키고 있었다. 하긴 사람은 언제나 자신과 비슷한 사람, 아니면 완전히 특이한 다른 사람과 어울리기를 원하는데 서로에 대해 잘 알지도 못하는 사람들이 같은 대화 공간을 공유하고 있으니, 글을 올리는 게 꺼려지는 것이 당연하지 않을까 싶었다. 50명이 넘는 사람들이 같은 대화 채널에 동시에 이야기한다는 것 자체가 꽤 어려운 일이기도 하고 말이다. (이건 굳이 카카오톡 채팅방이 아니더라도, 어떤 공간에 50명의 사람이 모여 동시에 발화한다고 생각해보기만 하더라도 어떤 문제가 발생할 수 있을지 훤히 알 수 있다.) 그래서 나는 2026년 초에 열린 사계 신년회에서 기존의 이 카카오톡 채팅방, ‘사계 대광장’을 다른 플랫폼으로 옮기자고 제안했다. 마이크로 블로그 플랫폼, 즉 우리에게 친숙한 SNS 플랫폼 중 하나인 Mastodon으로.

특정 IT 기업이 플랫폼 전체를 소유하고 있으며 사용자는 IT 기업이 자체적으로 결정하는 정책에 동의하지 않으면 플랫폼으로부터 완전히 배제되는 Twitter(X)1말 그대로 ‘X된 트위터’다. 누군가의 인수 덕에 ‘X’ 되었다. · Facebook · Instagram 등과는 달리 Mastodon은 연합우주(Fediverse)를 이용하는 분산형 오픈소스 SNS 플랫폼이다. 대학교 초기 Facebook이 내 개인정보를 미국 정부나 선거 관련 단체에 무단으로 제공했다는 사실을 알게 되어 개인정보 침해에 대한 단체소송에 참여한 이래로 기존 SNS 플랫폼에 대한 반감이 몹시 커졌던 나는 대안을 모색하다가 연합우주(Fediverse)를 2021년에 처음 알게 되었다. 그 당시는 우리나라에 연합우주라는 개념이 제대로 알려지기 시작한지 얼마 되지 않은 때였다. 우리나라에서 가장 오래된 Mastodon 인스턴스는 2017년 경에서야 문을 열었고, 한국 연합우주 개발자 포럼은 작년(2025년)에야 처음으로 만들어져 문을 열었으니까.

누구나 서버를 가지고 있다면 Mastodon을 설치해서 자체적인 ‘서버’를 운영할 수 있었던 것이 대단히 매력적이었다. 운영 정책을 자율적으로 결정하고, 어떤 다른 연합우주 상의 서버들과 연결(연합)할지, 아니면 그들과의 연결을 거부할지를 결정할 수 있다는 점이 꽤 괜찮아보였다. 그래서 2022년에 나는 지금은 문을 닫은 트잉여(twingyeo.kr)로 처음 연합우주 생활을 시작했고, Mastodon 프로젝트와 Misskey 등 관련된 여러 연합우주 프로젝트를 쭉 지켜보고 있었다. 얼마 전 트잉여가 문을 닫자 mastodon.social로 이주했고, 그 과정에서 플래닛(planet.moe)이나 우리.인생(uri.life) 등의 인스턴스들이 어느 새인가 꽤 규모가 커졌다는 사실도 알게 되었다.

기성의 미디어 환경을 별로 좋아하지 않고, 내가 의사결정에 참여할 수 있는 커뮤니티를 선호하는 나로서는 점점 직접 Mastodon 등의 연합우주에 연결된 커뮤니티를 운영해보고 싶어지지 않을 수 없었다. 사계 신년회에서 내가 걸었던 약속은 이상의 배경에 뿌리를 두고 있다. 대학 졸업을 앞두고 있던 나는 컴퓨터공학을 복수전공하면서 알게 된 여러가지 지식들, 그리고 거의 10년 가까이 개인 서버를 운영해오면서 축적한 Linux 시스템에 대한 이해를 활용한다면 불가능하지는 않을 것이라 생각했다. 물론 홈 서버를 이용하는 것인만큼 장기적으로 사용자가 늘어난다면 유지 · 관리 비용이 증가할 것이고 또 서비스 장애가 생길 수도 있다는 것을 모르지는 않지만… 그렇다고 해서 내가 만들어나가는 커뮤니티의 꿈을 포기할 수는 없었다.

그래서 일주일 전부터는 개인 서버를 업그레이드 한 뒤 몇 년 동안 묵혀두었던 저 Raspberry Pi 5에 Mastodon을 설치하여 SNS 기반의 새로운 ‘사계 대광장’을 구축하기 시작했다. 설치는 어렵지 않았다. 오히려 문제가 되는 건 설치한 뒤였다. 외부에 열려있는 머신은 Mastodon이 돌아가는 Raspberry Pi 5가 아닌 이 블로그가 돌아가는 서버였기 때문에 적절한 프록시 설정을 웹 서버에 추가하는데 꽤 애를 먹어야 했고, 보안 설정을 지나치게 빡빡하게 잡아두어서 정상적인 접근이 몇 번 일시적으로 계속 차단되는 초기의 문제를 어떻게 하면 보안 설정을 지나치게 완화하지 않고서 해결할 수 있을지도 꽤 고민해야 했다. 이 모든 과정을 거친 지금은 비교적 인스턴스가 안정적으로 돌아가고 있다. 보안을 위한 암호화, 방화벽, 이상 접근에 대한 자동 알림 시스템, 정기적 백업 등의 대책도 마련했다. 하지만 운영을 위해서 정말로 필요한 것들이 아직 남아 있었다.

새로운 인스턴스를 설치한다고 해서 곧바로 운영이 준비되는 것은 아니다. 나를 믿을 수 있을지 모르는 누군가가 이 서비스를 사용하게 될 것이기 때문에(물론 ‘사계 대광장’을 인터넷의 불특정 다수의 사용자에게 열어줄 생각은 없다. 어디까지나 당초에 계획했던대로 기존 사계 커뮤니티에서 활용해오던 ‘단체 채팅방’을 대신할 새로운 기반을 마련하는게 목적이니까.) 몇 가지 세워두고 가야 하는 것들이 있었다. ① 서버 규칙을 세워야 했고, ② 이용약관을 작성해야 했으며, ③ 개인정보 처리방침을 수립해야 했고, ④ 무엇보다도 가장 중요한, 처음 새로운 ‘사계 대광장’을 이용하게 될 사계 커뮤니티의 구성원들이 궁금하게 될 수많은 사항들에 대한 답을 제공하는 매뉴얼 내지는 가이드라인을 작성해야 했다.

① 서버 규칙을 세우는 일, ② 이용약관을 작성하는 일 그리고 ③ 개인정보 처리방침을 수립하는 일은 그렇게 어려운 일이 아니었다. 이미 2017년 처음 연합우주 개념이 소개된 이후로 국내에서는 수많은 Mastodon · Misskey 인스턴스들이 운영되고 있었고, 이들은 각각 자체적인 규칙과 이용약관, 개인정보 처리방침을 수립하고 있었다. 참고할 수 있는 이들 출처를 이용해 나름대로 사계 대광장에 걸맞는 규칙을 세우고, 관련된 법률이나 정부에서 작성한 알기 쉬운 가이드라인 문서 등을 참고하여 그럭저럭 필요한 내용은 다 넣어 이틀 만에 이 모든 일들을 끝낼 수 있었다. 애초에 중학교에서 학생회장을 하던 당시 《대한민국 헌법》 · 〈정부조직법〉 · 〈국회법〉 등등을 살펴가면서 학생회 규칙 초안을 쓰고 수정해왔던 경험이 있는 나에게 법률 쪽은 친숙하고 재미있는 분야이기도 했고.

하지만 정말로 오래 걸렸고 또한 가장 심혈을 기울여야 했던 일은 ④ 새로운 ‘사계 대광장’을 이용하게 될 구성원들을 위한 매뉴얼 또는 가이드라인을 작성하는 일이었다. 답해야 하는 질문이 적지 않았기 때문이다. 연합우주가 무엇인지, 또 Mastodon은 무엇인지를 설명하는 것은 당연했다. 어떻게 Mastodon 인스턴스인 ‘사계 대광장’을 활용할 수 있는지를 설명하는 것도 당연했다. 하지만 무엇보다 가장 정확하게 설명해야 하는 것은 ‘사계 대광장’이 무엇을 위한 공간인지, 무엇을 지향하는지, 어떤 것들을 이곳에서 지켜야 하는지와 같은 커뮤니티의 성격이었다. 전체적인 성격을 나는 ‘거대한 아고라’로 규정했다. 고대 그리스의 ‘아고라’는 크고 넓은 광장으로, 시민권이 있는 사람들이 모여서 민회를 열거나 각종 문화 · 종교 행사를 여는 데 널리 이용되었다. 직업도 성격도 억양도 다양한 제각각의 사람들이 한데 모여서 공동 주제에 대해 동시에 토의하거나, 아니면 시장통처럼 각자 일을 보면서 만나는 사람끼리 반갑게 인사하고 잠시 대화를 나눌 수 있었을 그러한 아고라의 모습을 눈 앞에 그려보면, 오늘날 이 아고라가 불가능할 이유는 딱히 없는 것 같다는 생각으로 나아가게 된다. 그 아고라를 만약 ‘사계 대광장’에서 실현할 수 있다면 어떨까? 더 다양한 목소리와 다채로운 우리의 모습이 다른 사람들에게 조금이라도 더 가닿을 수 있다면 어떨까? 물음은 언제나 꼬리를 물고 이어지는 법이며, 뱀처럼 늘어난 물음의 연쇄는 흐르고 흘러 거대한 강물을 이루게 된다. 그 거대한 강물의 발원지에 ‘사계 대광장’이 있으면 좋겠다는 소망을 나는 처음으로 가지게 되었다.

내가 규정한 커뮤니티의 성격이 괜찮을지에 대해 나는 여전히 확신하지 못한다. ‘거대한 아고라’가 너무 지나치게 큰 추상적 지향점일 수도 있고, 비슷한 사람들끼리 모이려고 하는 사람의 본성 때문에 명실(名實)이 합치되지 않게 될지도 모른다. 그러나 시작해보지도 않고서 포기할 수는 없다. 언제나 나는 달려가 직접 부딪혀 보는 불도저 같은 성격이었고, 지금도 그렇지 않던가. 목표는 정해졌고, 나는 준비되었으며, 오직 남은 것은 전진(En Marche!) 뿐이다.

지난 2주의 여정 동안 마련한 내 새로운 서버와 그 서버와 함께 출발하게 된 새로운 ‘사계 대광장’이 조금이나마 순탄하게 궤도에 오를 수 있기를 지금으로서는 바랄 뿐이다.



주석 및 참고문헌

  • 1
    말 그대로 ‘X된 트위터’다. 누군가의 인수 덕에 ‘X’ 되었다.