← 프로젝트 목록

Twotoo (투투)

연인과 함께 22일간의 최소 목표 기간을 기반으로 새로운 습관 형성을 돕는 챌린지·기록 앱

Mash-Up 13기 | 2023.03 — 진행중

Project Overview

Twotoo는 연인이 서로의 습관 형성을 독려하고 기록하는 서비스입니다. 22일이라는 최소 목표 기간을 설정하여 작은 습관부터 차근차근 만들어갈 수 있도록 돕습니다. 챌린지 생성, 인증샷 기록, 서로 찌르기(알림) 등의 기능을 제공합니다.

Architecture

Twotoo의 서버 아키텍처입니다. 서비스의 지속 가능성과 유지보수 효율을 높이기 위한 구조로 설계되었습니다.

Twotoo Architecture Diagram

Key Technical Points

  • 아키텍처 마이그레이션 (NestJS → Express)

    초기 NestJS/Docker/ECR 기반 구조에서 서비스 규모와 팀의 운영 편의성을 고려하여 Express/TypeScript/PM2 구조로 마이그레이션을 진행했습니다. 이를 통해 빌드 및 배포 속도를 개선하고, 장기적인 유지보수 효율을 확보했습니다.

  • 서버리스 알림 시스템 (AWS Lambda & EventBridge)

    사용자의 챌린지 참여를 독려하는 정기 알림 기능을 AWS Lambda와 EventBridge를 활용한 서버리스 구조로 분리했습니다. 메인 서버의 부하를 줄이고 독립적인 스케줄링 관리가 가능하도록 구축했습니다.

  • 데이터 가시성 확보 및 성과 (MongoDB Atlas Charts)

    MongoDB Atlas Charts를 활용하여 실시간 유저 활동 및 챌린지 현황 대시보드를 구축했습니다. 이를 통해 가입 유저 5,000명 돌파, 인증 수 40,000건 이상 등의 주요 지표를 실시간으로 모니터링하며 서비스 성장을 추적했습니다. 개발자뿐만 아니라 기획, 디자인 파트에서도 서비스 지표를 쉽게 확인하고 의사결정에 활용할 수 있는 환경을 제공했습니다.

    Twotoo MongoDB Atlas Chart
  • 로그 관리 자동화

    PM2-Logrotate와 Cron Job을 활용하여 로컬 로그 파일의 생명주기를 관리하고, 중요한 로그는 S3에 백업하는 프로세스를 자동화하여 안정적인 운영 환경을 구축했습니다.

Tech Stack

Node.js Express TypeScript MongoDB Atlas AWS EC2 (Ubuntu) AWS S3 AWS Lambda AWS EventBridge Firebase (FCM) PM2 GitHub Actions