Skip to content
@BooOwlOwl

부울울 - 부엉이 마을의 올빼미를 찾아라!

부울울 (BooOwlOwl) - 부엉이숲의 올빼미를 찾아라!

부울울 바로가기

2026.08 - 현재 | 팀 프로젝트 | 실 운영 서비스

부울울은 손그림풍 그래픽의 채팅 기반 온라인 마피아 게임입니다. 4-8명의 플레이어가 한 방에 모여 부엉이팀과 올빼미팀으로 나뉘고, 밤 행동과 낮 토론, 투표를 반복하며 숨어 있는 올빼미를 찾아냅니다.

한눈에 보기

항목 내용
장르 채팅 기반 온라인 마피아 게임
운영 상태 실 운영 서비스
플레이 인원 4-8명
주요 플랫폼 모바일 웹, Android 앱
인증 Google OAuth2
핵심 통신 REST API + WebSocket STOMP
배포 Docker, GitHub Actions, GHCR, Nginx

주요 기능

  • Google OAuth 로그인과 첫 닉네임 설정
  • 로비의 방 목록 조회, 방 생성, 비밀번호 방 입장
  • 대기방 실시간 채팅, 준비 상태, 방장 권한, 강제퇴장
  • 서버 타이머에 맞춘 직업 배정, 밤, 새벽 결과, 낮 토론, 투표, 최후의 반론, 찬반투표, 결과 진행
  • 직업별 밤 행동과 능력 결과 처리
  • 낮 전체 채팅, 올빼미 밤 채팅, 사망자 채팅을 구분하는 채팅 가시성 제어
  • 새로고침이나 재접속 후에도 이어지는 게임 상태 복구
  • 게임 결과 저장과 사용자 전적 갱신

게임 흐름

flowchart LR
    A[Google OAuth 로그인] --> B[닉네임 설정]
    B --> C[로비]
    C --> D[방 생성 또는 입장]
    D --> E[대기방 준비]
    E --> F[게임 시작]
    F --> G[밤 행동]
    G --> H[낮 토론]
    H --> I[투표]
    I --> J[최후의 반론]
    J --> K[처형 찬반투표]
    K --> L{승리 조건}
    L -->|미충족| G
    L -->|충족| M[게임 결과]
    M --> N[방 복구]
Loading

기술 구성

Frontend

영역 기술
UI React 19, TypeScript, Vite
라우팅 React Router
실시간 통신 STOMP WebSocket
모바일 앱 Capacitor Android
로컬 저장 Secure Storage, token storage
품질 관리 ESLint, Prettier, TypeScript, Vitest

프론트엔드는 모바일 화면을 우선으로 두고 로그인, 닉네임 설정, 로비, 대기방, 인게임, 결과 화면을 제공합니다. /dev/ui 검증 허브에서는 주요 UI 상태와 게임 시나리오를 mock 데이터로 확인할 수 있습니다.

Backend

영역 기술
런타임 Java 21, Spring Boot
인증/보안 Spring Security, OAuth2 Client, JWT
실시간 통신 WebSocket STOMP
영속 저장 MariaDB, Spring Data JPA
런타임 상태 Redis
API 문서 Springdoc OpenAPI, Swagger UI
운영 Docker Compose, Nginx, Certbot, GitHub Actions

백엔드는 로그인과 사용자 정보, 대기방 상태, 게임 페이즈, 직업 배정, 밤 행동, 투표, 승패 판정, 채팅 권한을 처리합니다. 방 상태는 Redis에 두고, 게임 기록과 결과는 MariaDB에 남깁니다.

주요 도메인

도메인 역할
user Google OAuth 로그인, JWT 발급/무효화, 닉네임, 전적
room 방 생성/입장/퇴장/준비/강퇴, 대기방 채팅, 게임 시작
game 직업 배정, 페이즈 타이머, 밤 행동, 투표, 채팅, 승패 판정
common 헬스 체크, 예외 처리, 공통 응답

구현된 대표 직업

팀 직업
올빼미팀 올빼미, 백수올빼미, 스파이올빼미
부엉이팀 경찰부엉이, 의사부엉이, 아기부엉이, 군인부엉이, 정치인부엉이, 기자부엉이, 테러리스트부엉이, 성직자부엉이, 예언자부엉이, 최면술사부엉이, 점쟁이부엉이

저장소

저장소 역할
boo-frontend React/Vite 기반 모바일 웹 클라이언트와 Capacitor Android 앱
BE Spring Boot 기반 API, WebSocket, 게임 서버
.github 조직 프로필과 공통 GitHub 메타데이터

배포 구조

flowchart LR
    U[사용자] --> N[Nginx HTTPS]
    N --> F[Frontend static container]
    N --> B[Backend Spring Boot container]
    B --> M[(MariaDB)]
    B --> R[(Redis)]
Loading
  • 프론트엔드는 Vite production build를 Nginx static image로 패키징합니다.
  • 백엔드는 Spring Boot Docker image로 빌드해 GHCR에 게시합니다.
  • GitHub Actions가 main 브랜치 기준으로 이미지를 빌드하고, SSH로 운영 서버에 배포합니다.
  • HTTPS 진입점은 Nginx가 맡고 /api, /oauth2, /login, /ws 요청은 백엔드로 전달합니다.

품질 관리

영역 확인 방법
Frontend npm run check, npm run build, npm run test
Backend ./gradlew test, ./gradlew bootJar
API /swagger-ui.html, /v3/api-docs/public
운영 상태 /api/health, /actuator/health

앞으로

부울울은 모바일에서 빠르게 입장하고, 끊기지 않고 대화하며, 재접속 후에도 게임 흐름을 놓치지 않는 경험을 목표로 합니다. 지금은 핵심 게임 루프와 실시간 통신, 모바일 앱 전환 기반을 갖췄고, 이후 확장 직업과 운영 도구, 릴리즈 안정화를 더해갈 예정입니다.

Popular repositories Loading

  1. .github .github Public

Repositories

Showing 1 of 1 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…