← 홈으로

실제 기록 기반 확률형 미니 야구게임

실제 야구 기록을 반영한다는 아이디어에서 시작된 확률 기반 야구 시뮬레이션 게임

Java Spring Boot JPA H2 React TypeScript Vite Axios Oracle Cloud Nginx Cloudflare

프로젝트 개요

실제 사회인야구 기록을 게임에 반영한다는 아이디어에서 시작된 확률 기반 야구 시뮬레이션 게임입니다. 9회 긴박한 상황에서 투수 또는 타자가 되어 게임의 승패를 가르는 경험을 제공합니다.

단순히 랜덤한 결과가 아닌, 실제 타율과 장타율 데이터를 확률 모델로 변환하여 현실적인 게임플레이를 구현했습니다. SecureRandom을 활용한 암호학적으로 안전한 난수 생성으로 게임의 공정성을 보장하며, 사용자는 예측 불가능한 진짜 야구의 긴장감을 느낄 수 있습니다.

Spring Boot 백엔드와 React TypeScript 프론트엔드를 완전히 분리한 풀스택 아키텍처로 개발했으며, Oracle Cloud 인프라에 실제 배포하여 누구나 접속해서 플레이할 수 있는 프로덕션 서비스로 완성했습니다.

핵심 기능

공정성 보장 확률 시스템

실제 타율 데이터를 기반으로 SecureRandom을 활용한 암호학적으로 안전한 난수 생성으로 예측 불가능하고 공정한 게임 결과를 구현했습니다.

JPA 기반 도메인 설계

Game, Player, GameState 엔티티 간 연관관계를 설정하고, 야구 도메인을 객체로 모델링하여 비즈니스 로직을 명확히 분리했습니다.

RESTful API 설계

Spring Boot를 활용해 게임 생성, 상태 조회, 타격/투구 처리 등의 API 엔드포인트를 설계하고 구현했습니다.

React 기반 실시간 UI

React Hooks와 TypeScript를 활용한 타입 안정성 확보, Axios 기반 비동기 통신으로 즉각적인 게임 피드백을 제공합니다.

개발 과정

2025년 11월 4 - 7일
프로젝트 기획 및 설계
실제 야구 기록 기반 확률 게임 아이디어 구체화, 투수/타자 모드 게임플레이 설계, 기술 스택 선정
(Spring Boot, React, TypeScript)
2025년 11월 8 - 13일
백엔드 개발
도메인 설계(Game, Player, GameState), 확률 계산 로직 구현(SecureRandom), REST API 개발, JUnit5 기반 단위 테스트 작성
2025년 11월 14 - 22일
프론트엔드 구현
React 컴포넌트 구조 설계, TypeScript 타입 정의, 게임 상태 관리, Axios 기반 API 연동 및 실시간 UI 업데이트 구현
2025년 11월 22 - 23일
기능 검증 및 버그 수정
실제 플레이 기반 수동 테스트를 통한 FE-BE 연동 검증, 예외 처리 강화, 게임 로직 및 확률 밸런싱, CORS 설정 및 응답 최적화
2025년 11월 23 - 24일
프로덕션 배포
Oracle Cloud 인스턴스 설정, Nginx 리버스 프록시 구성, Cloudflare SSL 인증서 적용, 커스텀 도메인 연결

시스템 구성 및 화면

프로그램 시연 영상