뒷담화 사이트를 만들면서 가장 무서웠던 건 코드가 아니라 내 이름이었다
"노가리 깐다"를 서비스로 만들면
한국말에 "노가리 깐다"는 표현이 있다. 편하게 수다 떨고, 남 얘기 좀 하는 것. 나쁜 뜻으로도 쓰이지만, 잘 생각해보면 이게 사람들이 매일 하는 일이다. 카페에서, 단톡방에서, 회식 자리에서. 이 정서를 그대로 서비스 이름으로 옮긴 게 **노가리(nogari.org)**다.
사람, 물건, 브랜드, 사건 — 뭐든 주제로 방을 만들고 익명으로 떠드는 곳이다. 기술적으로 어떻게 만들었는지는 노가리 개발기에 따로 자세히 적었다. 이 글은 그 개발기에 안 쓴 이야기 — 왜 이렇게 만들기로 했는가, 그리고 만들면서 제일 겁났던 순간에 대한 기록이다.
게시판을 누가 열어야 하는가
기존 커뮤니티는 게시판을 운영자가 만든다. 당연한 방식이라 아무도 의문을 안 갖는다. 그런데 노가리를 기획하면서 이 전제 자체를 의심하게 됐다.
운영자가 게시판을 만들면, 그 순간 운영자의 취향과 판단이 커뮤니티 구조에 박힌다. "이 주제는 방 만들 만하다", "저건 별로다" — 이 판단을 혼자 계속 내려야 한다. 사람이 많아질수록 이 병목은 점점 심해진다.
그래서 뒤집었다. 누구나 주제를 제안하고, 72시간 안에 30명이 동의하면 방이 자동으로 열린다. 운영자인 나는 이 과정에 개입하지 않는다. 못 모으면 조용히 사라지고, 모이면 열린다. 일종의 작은 DAO다.
이 결정에는 부작용도 있다는 걸 알고 만들었다. 30명이라는 숫자는 순전히 감이다. 너무 낮으면 아무 주제나 다 열리고, 너무 높으면 콜드 스타트 단계에서 아무것도 안 열린다. 실제로 서비스 초반에는 사람이 없어서 30명을 모으는 일 자체가 힘들 게 뻔했다. 그래서 국회의원 300명을 시드 방으로 미리 깔아뒀다 — "빈 게시판에 처음 글 쓰는 사람이 되기 싫다"는 흔한 심리를 피하려는 장치였다. 이 숫자도 나중에 실사용 데이터를 보면서 조정할 생각이다. 정답이 있는 문제가 아니라 계속 튜닝해야 하는 손잡이라고 보고 있다.
돌이켜보면 이 결정은 기술적인 선택이 아니라 철학적인 선택에 가까웠다. "누가 콘텐츠의 문을 여는가"라는 질문은 커뮤니티 서비스가 태생적으로 안고 있는 권력 구조 문제다. 운영자가 문을 열면 빠르고 일관되지만, 그 커뮤니티는 결국 운영자 한 사람의 취향을 벗어나지 못한다. 반대로 집단 동의로 열면 느리고 예측하기 어렵지만, 적어도 "이 주제가 필요하다"는 판단은 한 사람이 아니라 여럿의 몫이 된다. 어느 쪽이 맞다고 단정할 수는 없다. 다만 나는 후자 쪽을 실험해보고 싶었다.
"뒷담화는 까도, 욕은 하지 말자"
익명 사이트에 검열이 없으면 순식간에 망가진다는 건 안다. 그런데 비판과 풍자를 막아버리면 서비스의 존재 이유 자체가 사라진다. 뒷담화 사이트에서 뒷담화를 막으면 그게 무슨 의미인가.
그래서 원칙을 한 문장으로 정했다. "노가리는 까도, 욕은 하지 말자." 누군가에 대한 날카로운 비판, 불만, 풍자는 전부 허용한다. 대신 욕설, 신상 정보, 명백한 허위사실은 막는다. 이 경계선을 코드로 어떻게 구현했는지는 기술적인 이야기라 다른 글(2단계 댓글 필터링, 신고 AI 모더레이션)에 넘긴다.
여기서 하고 싶은 얘기는 구현이 아니라 이 한 문장을 정하기까지의 고민이다. "욕설을 막는다"는 기준은 얼핏 명확해 보이지만, 실제로 이 문장을 필터링 로직으로 바꾸려고 하면 계속 애매한 경계를 만난다. "이건 비판인가 욕인가", "이 표현은 풍자인가 조롱인가." 결국 완벽한 정답은 없고, 원칙을 최대한 명확한 한 문장으로 박아두고 거기서 계속 다듬어 나가는 수밖에 없다는 걸 깨달았다.
내 이름을 걸 수 있는가
노가리를 다 만들고 나서, 정작 제일 오래 망설인 건 "이걸 어떻게 알릴까"였다.
익명 커뮤니티를 홍보하려면 결국 누군가 커뮤니티 밖에서 "제가 만들었습니다"라고 말해야 한다. 긱뉴스나 디스콰이엇 같은 곳에 소개 글을 올리는 순간, 내 실명 계정과 "노가리 운영자"라는 정체성이 영구히 연결된다. 익명 서비스를 만든 사람이 정작 자기 이름은 익명이 아닌 셈이다.
처음엔 이게 불편하게 느껴졌다. 그런데 다시 생각해보니 오히려 이래야 맞다는 결론이 났다. 익명 서비스일수록 운영자는 책임을 숨기면 안 된다. 신고가 들어오면 누가 판단하고 조치하는지, 문제가 생기면 누구에게 연락해야 하는지가 명확해야 익명성이 악용을 감추는 도구가 아니라 발언을 보호하는 장치로 남는다. 그래서 이용약관과 개인정보처리방침부터 먼저 정비하고, 그다음에 내 이름을 걸고 알리기로 했다. 준비 없이 익명 뒤에 숨어서 운영만 하는 쪽이 오히려 더 무책임하다고 판단했다.
이 망설임 자체가 새로운 발견이었다. 코드를 짜는 동안에는 한 번도 겁나지 않았다. Supabase 스키마를 설계하고, 익명 세션과 device_hash를 연결하고, 신고 파이프라인을 짜는 내내 문제는 전부 "어떻게 구현하지"였지 "이래도 되나"가 아니었다. 그런데 서비스를 다 만들고 알리는 단계에 오니까 처음으로 "이래도 되나"라는 질문이 나왔다. 개발이 다시 시작된 지 몇 달 됐지만, 기술적으로 막히는 것보다 이렇게 "이걸 내 이름으로 세상에 내놔도 되나"를 결정하는 순간이 훨씬 오래 걸린다는 걸 이번에 알았다.
지금 궁금한 것들
서비스를 만들고 나니 답을 모르는 질문들이 남았다.
- 정치인·스포츠 스타 같은 시드 방 300여 개로 콜드 스타트를 버티는 이 방식이 실제로 통할지
- "30명 동의로 방 개설"이라는 장치가 사람이 많아져도 여전히 의미 있게 작동할지, 아니면 숫자를 계속 손봐야 할지
- "까도 되지만 욕은 안 된다"는 경계선이 실제 사용자들 눈에는 어디쯤으로 보일지
기술적인 것보다 이런 질문들에 대한 답은 코드를 아무리 들여다봐도 안 나온다. 사람들이 실제로 써봐야 나온다.
한 번 놀러 오셔서 아무 방에나 노가리 까주시면, 그 자체가 이 질문들에 대한 답이 될 것 같다: nogari.org
backtodev
40대 PM, 다시 개발자로 돌아갑니다. 실패하고 배우며 성장하는 기록.