프로젝트 배경
1) 예상 리스크 및 대응 계획 - 동시 구매 요청 시 잔액 체크와 차감 사이에 경쟁 조건이 발생할 리스크가 있으며, PostgreSQL SELECT FOR UPDATE로 코인 레코드를 락하여 원자적 처리를 보장할 계획입니다 - 서버 재시작 시 Redis Sorted Set이 초기화되어 DB와 불일치할 리스크가 있으며, 서버 시작 시 DB 집계값으로 Redis를 재초기화하는 워밍업 로직으로 대응할 계획입니
프로젝트 성과
NestJS 모듈 기반 확장 아키텍처 설계
채널·상점·신고·관리자 도메인을 독립 NestJS 모듈로 분리하여 기능 추가 시 기존 코드 수정 없이 모듈 단위 확장이 가능한 구조를 설계합니다
가상화폐 구매 원자적 트랜잭션 구현
PostgreSQL 트랜잭션으로 코인 차감과 아이템 지급을 단일 원자 연산으로 묶어 중간 실패 시 자동 롤백되는 결제 로직을 구현합니다
Redis Sorted Set 기반 채널 랭킹 구현
Socket.io 입장·퇴장 이벤트마다 Redis ZADD로 참여자 수를 갱신하여 실시간 인기 채널 순위를 O(log N) 복잡도로 조회하는 구조를 구현합니다
신고 처리 상태머신 설계
NestJS 상태머신 패턴으로 신고 접수→검토→처리 완료 단계를 모델링하고 각 전환에서 관리자 권한 검증과 DB 기록을 원자적으로 처리합니다
Socket.io 관리자 강제 퇴장 구현
관리자 전용 Socket.io 네임스페이스에서 제재 이벤트를 발행하면 피제재자의 소켓을 서버 사이드에서 disconnect하여 즉시 채널에서 퇴장시키는 구조를 구현합니다
핵심 기능
진행 단계
NestJS 모듈 구조 설계 및 Prisma 스키마 정의
2026.04
채널·상점·신고·관리자 도메인별 NestJS 모듈 분리, Prisma 스키마 DB 테이블 8개 및 관계 매핑 정의
프로젝트 상세
1) 포트폴리오 소개 MVP 음성 채팅 플랫폼을 확장한 커뮤니티 허브입니다. 공개 채널 탐색, 가상화폐 기반 아이템 상점, 관리자 대시보드, 신고·제재 시스템을 갖추어 실제 서비스 런칭을 위한 확장 방향을 제시합니다. 2) 작업 범위 - 공개 채널 탐색: 태그 기반 공개 음성 채널 디렉토리 - 아이템 상점: 가상화폐 기반 마이룸 꾸미기 아이템 상점 - 관리자 대시보드: 채널·사용자·신고 통합 관리







