Skip to content

๐Ÿ“Œ SSAFY ๊ณตํ†ต ํ”„๋กœ์ ํŠธ - ์›๊ฒฉ ๋ฆฌ์ฝ”๋” ๊ต์œก ํ”Œ๋žซํผ

Notifications You must be signed in to change notification settings

devTaemin/tutorecorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽผ ํŠœํ† ๋ฆฌ์ฝ”๋” - ์›๊ฒฉ ์•…๊ธฐ ๊ต์œก ํ”Œ๋žซํผ

๐Ÿ“† ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ธฐ๊ฐ„

2023.01.09(์›”) ~ 2023.02.17(๊ธˆ) (39์ผ๊ฐ„ ์ง„ํ–‰)
SSAFY 8๊ธฐ 2ํ•™๊ธฐ ๊ณตํ†ตํ”„๋กœ์ ํŠธ - ํŠœํ† ๋ฆฌ์ฝ”๋”

๐Ÿ’ป ์„œ๋น„์Šค ํ™”๋ฉด

๋ฉ”์ธํ™”๋ฉด / ๋‹‰๋„ค์ž„ ์„ค์ •

๋ชจ๋“œ ์„ค์ • ํ™”๋ฉด / ํ˜ผ์žํ•˜๊ธฐ ๋ชจ๋“œ ํ™”๋ฉด

ํ˜ผ์žํ•˜๊ธฐ ํŠœํ† ๋ฆฌ์–ผ / ํ˜ผ์žํ•˜๊ธฐ ์†Œ๋ฆฌ๋‚ด๊ธฐ

ํ˜ผ์žํ•˜๊ธฐ ์—ฐ์ฃผํ•˜๊ธฐ / ๊ฐ™์ดํ•˜๊ธฐ ๋Œ€๊ธฐ๋ฐฉ

๊ฐ™์ดํ•˜๊ธฐ ์นด์นด์˜คํ†ก ๊ณต์œ  / ๊ฐ™์ดํ•˜๊ธฐ ๋ฐฉ ์„ค์ •

๊ฐ™์ดํ•˜๊ธฐ ์†Œ๋ฆฌ๋‚ด๊ธฐ / ๊ฐ™์ดํ•˜๊ธฐ ์—ฐ์ฃผํ•˜๊ธฐ



๐ŸŽต ๊ธฐํš ๋ฐฐ๊ฒฝ

์Œ์•…์  ์„ฑ์žฅ์ด ๊ฐ€์žฅ ๊ธ‰์†ํ•˜๊ฒŒ ๋ฐœ๋‹ฌํ•˜๋Š” ์‹œ๊ธฐ๋Š” ์ดˆ๋“ฑํ•™๊ต ์‹œ๊ธฐ์ด๋ฉฐ ์ด ์‹œ๊ธฐ์˜ ์Œ์•…์  ๊ฒฝํ—˜์€ ์•„์ด๋“ค์—๊ฒŒ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค.

  • ๋†’์€ ํ•™์—… ์„ฑ์ทจ๋„์™€ ์ž์กด๊ฐ
  • ์ฐฝ์˜์ ์ธ ์‚ฌ๊ณ 
  • ์˜์‚ฌ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅํ–ฅ์ƒ ํ•˜์ง€๋งŒ ํ˜„์žฌ ์ฝ”๋กœ๋‚˜๋กœ ์ธํ•ด ๊ต์‹ค์—์„œ ๋งˆ์Šคํฌ๋ฅผ ์ฐฉ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Œ์•…๊ต์œก์„ ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ์–ด๋ ค์›€์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด์„œ ํƒ„์ƒํ•œ WebRTC๊ธฐ๋ฐ˜์˜ ์›๊ฒฉ ์•…๊ธฐ ๊ต์œก ํ”Œ๋žซํผ ์ž…๋‹ˆ๋‹ค

๐ŸŽถ ๊ฐœ์š”

