Skip to content

boostcampwm2025/web10-beastcamp

Repository files navigation

🎟️ 내티켓 - 티켓팅 시뮬레이터 (Ticketing Simulator)

수십만명이 참여하는 경쟁이 치열한 티켓팅을 시도해보신적이 있으신가요? 기회는 단 한번 뿐, 티켓팅 성공률은 매우 낮고, 원하는 시간과 좌석을 선택하기 어렵습니다. 하지만, 지정된 시각에만 오픈되는 티켓팅을 사전에 연습하기는 어렵고, 실패하면 다시 기회가 오지 않습니다.

실전과 가장 유사한 티켓팅 연습 환경을 제공하는 티켓팅 시뮬레이터

이에 저희는 경쟁이 치열한 공연 티켓팅을 앞둔 사람들을 위한 실전 연습 서비스인 티켓팅 시뮬레이터 를 기획하고 개발하게 되었습니다.


지금 바로 접속하기

개발팀노션     |    Wiki     |    Github Project    



default.mp4

팀원 소개


Jerry

Parrot

Happy

Jude

Chad
J285_함형민 J042_김서연 J110_박서현 J124_박지찬 J277_최현호

📌 주요 기능

모의 티켓팅 시뮬레이션

  • 실제 티켓팅 환경과 동일한 환경에서 단계별 티켓팅 프로세스 제공
  • 공연 정보에 따라 플랫폼 별 UI/UX 제공 ( 인터파크, Yes24, 티켓링크, 멜론티켓 )
날짜/회차 선택 → 대기열 진입 → 보안문자 입력 → 구역 및 좌석 선택 → 예매 완료 -> 피드백

공연 상세 화면 조회(인터파크) 공연 상세 화면 조회(Yes24)
대기열 진입 보안문자 입력 구역 및 회차 선택

봇 트래픽 발생

  • 봇을 활용해 실제 상황과 유사한 수준의 가상 트래픽을 생성
  • 실존 트래픽 경쟁에 가까운 환경을 제공

티켓팅 결과 피드백 & 랭킹 제공

  • 각 단계별 소요 시간 측정(접속, 대기열, 보안문자, 좌석선택)
  • 전체 소요 시간, 전체 사용자 대비 순위를 제공하여 피드백
  • 각 티켓팅(예매) 진행 이후 랭킹(순위) 제공
예매 피드백 랭킹 시스템

실제 티켓팅 정보 연동

  • 실제 티켓팅 정보를 받아와 예정된 티켓팅 일정을 제공
메인화면 다가오는 티켓팅 공연 정보 제공

네트워크 환경 점검

  • 현재 환경의 네트워크 속도·ping 값을 확인
  • 성공률에 중요한 네트워크 상태 정보를 표시

플랫폼 별 티켓팅 개인 연습

  • 각 플랫폼 (인터파크·YES24·멜론티켓) 별로 실제 예매 사이트 UI/UX 를 기준으로 최적화된 연습을 진행

시스템 아키텍처

수십만명 트래픽을 감당할 수 있는 대규모 시스템 설계를 목적으로 안정성, 가용성을 중시한 아키텍처를 설계했습니다. 더 자세한 기술적 설계 여정은 Wiki ADR 문서를 참고해주세요.

image Screenshot 2026-01-30 at 2 12 26 AM

프로젝트 구조

본 프로젝트는 MSA 환경에서의 모노레포 아키텍처로 구성되어 있습니다.

ticketing-system/
├── pnpm-workspace.yaml          # 모노레포 workspace 설정
├── package.json                 # 루트 package.json (모노레포 스크립트)
├── pnpm-lock.yaml              # 전역 lock file
│
├── frontend/                    # 프론트엔드 (Next.js)
│   ├── src/
│   └── package.json
│
├── backend/                     # 백엔드 서버들
│   ├── api-server/             # 일반 API 서버
│   │   ├── src/
│   │   └── package.json
│   │
│   └── ticket-server/          # 티켓 예매 전용 서버
│       ├── src/
│       └── package.json
│
├── queue-backend/              # 대기열 큐 서버
│   ├── src/
│   └── package.json
│
└── packages/                   # 공유 패키지
    └── shared-types/           # 공통 타입 정의
        ├── src/
        │   ├── booking.ts
        │   ├── queue.ts
        │   └── events.ts
        └── package.json

시작하기 ( How to Start )

1. 패키지 설치

프로젝트 루트에서 다음 명령어를 실행하여 모든 workspace의 의존성을 설치합니다.

pnpm install

모노레포 구조이므로 루트에서 한 번만 실행하면 모든 하위 프로젝트의 의존성이 자동으로 설치됩니다.

2. 개발 서버 실행

각 서버를 개별적으로 실행할 수 있습니다.

# API 서버 실행
pnpm dev:api

# 티켓 서버 실행
pnpm dev:ticket

# 대기열 큐 서버 실행
pnpm dev:queue

# 프론트엔드 실행
pnpm dev:frontend

🛠️기술 스택

Frontend

Next.js React TypeScript Tailwind CSS
TanStack Query

Backend

NestJS TypeScript TypeORM

Database

MySQL Redis

DevOps

Docker NCP

About

실전과 가장 유사한 티켓팅 연습 환경을 제공하는 리얼리즘 티켓팅 시뮬레이터

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors