PORTFOLIO

Every Talk 투자 정보 커뮤니케이션 플랫폼

투자자문사 의뢰로 만든, 보이스톡과 실시간 피드를 결합한 투자 정보 공유 플랫폼 프로젝트입니다.

  • 투자자문
  • 보이스톡
  • 실시간 피드
  • 보안 커뮤니케이션
에브리톡 서비스 이미지

과제: 투자 정보를 수백 명에게 동시에 전하고 상담까지 이어가야 했지만, 일반 메신저로는 대규모 방 관리와 상담 기록 보존이 어려웠고 금융 정보 유출 위험도 컸습니다.

한 것: 채팅·보이스톡 사용자 앱(Flutter) + 실시간 상담·회원 관리 관리자 웹(React) + NestJS 채팅 서버

결과물

보이스톡과 실시간 인사이트 피드를 결합한 투자 정보 공유 플랫폼.

Every Talk 결과물 화면 1Every Talk 결과물 화면 2

프로젝트 정보

  • 클라이언트·업종: 투자자문사(사명 비공개) · 투자자문·컨설팅
  • 기간: 2024.10 ~ 2024.12
  • 담당 범위: 기획 · 앱 · 웹 프론트엔드 · 백엔드
  • 주요 산출물: 1:1·그룹 채팅 앱, 보이스톡, 투자 인사이트 피드, 관리자 상담·회원·권한 관리
  • 플랫폼: 사용자 App / 관리자 Web
  • 기술 스택: Flutter · GetX · SQLite · React · Vite · Zustand · Socket.IO · NestJS · MySQL(TypeORM) · GraphQL · Firebase Auth·FCM · AWS S3·CloudFront · Sendbird Calls

1,000명이 한 방에 있어도 메시지를 하나도 놓치지 않게 할 수 있을까

투자 정보는 전달 시점이 중요해서, 대규모 방에서 메시지가 늦거나 빠지면 그 자체로 문제가 됩니다. 금융 상담은 기록을 남기고 접근 권한을 통제해야 하므로, 메신저처럼 편하게 쓰면서도 관리자가 전 과정을 확인할 수 있어야 했습니다. 모바일은 네트워크가 수시로 끊기기 때문에, 재접속할 때마다 빠진 메시지를 채우는 구조도 필요했습니다.

어떻게 풀었나

마지막 동기화 시점 이후 메시지만 다시 보내는 재접속 동기화

서버는 클라이언트별 마지막 동기화 시점(lastSyncTime)을 기록해 두고, 재접속하면 그 이후 메시지만 골라 보냅니다. 앱은 메시지 ID로 순서를 맞추고 중복을 걸러내며, 연결이 끊기면 SQLite 로컬 저장소에 메시지를 보관해 오프라인에서도 이전 대화를 볼 수 있습니다. 메시지 본문과 별도로 추가·삭제·입장·퇴장 이벤트를 채팅방 로그로 남겨, 대규모 방의 흐름을 나중에 추적할 수 있습니다.

사용자·관리자 연결을 분리하고 MASTER·EXPERT·BUSINESS로 나눈 권한

같은 채팅방이라도 일반 사용자 연결과 관리자 연결을 별도 엔티티로 관리하고, 사용자는 초대 → 참여 → 퇴장 순서로만 상태가 전이하도록 했습니다. 관리자는 MASTER·EXPERT·BUSINESS 권한으로 나눠 라우트와 API 접근을 분기했고, EXPERT·BUSINESS는 통화 이력 등 본인 관련 기록만 조회할 수 있습니다. 채팅방을 만들면 생성자와 MASTER 관리자가 자동으로 등록돼 관리 사각지대가 생기지 않습니다.

녹음 파일을 시간 제한 URL로만 여는 보이스톡과 자동 삭제 메시지

보이스톡은 Sendbird Calls로 연결하고, 통화 녹음 파일은 S3에 저장해 시간 제한이 걸린 Pre-signed URL로만 열람하게 했습니다. 민감한 정보는 관리자가 만료 시점을 지정해 보내는 메시지로 전달하며, 시간이 지나면 앱에서 자동으로 사라집니다. 채팅방에 접속해 있지 않은 사용자에게는 알림 설정과 FCM 토큰 보유 여부로 대상을 걸러 푸시를 병렬 발송합니다.

이런 고민이면 이 사례가 답입니다

수백 명 규모 단체방을 직접 운영해야 하거나, 상담 기록과 통화 녹음을 보관해야 하거나, 직원 권한별로 볼 수 있는 대화를 나눠야 하는 경우에 이 사례를 참고할 수 있습니다.

  • 1000명 단체 채팅방 앱 개발
  • 투자 상담용 채팅 보이스톡 앱 만들기
  • 상담 기록이 보관되는 사내 메신저 개발

자주 묻는 질문

프로젝트 진행과 산출물에 대한 자주 묻는 질문을 정리했습니다.

Q. 상담 통화 녹음은 어떻게 관리하나

Sendbird Calls로 통화를 연결하고 녹음 파일은 AWS S3에 저장합니다. 관리자는 날짜·닉네임으로 통화 이력을 조회할 수 있고, 파일은 시간 제한이 걸린 URL로만 열립니다.

Q. 개발 기간은 얼마나 걸렸나

이 건은 3개월이었습니다(기간 기준, 금액과 무관). 기획을 마친 뒤 백엔드, 앱·웹 개발 순서로 진행했습니다.

갱신 2026.01.23 · 제로스튜디오

비슷한 프로젝트를 고민 중이라면, 상담만 받아보셔도 됩니다.

기획 범위, 디자인 시스템, 개발 핸드오프까지 필요한 내용을 함께 확인해 드릴게요.