Skip to content

Latest commit

ย 

History

History
240 lines (182 loc) ยท 11 KB

File metadata and controls

240 lines (182 loc) ยท 11 KB

๊ฟˆ๊นจ

์˜จ๋ผ์ธ 3D ๋ฐฉํƒˆ์ถœ ๊ฒŒ์ž„ ์„œ๋น„์Šค ๐Ÿ˜ด



๐Ÿ’ญ About

โ€˜Zzz ๋Š” ๊ฟˆ์„ ๊พธ๋Š” ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•œ ๋‹จ์–ด์ด์ž, ๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค๐Ÿ’ค

โ€˜๊ฟˆโ€™ ์ด๋ผ๋Š” ๋งค์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์ƒํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ํ•ด๊ฒฐํ•˜์—ฌ ๋ฐฉํƒˆ์ถœ์„ ํ•˜๋Š” ๊ฒƒ์ด ๋ณธ ๊ฒŒ์ž„์„ ์ด์–ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค

๋‹น์‹ ์€ ๊ฟˆ ์†์—์„œ ์–ผ๋งˆ๋งŒํผ์˜ ์—ญ๋Ÿ‰์„ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š”?


๐Ÿ“… ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2022.2.25 ~ 2022.4.9

1์ฐจ ๋ฐฐํฌ : 2022.3.31

๐ŸŽ‰ 5์ผ ๋™์•ˆ 550์—ฌ๋ช…์˜ ์œ ์ €๋“ค์ด 550์—ฌ๊ฐœ์˜ ๋ฐฉ์„ ๋งŒ๋“ค๊ณ , 375ํŒ€์ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜์˜€์œผ๋ฉฐ, 9ํŒ€์ด ํƒˆ์ถœ์— ์„ฑ๊ณตํ•˜์˜€์Šต๋‹ˆ๋‹ค!!


๐Ÿ“Œ ๋ฐ”๋กœ๊ฐ€๊ธฐ


โœจ ์ฃผ์š” ๊ธฐ๋Šฅ

  • ํ™ˆ ๋ฐฉํƒˆ์ถœ ๊ฒŒ์ž„์„ ์œ„ํ•œ ๋ฐฉ์„ ๋งŒ๋“ค๊ณ , ๋žญํ‚น์กฐํšŒ ๋ฐ ๊ฒŒ์ž„ ์„ค๋ช…์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€๊ธฐ ํ˜„์žฌ ๋Œ€๊ธฐ์ค‘์ธ ์ธ์›์„ ์ฒดํฌํ•˜๊ณ  ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งํฌ๋กœ ์นœ๊ตฌ๋ฅผ ์ดˆ๋Œ€ํ•˜๊ณ , ๋ณด์ด์Šค ์ฑ„ํŒ…๋„ ๊ฐ€๋Šฅํ•ด์š”!
  • ๊ฒŒ์ž„ ํŒ€์›๋“ค๊ณผ ๋ณด์ด์Šค์ฑ„ํŒ…์„ ๋‚˜๋ˆ„๋ฉฐ ๋ฐฉ์— ๋ฐฐ์น˜๋œ 3D ๋ฌผ์ฒด๋ฅผ ํด๋ฆญํ•ด ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ์‹œ๊ฐ„ ์•ˆ์— ๋ฐฉ์„ ํƒˆ์ถœํ•ด๋ณด์„ธ์š”.


๐ŸŽ Team Member

Name GitHub Position
๋ฅ˜๊ฐ•ํ˜„๐Ÿ”ฐ https://github.com/f-ffff-f ํ”„๋ก ํŠธ์—”๋“œ
์šฐํ˜œ๋ฏผ https://github.com/hyemin9403 ํ”„๋ก ํŠธ์—”๋“œ
๊น€๊ฐ€์€๐Ÿ”ฐ https://github.com/paran22 ๋ฐฑ์—”๋“œ
์ตœ๊ทœ์› https://github.com/cooked-developer ๋ฐฑ์—”๋“œ
๋ฐ˜์›์žฌ https://github.com/wonjaeban ๋ฐฑ์—”๋“œ
์„œํ˜œ์› https://github.com/SEOHWN ๋””์ž์ธ
๊น€๋ณด๊ฒฝ https://github.com/bokyung29 ๋””์ž์ธ

