1. 프로젝트 개요
프로젝트 기간
: 2024.11.01 ~ 2025.08.22
서비스 링크
fanpal.net
팬팔 - 빠른 채팅 친구 만들기
요약
: 스타와 팬이 실시간으로 소통하는 채팅 애플리케이션 '팬팔'의 웹 프론트엔드, 백엔드, 인프라까지 앱을 제외한 전체 스택을 1인 개발 및 운영한 프로젝트입니다.
담당 역할
: Full-Stack Developer (1인 개발)
2. 주요 기능 및 기여
💬 이 섹션에서는 각 파트별로 구현한 핵심 기능과 본인이 담당한 역할을 구체적인 기술 스택과 함께 서술합니다.
백엔드 (Back-end)
사용한 기술
:
Node.js, Express.js, MySQL, Sequelize ORM, AWS Lambda, AWS API Gateway, AWS WebSocket API
주요 구현 내용
서버리스 아키텍처
: AWS Lambda와 API Gateway를 활용한 서버리스 아키텍처를 구축하여 확장성과 비용 효율성을 확보했습니다. Serverless Framework를 사용하여 인프라를 코드로 관리하고 자동 배포를 구현했습니다.
실시간 채팅 시스템
: AWS WebSocket API를 기반으로 한 실시간 메시지 처리 시스템을 구축했습니다. 채팅방 생성, 메시지 전송, 연결 관리 등의 기능을 구현하고, 대규모 동시 접속자 처리와 메시지 큐잉 로직을 최적화했습니다.
사용자 관리 및 인증
: JWT(Json Web Token)를 이용한 stateless 인증/인가 시스템을 구축했습니다. Access Token과 Refresh Token을 분리하여 보안성을 강화하고, 토큰 검증 및 갱신 로직을 구현했습니다.
데이터베이스 설계
: Sequelize ORM을 활용하여 사용자, 채팅방, 메시지, 알림 등 80개 이상의 테이블 간의 관계를 정의했습니다. v1과 v2 버전으로 API를 분리하여 서비스 확장성을 고려한 관계형 데이터베이스 스키마를 설계했습니다.
알림 시스템
: Firebase Cloud Messaging(FCM)을 활용한 실시간 푸시 알림 시스템을 구축했습니다. 채팅 메시지, 친구 요청, 콘텐츠 업데이트 등 다양한 이벤트에 대한 알림을 자동으로 발송하는 시스템을 구현했습니다.
스케줄링 시스템
: AWS EventBridge를 활용한 정기적인 배치 작업을 구현했습니다. 시간별, 일별, 주별, 월별 크론 작업을 통해 사용자 통계, 수익 정산, 랭킹 업데이트 등의 자동화된 데이터 처리를 수행합니다.
파일 관리
: AWS S3를 활용한 파일 업로드 및 관리 시스템을 구축했습니다. 이미지 최적화, 파일 저장, CDN 연동 등을 통해 효율적인 파일 서비스를 제공합니다.
웹 프론트엔드 (Web Front-end)