개발

코인하우스 커뮤니티 기능 — 투표와 토론을 한 앱에

2021-11-15·2분 읽기

시세 앱과 커뮤니티의 결합

코인 투자자들은 항상 두 가지를 동시에 합니다. 시세를 보고, 다른 사람들의 의견을 찾습니다.

지금은 이 두 가지가 완전히 분리되어 있습니다. 업비트 같은 거래소 앱에서 시세를 보다가, 카카오톡 오픈채팅이나 텔레그램으로 넘어가서 커뮤니티를 찾습니다. 코인하우스는 이 두 가지를 한 앱 안에서 해결하려 했습니다.

코인별 게시판

설계는 단순했습니다. 각 코인마다 전용 게시판을 두는 구조입니다.

비트코인 화면에서 바로 아래로 스크롤하면 비트코인에 대한 글들이 보입니다. 이더리움 화면에서는 이더리움 관련 글들이 나옵니다. 코인을 보면서 바로 그 코인에 대한 커뮤니티로 이어지는 흐름을 만들었습니다.

글 작성은 익명으로도, 계정을 만들어서도 할 수 있게 했습니다. 코인 커뮤니티는 익명 글이 많다는 점을 감안했습니다.

가격 예측 투표

커뮤니티 기능 중에서 가장 반응이 좋았던 건 가격 예측 투표였습니다.

"1주일 후 비트코인 가격이 오를까요, 내릴까요?" — 이런 투표를 올리면 다른 사용자들이 참여합니다. 결과는 실시간으로 업데이트되고, 실제 가격 변동과 비교해볼 수 있습니다.

단순한 기능이지만 참여 유도 효과가 컸습니다. "아, 다들 오른다고 보는구나"라는 정보 자체가 흥미롭고, 자신의 예측을 올리고 싶어지게 만들었습니다.

백엔드 설계 고민

커뮤니티 기능에서 가장 많이 고민한 것은 백엔드 설계였습니다.

실시간 시세는 이미 WebSocket으로 처리하고 있었습니다. 커뮤니티 글과 댓글, 투표 데이터는 Firebase Firestore로 처리했습니다. 실시간 업데이트가 필요하지만 구조화된 쿼리도 필요한 데이터에 Firestore가 잘 맞았습니다.

다만 코인 가격이 급변하는 시장 상황에서 트래픽이 급증하는 문제가 있었습니다. 가격이 크게 움직이면 사람들이 몰려서 동시에 글을 쓰고, 서버 비용이 갑자기 치솟는 경험을 몇 번 했습니다. 요청 제한(rate limiting)과 캐싱 전략을 추가하면서 안정화했습니다.

운영의 어려움

사용자가 늘어나면서 예상치 못한 어려움이 생겼습니다. 커뮤니티 내 허위 정보와 펌핑 의심 글들이었습니다.

"○○코인 내일 상장, 지금 사면 10배"같은 글들이 올라오기 시작했습니다. 신고 기능을 추가하고, 반복 위반 계정을 제한하는 시스템을 만들었습니다. 혼자 모든 걸 운영하면서 이런 신고들을 검토하는 것이 꽤 부담스러웠습니다.

커뮤니티 기능은 사용자를 모으는 데 효과적이지만, 그만큼 운영 비용도 크다는 걸 직접 경험했습니다.