๐Ÿ“š ๊ธฐ์ˆ ์Šคํƒ

ํ”„๋ก ํŠธ์—”๋“œ




๋ฐฑ์—”๋“œ




Tools


๐Ÿ“บ Detail

์•„ํ‚คํ…์ฒ˜

ํ•ด๋‹น ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ

ERD
Flow Chart
API ๋ช…์„ธ์„œ

๐Ÿšจ API ์„ค๊ณ„๊ทœ์น™

Rest API URI ์„ค๊ณ„๊ทœ์น™์„ ๋”ฐ๋ฅธ๋‹ค.
  1. ํ›„ํ–‰ /๋Š” URI์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
  2. ๊ณ„์ธต๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์Šฌ๋ž˜์‹œ ๊ตฌ๋ถ„์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ex) /rooms/{roomId}/quizzes/{quizType}
  3. ๊ธด path๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ํ•˜์ดํ”ˆ(-)์„ ์‚ฌ์šฉํ•œ๋‹ค.
  4. ์–ธ๋”๋ฐ”(_)๋Š” URI์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  5. URI๋Š” ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ์ž‘์„ฑํ•œ๋‹ค.
  6. ํŒŒ์ผํ™•์žฅ์ž๋Š” URI์— ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.
  7. ๋ชจ๋“  resource๋Š” ๋ณต์ˆ˜ํ˜•์„ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ”จ Trouble Shooting

๋ฉ”์ธํŽ˜์ด์ง€ ์„œ๋ฒ„ ๋ถ€ํ•˜ ๋ฌธ์ œ

โœ… ๋ฌธ์ œ์ƒํ™ฉ

๋ฉ”์ธํŽ˜์ด์ง€์—์„œ ๋ณ€๊ฒฝ๋œ ๋ฐฉ ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด 1์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ Room ๋ฆฌ์ŠคํŠธ ์กฐํšŒํ•˜๊ธฐ api๋ฅผ ์š”์ฒญ(Polling)

๋ฉ”์ธํŽ˜์ด์ง€์— ์ ‘์†์ž๊ฐ€ ์ง‘์ค‘๋˜๋ฉด ์„œ๋ฒ„ ๋ถ€ํ•˜ ์ฆ๊ฐ€ โ†’ ๋ฐฐํฌ ์ดํ›„ ๋ฉ”์ธํŽ˜์ด์ง€ 40๋ช… ์ •๋„ ์ ‘์†ํ•˜๋ฉด์„œ CPU 90%๋กœ ๊ธ‰์ฆ

๐Ÿ“ ์„œ๋ฒ„๋ฅผ t3.micro์œผ๋กœ ๋ณ€๊ฒฝ(CPU 1 โ†’ 2)ํ•˜์—ฌ ์šฐ์„  ์กฐ์น˜(๋ฉ”๋ชจ๋ฆฌ๋Š” Swap์œผ๋กœ ๋Š˜๋ ค๋†“์€ 3G๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ํŒ๋‹จ)


๐Ÿ” ํ…Œ์ŠคํŠธ

๋ฉ”์ธํŽ˜์ด์ง€ ์ ‘์†์ž ์ˆ˜์— ๋”ฐ๋ฅธ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ง„ํ–‰

Client์˜ ๋ฉ”์ธํŽ˜์ด์ง€ ์ ‘์†์ž ์ˆ˜๋ฅผ 10 ๋‹จ์œ„๋กœ ์ฆ๊ฐ€์‹œํ‚ค๋ฉด์„œ CPU ์‚ฌ์šฉ๋Ÿ‰์„ ์‹ค์‹œ๊ฐ„ ๊ด€์ฐฐ

โ‘  CPU ์‚ฌ์šฉ๋Ÿ‰์ด ๊ธ‰์ฆ โ‘ก ์ „์ฒด 200 ์ค‘ 180%๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๋Š” ์ง€์ ์„ ํ•œ๊ณ„๋กœ ๋ด„

๐Ÿ“‘ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ : api ์š”์ฒญ ๊ฐ„๊ฒฉ์„ 2์ดˆ๋กœ ๋Š˜๋ฆฌ๋ฉด ํ˜„์žฌ๋ณด๋‹ค 30๋ช… ๋” ์ ‘์† ๊ฐ€๋Šฅ

- api ์š”์ฒญ ๊ฐ„๊ฒฉ 1์ดˆ(ํ˜„์žฌ ์ƒํƒœ) : 70๋ช…
- api ์š”์ฒญ ๊ฐ„๊ฒฉ 1.5์ดˆ : 80๋ช…
- api ์š”์ฒญ ๊ฐ„๊ฒฉ 2์ดˆ : 100๋ช…

๐Ÿ“ api ์š”์ฒญ ๊ฐ„๊ฒฉ์„ 1์ดˆ๋กœ ์œ ์ง€ํ•˜์ž!

ํ˜„์žฌ ์„œ๋น„์Šค ์ˆ˜์ค€์—์„œ 70๋ช… ์ด์ƒ์ด ๋ฉ”์ธํŽ˜์ด์ง€์— ์ ‘์†ํ•  ๊ฐ€๋Šฅ์„ฑ์€ ๋‚ฎ๊ณ ,

์—…๋ฐ์ดํŠธ ๊ฐ„๊ฒฉ์„ 2์ดˆ๋กœ ๋Š˜๋ฆฌ๋ฉด ์˜คํžˆ๋ ค ์œ ์ € ๊ฒฝํ—˜์ด ์•ˆ์ข‹์•„ ์งˆ๊ฑฐ๋ผ๊ณ  ํŒ๋‹จ

์„œ๋น„์Šค๊ฐ€ ์„ฑ์žฅํ•œ๋‹ค๋ฉด, Polling์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ!


๐Ÿ“ข User Test

์˜ค๋ฅ˜์ œ๋ณด ์‚ฌ๋ก€

โš ๏ธ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ์ค‘ ๋งž์ถ˜ ๋ฌธ์ œ ์ˆ˜๋‚˜ ๋‚จ์€ ์ฐฌ์Šค ์ˆ˜๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ œ๋ณด

NodeJS์˜ undefined ์—๋Ÿฌ๋กœ ์ธํ•ด ์„œ๋ฒ„๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋ฉด์„œ ๊ฐ ๋ธŒ๋ผ์šฐ์ €์˜ roomID ์ดˆ๊ธฐํ™”

socket.io์˜ ๋ฐฉ ๊ตฌ๋ถ„ ๊ธฐ๋Šฅ์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

๐Ÿ“ NodeJS์˜ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ์žฌ์‹œ์ž‘๋˜์ง€ ์•Š๋„๋ก ์กฐ์น˜

๊ฐœ์„ ์‚ฌํ•ญ ์‚ฌ๋ก€

โœ๏ธ "๋งˆ์ดํฌ๋ฅผ ์ฐจ๋‹จํ–ˆ์„ ๋•Œ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ ํ˜€ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค."

๋ธŒ๋ผ์šฐ์ €์˜ ๋งˆ์ดํฌ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ์ œํ•œํ•˜๋ฉด ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๋ถˆ๊ฐ€

๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ๊ถŒํ•œ ํ—ˆ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ์ฐฝ์„ ๋„์›Œ ๋‹ค์‹œ ์„œ๋น„์Šค ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์•ˆ๋‚ด