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

과제: 투자 정보를 수백 명에게 동시에 전하고 상담까지 이어가야 했지만, 일반 메신저로는 대규모 방 관리와 상담 기록 보존이 어려웠고 금융 정보 유출 위험도 컸습니다.
한 것: 채팅·보이스톡 사용자 앱(Flutter) + 실시간 상담·회원 관리 관리자 웹(React) + NestJS 채팅 서버
결과물


프로젝트 정보
- 클라이언트·업종:
- 기간: 2024.10 ~ 2024.12
- 담당 범위: 기획 · 앱 · 웹 프론트엔드 · 백엔드
- 주요 산출물: 1:1·그룹 채팅 앱, 보이스톡, 투자 인사이트 피드, 관리자 상담·회원·권한 관리
- 플랫폼:
- 기술 스택:
어떻게 풀었나
마지막 동기화 시점 이후 메시지만 다시 보내는 재접속 동기화
서버는 클라이언트별 마지막 동기화 시점(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개월이었습니다(기간 기준, 금액과 무관). 기획을 마친 뒤 백엔드, 앱·웹 개발 순서로 진행했습니다.
비슷한 프로젝트를 고민 중이라면, 상담만 받아보셔도 됩니다.
기획 범위, 디자인 시스템, 개발 핸드오프까지 필요한 내용을 함께 확인해 드릴게요.