Skip to content

Latest commit

ย 

History

History
192 lines (130 loc) ยท 5.52 KB

README.md

File metadata and controls

192 lines (130 loc) ยท 5.52 KB

๐Ÿฅ‡WE-TNESS (์œ„ํŠธ๋‹ˆ์Šค)๐Ÿฅˆ

WebRTC์™€ ๋ชจ์…˜์ธ์‹์„ ํ™œ์šฉํ•œ ์šด๋™ ๊ฒŒ์ž„ ์„œ๋น„์Šค



โœจ ๋ชฉ์ฐจ

  1. ์„œ๋น„์Šค ์†Œ๊ฐœ
    1. ์ฃผ์š” ๊ธฐ๋Šฅ ๋ฐ ์‹œ์—ฐํ™”๋ฉด
    2. ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋ฐ ์‹œ์—ฐํ™”๋ฉด
  2. ๊ฐœ๋ฐœํ™˜๊ฒฝ
    1. ์‹œ์Šคํ…œ ํ™˜๊ฒฝ
    2. Technical Architecture Diagram
  3. ํŒ€์› ์†Œ๊ฐœ


๐Ÿ”Ž ์„œ๋น„์Šค ์†Œ๊ฐœ

intro

ํ•ญ์ƒ ์ž‘์‹ฌ ์ผ์ผ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์ง„ ์•Š์œผ์‹ ๊ฐ€์š”?

์š”์ฆ˜ ๋‚ ์”จ, ๋ฐ–์— ๋‚˜๊ฐ€์„œ ์šด๋™ํ•˜๊ธฐ ํž˜๋“ค์ฃ ?

๊ทธ๋ƒฅ ์ˆจ์‰ฌ๊ธฐ๋„ ๋ฒ„๊ฑฐ์šด๋ฐ ์šด๋™์ด ์žฌ๋ฏธ์—†์œผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์š”?

ํ•˜์ง€๋งŒ ์šด๋™์„ ๊ฒŒ์ž„์ฒ˜๋Ÿผ ์ฆ๊ฒ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด?

์œ„ํŠธ๋‹ˆ์Šค์™€ ํ•จ๊ป˜๋ผ๋ฉด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.



๐Ÿ’ป ์ฃผ์š”๊ธฐ๋Šฅ ๋ฐ ์‹œ์—ฐํ™”๋ฉด


๊ฒŒ์ž„ ํ™”๋ฉด - ํ”Œ๋ ˆ์ด ํ™”๋ฉด

๊ฒŒ์ž„ ํ™”๋ฉด - ํ”Œ๋ ˆ์ด ํ™”๋ฉด

์šด๋™ - ํ‘ธ์‹œ์—…

์šด๋™ - ํ‘ธ์‹œ์—…

์šด๋™ - ๋Ÿฐ์ง€

์šด๋™ - ๋Ÿฐ์ง€

์šด๋™ -์Šค์ฟผํŠธ

์šด๋™ - ์Šค์ฟผํŠธ

์šด๋™ - ๋ฒ„ํ”ผ

์šด๋™ - ๋ฒ„ํ”ผ

Teachable Machine - ๋ฒ„ํ”ผ, ์Šค์ฟผํŠธ, ํ‘ธ์‹œ์—…, ๋Ÿฐ์ง€

๋ฒ„ํ”ผ

์Šค์ฟผํŠธ

ํ‘ธ์‹œ์—…

๋Ÿฐ์ง€



๐Ÿ’ป ๊ธฐ๋ณธ๊ธฐ๋Šฅ ๋ฐ ์‹œ์—ฐํ™”๋ฉด

ํ™ˆ ํ™”๋ฉด - ํ˜„์žฌ ์ƒ์„ฑ๋œ ๋ฐฉ

home

๋ฐฉ ์ƒ์„ฑ - ๊ฒŒ์ž„ ์ข…๋ฅ˜, ์ œ๋ชฉ ๋ฐ ์•”ํ˜ธ ์„ค์ •

room_create

ํŠœํ† ๋ฆฌ์–ผ - ์นด๋ฉ”๋ผ ์„ธํŒ… ๋ฐ ์šด๋™ ๋ณ„ ๊ฐ€์ด๋“œ

screen-recording__2_

๋žญํ‚น ํŽ˜์ด์ง€ - ๊ฒŒ์ž„ ์ข…๋ฅ˜ ๋ณ„(์ค‘๋ณต ์„ ํƒ ๊ฐ€๋Šฅ) ๋ฐ ์ง€์—ญ ๋ณ„ ๋žญํ‚น

screen-recording__1_

๊ฒ€์ƒ‰ - ์œ ์ €, ๋ฐฉ ๊ฒ€์ƒ‰ ๋ฐ ์œ ์ € ์šด๋™ ๊ธฐ๋ก ์กฐํšŒ

screen-recording



๐Ÿ“ƒ ๊ฐœ๋ฐœํ™˜๊ฒฝ

์‹œ์Šคํ…œ ํ™˜๊ฒฝ

  • ๐Ÿ”— Frontend

    • React v5.0.1
    • node.js v16.14.0
    • npm v8.7.0
    • redux-toolkit v1.8.3
    • styled-components v5.3.5
  • ๐Ÿ”— CI/CD & Database

    • AWS ec2 - Ubuntu 20.04.4 LTS
    • Docker 20.10.12
    • Jenkins 2.346.3
    • nginx/1.18.0 (Ubuntu)
    • MySQL 8.0.30-0ubuntu0.20.04.2
    • certbot 0.40.0
  • ๐Ÿ”— Backend

    • Spring Boot 2.7.1
    • Spring Data JPA 2.7.1
    • Spring Security 5.7.2
    • Spring Cloud 2.2.6
  • ๐Ÿ”— Web RTC

    • openVidu 2.22.0
  • ๐Ÿ”— Tools

    • Intellij 2022.2
    • VS Code
    • Google Chrome 104.0.5112.81

Technical Architecture Diagram

wetness_archi__1_

๐Ÿคธโ€โ™€๏ธ ํŒ€์› ์†Œ๊ฐœ

  • ์˜คํ˜œ๋ฆฐ(ํŒ€์žฅ)

    • ๋ฐฑ์—”๋“œ
    • User, Rank๊ด€๋ จ API ๊ตฌํ˜„
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„
    • Jenkins๋ฅผ ์‚ฌ์šฉํ•œ ์ž๋™๋นŒ๋“œ
    • nginx์„ธํŒ…
    • EC2 ์„œ๋ฒ„ ํ™˜๊ฒฝ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ
    • ์ตœ์ข… ๋ฐœํ‘œ
  • ๊น€์œค์„

    • ๋ฐฑ์—”๋“œ
    • user ๋กœ๊ทธ์ธ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
    • ํŒ”๋กœ์šฐ, ์•Œ๋ฆผ, ์‹ ๊ณ , ์–ด์›Œ๋“œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
  • ๋ฅ˜ํ˜„์ˆ˜

    • ๋ฐฑ์—”๋“œ
    • Spring Security ํ™œ์šฉํ•œ user ์ธ์ฆ ๊ตฌํ˜„
    • Openvidu ํ™œ์šฉ WebRTC ํ™˜๊ฒฝ ๊ตฌ์ถ•
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„(์นด์นด์˜ค)
  • ๋ฐฐ์ค€์„ฑ

    • ํ”„๋ก ํŠธ์—”๋“œ
    • ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ์„œ ์ž‘์„ฑ
    • react-toolkit & react-router-dom ํ™œ์šฉ SPA ๊ตฌํ˜„
    • axios ์š”์ฒญ์„ ํ†ตํ•œ api ํ†ต์‹ 
    • ํŠœํ† ๋ฆฌ์–ผ ํŽ˜์ด์ง€ ์ œ์ž‘
    • ๋””์ž์ธ ๋ฐ ํ”„๋กœํ† ํƒ€์ž… ์ œ์ž‘
    • ์šด๋™๋ณ„ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ œ์ž‘
    • styled-components ํ™œ์šฉ css ์Šคํƒ€์ผ๋ง
    • ํ˜‘์—…๊ณผ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ์œ„ํ•œ ESLint ์„ค์ •
  • ์ด๋™๊ทผ

    • ํ”„๋ก ํŠธ์—”๋“œ
    • react ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ์„ค๊ณ„
    • react-toolkit & react-router-dom ํ™œ์šฉ SPA ๊ตฌํ˜„
    • axios ์š”์ฒญ์„ ํ†ตํ•œ api ํ†ต์‹ 
    • ํšŒ์› CRUD ๊ตฌํ˜„ (ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ์ •๋ณด ์ˆ˜์ •, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ˆ˜์ •, ํŒ”๋กœ์šฐ ๋“ฑ)
    • ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„ (์นด์นด์˜ค)
    • Openvidu ํ™œ์šฉ ๊ฒŒ์ž„๋ฐฉ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜ ๊ตฌํ˜„
    • teachable machine ํ™œ์šฉ ๋™์ž‘์ธ์‹ ๊ตฌํ˜„
    • styled-components ํ™œ์šฉ css ์Šคํƒ€์ผ๋ง
  • ํ•œ์œ ์—ฐ

    • ๋ฐฑ์—”๋“œ
    • ๊ฒŒ์ž„ ๊ด€๋ จ ๊ธฐ๋Šฅ (๊ฒŒ์ž„ ์ƒ์„ฑ ๋ฐ ๊ฒฐ๊ณผ ์ €์žฅ ๋“ฑ) API ๊ตฌํ˜„
    • ์‚ฌ์šฉ์ž ์šด๋™ ๊ธฐ๋ก ๊ด€๋ จ API ๊ตฌํ˜„
    • ๋‹ค์ด์–ด๋ฆฌ ๊ด€๋ จ ๊ธฐ๋Šฅ, S3 ๋ฒ„ํ‚ท ์—ฐ๋™ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ API ๊ตฌํ˜„
    • EC2 ์„œ๋ฒ„ ํ™˜๊ฒฝ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ
      • DB ์„ธํŒ… ๋ฐ ๊ด€๋ฆฌ
      • Nginx ํ†ตํ•œ ํ”„๋ก์‹œ ์„ค์ •
      • Certbot ํ†ตํ•ด SSL ๊ตฌ์ถ•