/PuzzlePop-FE

[๐Ÿ†๊ณตํ†ต ํ”„๋กœ์ ํŠธ 1์œ„] ๐Ÿงฉ ์˜จ๋ผ์ธ ๋ฐฐํ‹€ ํผ์ฆ ๊ฒŒ์ž„ Puzzle-Pop!

Primary LanguageJavaScript

๐Ÿงฉ ์˜จ๋ผ์ธ ๋ฐฐํ‹€ ํผ์ฆ ๊ฒŒ์ž„ Puzzle-Pop!

image.png

Video (Youtube)

https://www.youtube.com/watch?v=RBEFKkN09YA

Overview

์ •์ ์ด๊ณ  ๋งž์ถ”๊ธฐ๋งŒ ํ•˜๋Š” ํผ์ฆ ๊ฒŒ์ž„์€ ์ด์ œ ๊ทธ๋งŒ!

์˜จ๋ผ์ธ์œผ๋กœ ์•„์ดํ…œ์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์ƒ๋Œ€๋ฐฉ๊ณผ ๋ฐฐํ‹€ ํผ์ฆ์„ ์‹œ์ž‘ํ•˜์„ธ์š”!

Puzzle-Pop ์„œ๋น„์Šค ํ™”๋ฉด

์ธ๊ฒŒ์ž„

image.png

๊ฒŒ์ž„ ๋ฆฌ์ŠคํŠธ

image.png

๋Œ€๊ธฐ์‹ค

image.png

์•„์ดํ…œ

image.png

์นœ๊ตฌ

image.png

๋žญํ‚น

image.png

์ฃผ์š” ๊ธฐ๋Šฅ

์„œ๋น„์Šค ์†Œ๊ฐœ

์˜จ๋ผ์ธ์œผ๋กœ ๊ณต๊ฒฉ/๋ฒ„ํ”„/๋ฐฉ์–ด ์•„์ดํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํผ์ฆ์„ ๋งž์ถ”๊ณ , ์ƒ๋Œ€๋ฐฉ๊ณผ ๋Œ€๊ฒฐ๊นŒ์ง€ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค

ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ

  • ํ˜‘๋™ ํผ์ฆ ๊ฒŒ์ž„ ์„œ๋น„์Šค
    • WebRTC, WebSocket๊ณผ ํผ์ฆ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํŒ€์›๊ณผ ํผ์ฆํŒ์„ ๊ณต์œ ํ•˜๊ณ  ์†Œํ†ตํ•˜๋ฉฐ ์˜คํ”„๋ผ์ธ์ฒ˜๋Ÿผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฒ„ํ”„ ์•„์ดํ…œ ํšจ๊ณผ, ์ฝค๋ณด ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
  • ๋ฐฐํ‹€ ํผ์ฆ ๊ฒŒ์ž„ ์„œ๋น„์Šค
    • WebRTC, WebSocket๊ณผ ํผ์ฆ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ํŒ€์›๊ณผ ํผ์ฆํŒ์„ ๊ณต์œ ํ•˜๊ณ  ์†Œํ†ตํ•˜๋ฉฐ ์˜คํ”„๋ผ์ธ์ฒ˜๋Ÿผ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ณต๊ฒฉ/๋ฒ„ํ”„/๋ฐฉ์–ด ์•„์ดํ…œ ํšจ๊ณผ, ์ฝค๋ณด ํšจ๊ณผ ๋“ฑ ๋ณด๋‹ค ๋” ๋‹ค์ด๋‚˜๋ฏนํ•œ ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
    • ์ƒ๋Œ€ํŒ€์˜ ํผ์ฆ ์ง„ํ–‰๋ฅ ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๊ณ  ์•„์ดํ…œ์œผ๋กœ ์ƒ๋Œ€๋ฐฉ์„ ๊ณต๊ฒฉ ๋˜๋Š” ์ƒ๋Œ€๋ฐฉ์˜ ๊ณต๊ฒฉ์„ ๋ฐฉ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋น ๋ฅธ ์‹œ์ž‘ ๊ธฐ๋Šฅ
    • ๋žœ๋ค์œผ๋กœ ๋ฐฐํ‹€ 1๋Œ€1 ๊ฒŒ์ž„์„ ๋งค์นญํ•ด์ค€๋‹ค.
  • ์นœ๊ตฌ ๊ด€๋ จ ๊ธฐ๋Šฅ
    • ์นœ๊ตฌ์™€ ์ฑ„ํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์œ ์ €๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์นœ๊ตฌ ์ถ”๊ฐ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋žญํ‚น
    • ๊ฒŒ์ž„ ํƒ€์ž… ๋ณ„ ์Šน๋ฅ , ์Šน๋ฆฌ ํšŸ์ˆ˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋žญํ‚น ์กฐํšŒ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•œ๋‹ค.

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • OS
    • Local : Windows 10
    • AWS : Ubuntu 20.04.4 LTS
  • IDE
    • IntelliJ IDE 2023.3.2
    • Visual Studio Code 1.70.0
  • UI / UX
    • Figma
  • DataBase
    • MySQL workbench 8.0.20 (Windows 10)
    • MySQL 8.0.30 (Ubuntu 20.04.2 LTS)
  • CI/CD
    • Jenkins

์ƒ์„ธ ์Šคํƒ

  • Backend
    • JAVA - Zulu 17
    • Gradle 8.5
    • SpringBoot 3.2.1, JPA, Lombok 1.18.20
    • security, oauth-client2, jjwt 0.11.5
    • JUnit5
    • Stomp 2.3.4
  • FrontEnd
    • HTML5, CSS3, JavaScript(ES6)
    • React 18.2.0, paper.js 0.12.17, Material-UI, recoil 0.7.7
    • Node.js 16.16, Vite 5.0.8
    • @stomp/stompjs 7.0.0
  • Web RTC
    • openvidu-browser 2.29.0

ํ˜‘์—… ํˆด

  • ์ด์Šˆ ๊ด€๋ฆฌ : Jira
  • ํ˜•์ƒ ๊ด€๋ฆฌ : Gitlab, Git
  • ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ : Notion, MatterMost, Discord

์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

image.png

WBS

image.png

API ๋ช…์„ธ์„œ

image.png

ํ™”๋ฉด ์„ค๊ณ„์„œ

image.png

Git Commit ์ปจ๋ฒค์…˜

  • feat : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • fix : ๋ฒ„๊ทธ ์ˆ˜์ •
  • docs : ๋ฌธ์„œ ๋‚ด์šฉ ๋ณ€๊ฒฝ
  • style : ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ
  • refactor : ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
  • test : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ
  • chore : ๋นŒ๋“œ ์ˆ˜์ •, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์„ค์ •, ์šด์˜ ์ฝ”๋“œ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ
type: subject

ex) ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ

- feat: Join in

Git Branch ์ „๋žต

git-flow์ „๋žต

  • master
  • develop
  • feature/fe/function1
  • feature/be/function2

Jira

image.png

ERD

image.png

EC2 ํฌํŠธ ์ •๋ฆฌ

Port
8081 openvidu server
8888 Kurrento server
80 nginx HTTP ๊ธฐ๋ณธ ํฌํŠธ
443 nginx HTTPS
3306 mysql
3001 react app
8080 Spring boot

ํŒ€์› ์—ญํ• 

image.png