์›๊ฒฉ ์•…๊ธฐ ๊ต์œก ํ”Œ๋žซํผ - ํŠœํ† ๋ฆฌ์ฝ”๋”

  • ๊ฐ์ž์˜ ์‹ค๋ ฅ์— ๋”ฐ๋ฅธ ์—ฐ์Šต ๋ฐฉ๋ฒ• ์ œ์‹œ

์ดˆ๋“ฑ๊ต์œก๊ณผ์ •์˜ ์—ฌ๋Ÿฌ ๋™์š”๋“ค์„ ํ†ตํ•ด์„œ ์ž์‹ ์˜ ์ˆ˜์ค€์˜ ๋งž๋Š” ๊ณก์„ ์„ ํƒํ•˜์—ฌ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ

๊ฒŒ์ž„ ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์คŒ์œผ๋กœ์จ ์ž์‹ ์˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป ์Šคํ† ๋ฆฌ๋ณด๋“œ

์Šคํ† ๋ฆฌ๋ณด๋“œ

๐Ÿ“š ๊ธฐ์ˆ  ์Šคํ… ๋ฐ ์ฃผ์š” ๊ธฐ๋Šฅ

๐ŸŽฅ OpenVidu

OpenVidu๋Š” ์›น ๋˜๋Š” ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.



๐Ÿ‘ค teachable machine

๋ฆฌ์ฝ”๋”์˜ ๊ฐ ์Œ๊ณ„๋ฅผ ํ•™์Šต์‹œ์ผœ ์†Œ๋ฆฌ ์ธ์‹์„ ํ†ตํ•ด ์œ ์ €๊ฐ€ ์—ฐ์ฃผํ•˜๋Š” ์Œ๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์š”๊ตฌํ•˜๋Š” ์Œ๊ณ„์™€ ๋งž๋Š”์ง€ ํ‹€๋ฆฐ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ฒŒ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ•™์Šต์‹œํ‚จ ๋ชจ๋ธ์—์„œ ์†”๊ณผ ๋ผ๋ฅผ ๊ฐ๊ฐ ์—ฐ์ฃผํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ํŠœํ† ๋ฆฌ์ฝ”๋”์—์„œ๋Š” ์Œ๊ณ„๋ณ„๋กœ ๋„์ถœ๋œ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ์–ด๋–ค ์Œ๊ณ„์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด์ง€ ํŒ๋‹จํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์†Œ๋ฆฌ๋‚ด๊ธฐ

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๋Š” ์†Œ๋ฆฌ๊ฐ€ ํ•™์Šต๋œ ๋ฐ์ดํ„ฐ์ค‘ ์–ด๋Š ๊ฒƒ์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด์ง€ ํŒ์ •
  • ๋„๋ถ€ํ„ฐ ์‹œ๊นŒ์ง€ 7๊ฐœ ์Œ๊ณ„ ์™ธ์—๋„ ๋ฐฐ๊ฒฝ์†Œ์Œ, ์Œ์ดํƒˆ ๋“ฑ์˜ ํ‹€๋ฆฐ ๊ฒฝ์šฐ 3๊ฐ€์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ํ•™์Šต์‹œ์ผœ ์ •ํ™•๋„ ํ–ฅ์ƒ


์—ฐ์ฃผํ•˜๊ธฐ

Canvas API

  • Canvas API๋ฅผ ์ด์šฉํ•˜์—ฌ ์˜ค์„ ์ง€ ํ‘œ์‹œ
  • ์Œ ๋†’์ด์™€ ํ•ด๋‹น ์Œ์˜ start / end ์‹œ๊ฐ„์„ ๊ฐ€์ง„ Note๋ผ๋Š” ๋ฐฐ์—ด์„ ํ†ตํ•ด์„œ ์‹œ๊ฐ„์— ๋งž์ถ”์–ด ํ™”๋ฉด์— ํ‘œ์‹œ

UserMedia API

  • ์‚ฌ์šฉ์ž์˜ ๋งˆ์ดํฌ ๊ถŒํ•œ ์š”์ฒญ

Web Audio API

  • AnalyserNode๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋งˆ์ดํฌ๋กœ ๋“ค์–ด์˜ค๋Š” ์ฃผํŒŒ์ˆ˜ ๊ฐ’์„ ๋ฐ›๋Š”๋‹ค.
  • ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜ ์†Œ์Šค๋ฅผ ํ†ตํ•ด์„œ ์ž…๋ ฅ๋ฐ›์€ ์ฃผํŒŒ์ˆ˜ ๊ฐ’์„ ์Œ ๋†’์ด๋กœ ๋ณ€ํ™˜

ResizeObserver API

  • ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์Œ ๋†’์ด๋ฅผ ๋ฐ›์•„์„œ ํ ํ˜•ํƒœ์˜ ๋ฐฐ์—ด์— ๋„ฃ๊ณ  ํ•ด๋‹น ๋ฐฐ์—ด์„ ํ™”๋ฉด ์ค‘์•™์— ํ‘œ์‹œ


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

BackEnd

  • SpringBoot 2.5.5
  • Java 11

FrontEnd

  • Vue.js 3.0.0
  • node 16.18.0

AI

  • Teachable Machine
  • Tensorflow 1.3.1

CI / CD

  • AWS EC2
  • Docker
  • NGINX


๐Ÿ“‚ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ ๊ตฌ์กฐ


Back

backend
  โ”œโ”€โ”€ src
  โ”‚   โ”œโ”€โ”€ auth
  โ”‚   โ”œโ”€โ”€ filter
  โ”‚   โ”œโ”€โ”€ interceptor
  โ”‚   โ””โ”€โ”€ listener
  โ”œโ”€โ”€ Dockerfile
  โ””โ”€โ”€ pom.xml

Front

frontend
  โ”œโ”€โ”€ node_modules
  โ”œโ”€โ”€ patches
  โ”‚    โ”œโ”€โ”€ @tensorflow-models+speech-commands+0.4.2
  โ”œโ”€โ”€ public
  โ””โ”€โ”€ src
      โ”œโ”€โ”€ assets
      โ”œโ”€โ”€ components
      โ”‚   โ”œโ”€โ”€ multi
      โ”‚   โ”‚     โ”œโ”€โ”€ MultiAnalizeMain
      โ”‚   โ”‚     โ”œโ”€โ”€ MultiSoloAnalizeMain
      โ”‚   โ”‚     โ”œโ”€โ”€ MultiSongMain
      โ”‚   โ”‚     โ””โ”€โ”€ MultiSoundMain
      โ”‚   โ”œโ”€โ”€ solo
      โ”‚   โ”‚     โ”œโ”€โ”€ teachable
      โ”‚   โ”‚     โ”œโ”€โ”€ SoloAnalizeMain
      โ”‚   โ”‚     โ”œโ”€โ”€ SoloFingeringMain
      โ”‚   โ”‚     โ”œโ”€โ”€ SoloMain
      โ”‚   โ”‚       โ”œโ”€โ”€ SoloSongMain
      โ”‚   โ”‚       โ”œโ”€โ”€ SoloSoundMain
      โ”‚   โ”‚       โ”œโ”€โ”€ SoloTutorialMain
      โ”‚   โ”‚       โ””โ”€โ”€ SoloTutorialSelect
      โ”‚   โ”œโ”€โ”€ video
      โ”‚   โ”‚     โ”œโ”€โ”€ OvVideo
      โ”‚   โ”‚     โ”œโ”€โ”€ soloUserVideo
      โ”‚   โ”‚     โ””โ”€โ”€ UserVideo
      โ”‚   โ”œโ”€โ”€ HomeMain
      โ”‚   โ””โ”€โ”€ ModeMain
      โ”œโ”€โ”€ router
      โ”œโ”€โ”€ store
      โ””โ”€โ”€ views
          โ”œโ”€โ”€ solo
          โ”‚    โ”œโ”€โ”€ SoloAnalizeView
          โ”‚    โ”œโ”€โ”€ SoloFingeringView
          โ”‚    โ”œโ”€โ”€ SoloSongView
          โ”‚    โ”œโ”€โ”€ SoloSoundView
          โ”‚    โ”œโ”€โ”€ SoloTutorialSelectView
          โ”‚    โ”œโ”€โ”€ SoloTutorialView
          โ”‚    โ””โ”€โ”€ SoloView
          โ”œโ”€โ”€ HomeView
          โ”œโ”€โ”€ ModelView
          โ””โ”€โ”€ playroom


๐Ÿ’ฌ ํ˜‘์—… ํˆด

  • GitLab
  • Notion
  • JIRA
  • MatterMost


๐Ÿ‘ฌ ํ˜‘์—… ํ™˜๊ฒฝ

GitLab

Git Flow

  • ๊ฐ์ž ๋งก์€ ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ feature ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœ
  • ์™„๋ฃŒ๋œ ๊ธฐ๋Šฅ์€ develop ์— merge
  • ๋งค์ผ ์˜ค์ „ 9์‹œ ์Šคํฌ๋Ÿผ ํšŒ์˜๊ฐ€ ๋๋‚˜๋ฉด develop ์ตœ์‹  ๋ฒ„์ „์„ pull

Commit convention

FEAT : ๊ธฐ๋Šฅ ์ถ”๊ฐ€, ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ์ดˆ๊ธฐ ์„ค์ •
FIX : ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ, ๊ธฐ๋Šฅ ์ˆ˜์ •, ์˜ค๋ฅ˜ ์ˆ˜์ •
REFACTOR : ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ† ๋ง

Git Convention

Notion

  • ํŒ€ ์ „์ฒด๊ฐ€ ์•Œ์•„์•ผ ํ•  ๊ณต์ง€์‚ฌํ•ญ์ด๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋‚˜์˜ค๋Š” ๊ฐ์ข… ์‚ฐ์ถœ๋ฌผ๋“ค์˜ ํ˜•์ƒ๊ด€๋ฆฌ

JIRA

  • ํ˜‘์—… ๋ฐ ์ผ์ •, ์—…๋ฌด ๊ด€๋ฆฌ๋ฅผ JIRA๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋งค ์ฃผ ์›”์š”์ผ ํ•œ ์ฃผ๋™์•ˆ ์ง„ํ–‰๋˜์–ด์•ผ ํ•  ๊ณ„ํš์„ ์ˆ˜๋ฆฝํ•˜์—ฌ ์ง„ํ–‰ํ•  ์ด์Šˆ๋“ค์„ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋“ฑ๋ก

Epic : BackEnd, FrontEnd, ๊ธฐํš, ์„ค๊ณ„
story : ๊ธฐํš, ์„ค๊ณ„, ์‚ฐ์ถœ๋ฌผ ์ œ์ž‘ ๋“ฑ ๊ฐœ๋ฐœ์™ธ์˜ ์—…๋ฌด์— ๊ด€ํ•œ ์—…๋ฌด ๊ด€๋ฆฌ
task : ์ฝ”๋“œ ์ž‘์„ฑ๊ณผ ๊ด€๋ จ๋œ ๊ฐœ๋ฐœ์—…๋ฌด์— ๊ด€ํ•œ ์—…๋ฌด ๊ด€๋ฆฌ

MatterMost

  • ์ผ์ผ ์Šคํฌ๋Ÿผ ํšŒ์˜๋ก ๊ด€๋ฆฌ
  • GitLab๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ GitLab ๊ด€๋ฆฌ
  • Archiving์ฑ„๋„์„ ํ†ตํ•ด์„œ ๊ฐ ์ข… ์ •๋ณด ๊ณต์œ 

์‚ฐ์ถœ๋ฌผ



๊ฒฐ๊ณผ๋ฌผ



ํŒ€์› ์†Œ๊ฐœ

image

About

๐Ÿ“Œ SSAFY ๊ณตํ†ต ํ”„๋กœ์ ํŠธ - ์›๊ฒฉ ๋ฆฌ์ฝ”๋” ๊ต์œก ํ”Œ๋žซํผ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published