Skip to content
@Baseball-Live-Chat

Baseball Live Chat

1. ์„œ๋น„์Šค ๊ฐœ์š” ๋ฐ ๋ชฉํ‘œ

์„œ๋น„์Šค๋ช…: Baseball Live Chat (๊ฐ€์นญ) ํ•ต์‹ฌ ๊ฐ€์น˜: ์•ผ๊ตฌ ๊ฒฝ๊ธฐ๋ฅผ ๋ณด๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋žซํผ

2. ์ฃผ์š” ๊ธฐ๋Šฅ ์ •์˜

๋ฉ”์ธ ํ™”๋ฉด

  • ์˜ค๋Š˜์˜ ์•ผ๊ตฌ ๊ฒฝ๊ธฐ 5๊ฐœ ๋ฆฌ์ŠคํŠธ ํ‘œ์‹œ
  • ๊ฐ ๊ฒฝ๊ธฐ๋ณ„ ํ˜„์žฌ ์ฑ„ํŒ… ์ฐธ์—ฌ์ž ์ˆ˜, ์ตœ๊ทผ ์ฑ„ํŒ… ๋ฏธ๋ฆฌ๋ณด๊ธฐ
  • ๊ฒฝ๊ธฐ ์ƒํƒœ (๊ฒฝ๊ธฐ ์ „/์ง„ํ–‰ ์ค‘/์ข…๋ฃŒ) ํ‘œ์‹œ
  • ๊ฒฝ๊ธฐ ๊ธฐ๋ณธ ์ •๋ณด (ํŒ€๋ช…, ์‹œ๊ฐ„, ์Šค์ฝ”์–ด)

๊ฒฝ๊ธฐ๋ณ„ ์ฑ„ํŒ… ํ™”๋ฉด

  • ์•ผ๊ตฌ ์ค‘๊ณ„ ์˜์ƒ ์˜์—ญ (iframe ๋˜๋Š” ์™ธ๋ถ€ ๋งํฌ)
  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์˜์—ญ
  • ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฐฝ

์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ

  • ์ต๋ช… ์‚ฌ์šฉ์ž: ๋‹‰๋„ค์ž„๋งŒ ์ž…๋ ฅํ•˜์—ฌ ์ฑ„ํŒ… ์ฐธ์—ฌ
  • ํšŒ์› ์‚ฌ์šฉ์ž: ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ํ›„ ๊ณ ์ • ๋‹‰๋„ค์ž„์œผ๋กœ ์ฑ„ํŒ…

3. ๊ธฐ์ˆ  ์Šคํƒ ๊ตฌ์„ฑ

Backend (Spring Boot)

- WebSocket (STOMP) - ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
- Spring Security - ์ธ์ฆ/์ธ๊ฐ€
- Mybatis - ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
- Redis - ์ฑ„ํŒ… ์บ์‹ฑ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ
- MySQL - ์‚ฌ์šฉ์ž/๊ฒฝ๊ธฐ ์ •๋ณด ์ €์žฅ

Frontend (Vue.js)

- Vue 3 + Composition API
- Pinia - ์ƒํƒœ ๊ด€๋ฆฌ
- Vue Router - ๋ผ์šฐํŒ…
- Socket.io-client - WebSocket ํ†ต์‹ 
- Tailwind CSS/Vuetify - UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

์ฃผ์š” ํ…Œ์ด๋ธ”

-- ๊ฒฝ๊ธฐ ์ •๋ณด
games (id, home_team, away_team, game_date, status, stream_url)

-- ์‚ฌ์šฉ์ž ์ •๋ณด
users (id, username, password, nickname, created_at)

-- ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€
chat_messages (id, game_id, user_id, nickname, message, timestamp, is_anonymous)

-- ์ต๋ช… ์„ธ์…˜
anonymous_sessions (session_id, nickname, game_id, created_at)

5. ํ™”๋ฉด ๊ตฌ์„ฑ

1) ๋ฉ”์ธ ํŽ˜์ด์ง€ (/)

  • ํ—ค๋”: ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ
  • ๊ฒฝ๊ธฐ ๋ฆฌ์ŠคํŠธ ์นด๋“œํ˜• ๋ ˆ์ด์•„์›ƒ
  • ๊ฐ ์นด๋“œ: ํŒ€ ์ •๋ณด, ์‹œ๊ฐ„, ์ฐธ์—ฌ์ž ์ˆ˜, ์ตœ๊ทผ ์ฑ„ํŒ… 30๊ฐœ

2) ๊ฒฝ๊ธฐ ์ƒ์„ธ ํŽ˜์ด์ง€ (/games/:gameId)

pc

  • ์™ผ์ชฝ : ๋ฌธ์ž ์ค‘๊ณ„
  • ์˜ค๋ฅธ์ชฝ : ์ฑ„ํŒ… ์˜์—ญ

๋ชจ๋ฐ”์ผ

  • ์ƒ๋‹จ: ์ค‘๊ณ„ ์˜์ƒ (50% ํ™”๋ฉด)
  • ํ•˜๋‹จ: ์ฑ„ํŒ… ์˜์—ญ (50% ํ™”๋ฉด)
  • ์šฐ์ธก ์‚ฌ์ด๋“œ๋ฐ”: ์ฐธ์—ฌ์ž ๋ชฉ๋ก (์˜ต์…˜)

3) ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… ๋ชจ๋‹ฌ

6. ์ฃผ์š” ๊ฐœ๋ฐœ ํฌ์ธํŠธ

WebSocket ํ†ต์‹  ๊ตฌ์กฐ

// Vue.js์—์„œ WebSocket ์—ฐ๊ฒฐ
const socket = io('/game-' + gameId)
socket.on('newMessage', (message) => {
  messages.value.push(message)
})

Spring Boot WebSocket ์„ค์ •

@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
    // STOMP ์—”๋“œํฌ์ธํŠธ ์„ค์ •
    // ์ฑ„ํŒ… ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๊ตฌ์„ฑ
}

7. ๊ฐœ๋ฐœ ์šฐ์„ ์ˆœ์œ„

Phase 1 (MVP)

  1. ๊ธฐ๋ณธ ๊ฒฝ๊ธฐ ๋ชฉ๋ก ํ‘œ์‹œ
  2. ๊ฒฝ๊ธฐ๋ณ„ ์ฑ„ํŒ…๋ฐฉ ๊ตฌํ˜„
  3. ์ต๋ช… ์ฑ„ํŒ… ๊ธฐ๋Šฅ
  4. ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง€ ์†ก์ˆ˜์‹ 

Phase 2

  1. ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ
  2. ์ฑ„ํŒ… ํžˆ์Šคํ† ๋ฆฌ ์ €์žฅ
  3. ์‚ฌ์šฉ์ž๋ณ„ ๋‹‰๋„ค์ž„ ๊ด€๋ฆฌ

Phase 3

  1. ์ค‘๊ณ„ ์˜์ƒ ์—ฐ๋™
  2. ์ฑ„ํŒ… ํ•„ํ„ฐ๋ง/์‹ ๊ณ  ๊ธฐ๋Šฅ
  3. ์ด๋ชจํ‹ฐ์ฝ˜/๋ฐ˜์‘ ๊ธฐ๋Šฅ

Popular repositories Loading

  1. BLC_Frontend BLC_Frontend Public

    BLC Project Frontend

    Vue 1

  2. BLC_Backend BLC_Backend Public

    BLC Project Backend

    Java 1

  3. .github .github Public

    BLC ํ”„๋กœ์ ํŠธ ๋ฆฌ๋“œ๋ฏธ

Repositories

Showing 3 of 3 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โ€ฆ