피드로 돌아가기
I Built a Football Tournament Simulator with Vue 3 ⚽
Dev.toDev.to
Frontend

Vue 3 기반Composable 설계를 통한 확장형 토너먼트 시뮬레이터 구현

I Built a Football Tournament Simulator with Vue 3 ⚽

Oraz Chollaev2026년 5월 18일2beginner

Context

단순 대진표 출력 앱에서 복잡한 매치 엔진을 포함한 시뮬레이터로 기능 확장 필요성 증대. 프로젝트 규모 성장에 따른 상태 관리 복잡도 증가와 컴포넌트 비대화 문제 직면.

Technical Solution

  • Vue 3 Composition API 기반의 Composables 추출을 통한 비즈니스 로직과 UI 레이어 분리
  • Pinia를 활용한 전역 상태 관리로 팀 전력, 시즌 데이터, 경기 이력의 일관성 유지
  • 팀 전력 기반 확률 모델과 Randomness를 결합한 Match Engine 알고리즘 설계
  • TypeScript 타입 시스템 적용을 통한 시뮬레이션 데이터 구조의 무결성 보장
  • JSON 기반 Import/Export 시스템 구축으로 사용자 정의 데이터셋 유연성 확보
  • Vue Router 기반의 페이지 전환 구조를 통한 팀 상세 정보 및 히스토리 뷰 구현

1. 단순 MVP에서 기능 확장 시 Composable 단위로 로직을 모듈화하여 코드 중복 방지

2. 시뮬레이션 엔진 설계 시 결정론적 요소(전력)와 확률적 요소(랜덤)의 가중치 밸런싱 검토

3. 복잡한 도메인 상태 관리를 위해 중앙 집중형 Store(Pinia) 도입 고려

원문 읽기