Skip to content

boostcampwm-2024/refactor-web14-betting-duck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๐Ÿค ๋ฒ ํŒ…๋•

image

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-02 แ„‹แ…ฉแ„’แ…ฎ 5 52 03

์Šน์ž๋งŒ์ด ์˜ค๋ฆฌ๋ฅผ ๊ฐ–๋Š”๋‹ค, ๋ฒ ํŒ…๋•

Site Figma Wiki

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

์ฆ๊ธฐ๊ณ , ๋ฒ ํŒ…ํ•˜๊ณ , ๊พธ๋ฉฐ๋ณด์„ธ์š”! ์šฐ๋ฆฌ ์„œ๋น„์Šค๋Š” ์‹ค์‹œ๊ฐ„ ๋ฒ ํŒ…์˜ ์งœ๋ฆฟํ•จ๊ณผ ์ฑ„ํŒ…์˜ ์†Œํ†ต ์žฌ๋ฏธ๋ฅผ ๊ฒฐํ•ฉํ•œ ์ƒˆ๋กœ์šด ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค!

  • ์ฝ”์ธ์œผ๋กœ ๋ฒ ํŒ…ํ•˜๋ฉฐ ์˜ˆ์ธก์˜ ์žฌ๋ฏธ๋ฅผ ๋А๊ปด๋ณด์„ธ์š”.
  • ์ฑ„ํŒ…์œผ๋กœ ์ž์œ ๋กญ๊ฒŒ ์†Œํ†ตํ•˜๋ฉฐ ๋‹ค๋ฅธ ์œ ์ €๋“ค๊ณผ ์ˆ˜๋‹ค๋ฅผ ์ฆ๊ฒจ๋ณด์„ธ์š”.
  • ๋ฒ ํŒ…์œผ๋กœ ์–ป์€ ์ฝ”์ธ์œผ๋กœ ๊ท€์—ฌ์šด ์˜ค๋ฆฌ๋ฅผ ๊ตฌ๋งคํ•ด ๋‚˜๋งŒ์˜ ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฉฐ๋ณด์„ธ์š”.

์žฌ๋ฏธ์žˆ๋Š” ๋ฒ ํŒ…๊ณผ ๋‚˜๋งŒ์˜ ๊ณต๊ฐ„ ๊พธ๋ฏธ๊ธฐ๋กœ ํŠน๋ณ„ํ•œ ๊ฒฝํ—˜์„ ์„ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ ๋ฐ”๋กœ ํ•จ๊ป˜ํ•˜์„ธ์š”, ์†Œํ†ต๊ณผ ์ฆ๊ฑฐ์›€์ด ๊ฐ€๋“ํ•œ ์ƒˆ๋กœ์šด ์„ธ๊ณ„๋กœ!

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ

์ €ํฌ ํ”„๋กœ์ ํŠธ๋Š” ์น˜์ง€์ง ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด์„œ ๋А๋‚€ ์•„์‰ฌ์›€์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํŠธ์œ„์น˜(Twitch)๋Š” ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ์ธ๊ธฐ ์žˆ๋Š” ์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์œผ๋กœ, ํ•œ๊ตญ์—์„œ๋„ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ํฌ์ธํŠธ ์˜ˆ์ธก ์‹œ์Šคํ…œ์„ ์ฆ๊ฒจ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํŠธ์œ„์น˜๊ฐ€ ํ•œ๊ตญ์—์„œ ์ฒ ์ˆ˜ํ•˜๋ฉด์„œ ๋” ์ด์ƒ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์•ˆ์œผ๋กœ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์น˜์ง€์ง์ด๋ผ๋Š” ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์„ ์ด์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ, ์น˜์ง€์ง์—๋Š” ๋ฒ ํŒ… ์„œ๋น„์Šค๊ฐ€ ์—†๋Š” ์ ์ด ์•„์‰ฝ๋‹ค๋Š” ์˜๊ฒฌ์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ”ํƒ•์œผ๋กœ "์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๋ฒ ํŒ… ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด๋ณด์ž!" ํ•˜๋Š” ์ƒ๊ฐ์„ ๊ณ„๊ธฐ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ ์‚ฌ์šฉ์ž๋“ค์˜ ์•„์‰ฌ์›€์„ ์ฑ„์›Œ์ค„ ํŠน๋ณ„ํ•œ ๋ฒ ํŒ… ์‹œ์Šคํ…œ์„ ๋งŒ๋‚˜๋ณด์„ธ์š”!

๋ฒ ํŒ…๋•์—์„œ์˜ ๋ฒ ํŒ…?

๋ฒ ํŒ…๋•์—์„œ์˜ ๋ฒ ํŒ…์€ ๋ฐฉ์žฅ์ด ์ •ํ•œ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜ ์ค‘ ์Šน์‚ฐ์ด ๋” ๋†’์•„๋ณด์ด๋Š” ๊ฒƒ์— ๋•(duck)์ฝ”์ธ์„ ๊ฑฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฒ ํŒ…์ด ๋๋‚˜๋ฉด ์ฝ”์ธ์„ ์žƒ๊ฑฐ๋‚˜, ๋ฐฐ์œจ๋งŒํผ์˜ ์ฝ”์ธ์„ ํš๋“ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€˜ํ•œ์ผ์ „์—์„œ ํ•œ๊ตญ์ด ์ด๊ธธ ๊ฒƒ์ธ๊ฐ€ ์ผ๋ณธ์ด ์ด๊ธธ ๊ฒƒ์ธ๊ฐ€์™€ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋ฒ ํŒ…โ€™์—์„œ๋ถ€ํ„ฐ, โ€˜์˜ค๋Š˜ ๋‚ด๊ฐ€ ์ €๋… ์‹์‚ฌ ํ›„์— ๊ฐ„์‹์„ ๋จน์—ˆ๋Š”์ง€ ๋จน์ง€ ์•Š์•˜๋Š”์ง€โ€™์™€ ๊ฐ™์€ ์•„์ฃผ ์‚ฌ์†Œํ•œ ๊ฒƒ๊นŒ์ง€. ์–ด๋–ค ์ฃผ์ œ๋กœ ๋ฒ ํŒ…์„ ํ• ์ง€๋Š” ์ „์ ์œผ๋กœ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋‹ฌ๋ ค์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์€ ์›น ์‚ฌ์ดํŠธ์˜ ๋ฒ ํŒ… ์‹œ์Šคํ…œ

โ€œ๋ฒ ํŒ… ์‹œ์Šคํ…œโ€์„ ๋งŒ๋“ค์ž๋Š” ๋ชฉ์ ์— ๋”ฐ๋ผ ์ฒ˜์Œ์—๋Š” ๋ฒ ํŒ… ๊ธฐ๋Šฅ๋งŒ์„ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ ํŠœ๋ธŒ, ์น˜์ง€์ง, ์ƒ๋ฐฉ์†ก ์Šคํฌ์ธ  ๊ฒฝ๊ธฐ ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์ปจํ…์ธ  ์ค‘ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ปจํ…์ธ ๋ฅผ ์‹œ์ฒญํ•˜๋ฉฐ ๋ฒ ํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์—, ๋ณ„๋„์˜ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ์ž‘์€ ์ฐฝ์œผ๋กœ ๋„์›Œ๋‘๊ณ  ๋ฒ ํŒ…๋งŒ์„ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋‘˜๋Ÿฌ๋ณด๊ธฐ

์ฝ”์ธ์œผ๋กœ ์˜ค๋ฆฌ๋ฅผ ๊ตฌ๋งคํ•ด ๋งˆ์ดํŽ˜์ด์ง€ ๊พธ๋ฏธ๊ธฐ

@react-three/fiber๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ React ํ™˜๊ฒฝ์—์„œ Three.js๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ†ตํ•ฉ, ์ƒ๋™๊ฐ ๋„˜์น˜๋Š” 3D ์˜ค๋ฆฌ ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž๋Š” ์ฝ”์ธ์œผ๋กœ ์˜ค๋ฆฌ๋ฅผ ๊ตฌ๋งคํ•ด ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ ํŒ…๊ณผ ํ•จ๊ป˜ ์–ด๋– ํ•œ ์ฆ๊ฑฐ์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ? ๋ฒ ํŒ…ํ•ด์„œ ํ˜„๊ธˆ์„ ๋ฒŒ ์ˆ˜ ์žˆ๋Š” ๊ฒŒ ์•„๋‹Œ๋ฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์žฌ๋ฏธ๋ฅผ ์–ป์–ด๊ฐˆ ์ˆ˜ ์žˆ์„๊นŒ? ํ•˜๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฒ ํŒ…์œผ๋กœ ๋ฒˆ ๋ˆ์„ ์–ด๋””์— ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?

์‚ฌ๋žŒ๋“ค์ด ํž˜๋“ค๊ฒŒ ๋ˆ์„ ๋ฒ„๋Š” ์ด์œ ๋Š” ํ•„์š”ํ•œ ์–ด๋–ค ๊ฒƒ์„ ๊ตฌ๋งคํ•˜๊ธฐ ์œ„ํ•จ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์—ด์‹ฌํžˆ ๋ฒ ํŒ…์„ ํ•ด์„œ ๋ญ”๊ฐ€๋ฅผ ์‚ด ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์ง€ ์•Š์„๊นŒ? ๋งˆ์นจ ๋ถ€์ŠคํŠธ์บ ํ”„์˜ ๋งˆ์Šค์ฝ”ํŠธ๋Š” ๋ถ€๋•์ด(์˜ค๋ฆฌ)๋‹ˆ๊นŒ ์˜ค๋ฆฌ๋ฅผ ์‚ด ์ˆ˜ ์žˆ๊ฒŒ ์ปจํ…์ธ ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์ž!

๊ทธ๋ž˜์„œ ์ €ํฌ๋Š” ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ณ , ์˜ค๋ฆฌ๋ฅผ ๊ตฌ๋งคํ•˜๊ณ , ์˜ค๋ฆฌ๋ฅผ ๋ชจ์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-06 แ„‹แ…ฉแ„Œแ…ฅแ†ซ 1 38 21

์ฒดํ—˜์šฉ ๋น„ํšŒ์› ๋กœ๊ทธ์ธ ์‹œ์Šคํ…œ

๋น„ํšŒ์› ๋กœ๊ทธ์ธ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๋” ์‰ฝ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ฒดํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜์˜€์œผ๋ฉฐ IP ๊ธฐ๋ฐ˜ ์ œํ•œ์„ ํ†ตํ•ด ๋น„ํšŒ์› ๋กœ๊ทธ์ธ ์‹œ์Šคํ…œ ๋‚จ์šฉ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-03 แ„‹แ…ฉแ„’แ…ฎ 4 15 21

  • ๋น„ํšŒ์›์ด ๋กœ๊ทธ์ธํ•  ๊ฒฝ์šฐ, ์ผ๋ฐ˜ ํšŒ์›๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด "์ต๋ช…์˜"๋ผ๋Š” ์ด๋ฆ„์ด ์ž๋™ ์ถ”๊ฐ€๋˜๋ฉฐ, ๊ฐ„๋‹จํ•œ ๋‹‰๋„ค์ž„๋งŒ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•œ ์‚ฌ๋žŒ์ด ์—ฌ๋Ÿฌ ์•„์ด๋””๋ฅผ ์ƒ์„ฑํ•ด ๋ถ€๋‹นํ•˜๊ฒŒ ๋ฒ ํŒ…์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, IP ๊ธฐ๋ฐ˜ ์ œํ•œ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋™์ผ IP์—์„œ๋Š” ์ด์ „์— ์ƒ์„ฑ๋œ ๋‹‰๋„ค์ž„์œผ๋กœ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Caution

๋น„ํšŒ์› ๋กœ๊ทธ์ธ์€ ์ฒดํ—˜์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ณต์šฉ IP ํ™˜๊ฒฝ์—์„œ๋Š” ๋กœ๊ทธ์ธ ์ œํ•œ์ด ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฐ ๊ฒฝ์šฐ, ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž…์„ ํ†ตํ•ด ์„œ๋น„์Šค์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ ํŒ… ์ƒ์„ฑ ํŽ˜์ด์ง€

๋ฒ ํŒ… ์ƒ์„ฑ ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ œ๋ชฉ, ์ผ€์ด์Šค1, ์ผ€์ด์Šค2, ํƒ€์ด๋จธ, ์ตœ์†Œ ๊ธˆ์•ก์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ, ์œ ํšจํ•œ ์ž…๋ ฅ ๊ฐ’์ด ์ž…๋ ฅ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐฉ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-03 แ„‹แ…ฉแ„’แ…ฎ 4 28 43

๋ฒ ํŒ… ๋Œ€๊ธฐ ํŽ˜์ด์ง€์˜ ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ๋ช…๋‹จ ํ‘œ์‹œ

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

image

๊ด€๋ฆฌ์ž ๋ฐ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๊ธฐ๋ฐ˜ ๋ฒ ํŒ… ๊ด€๋ฆฌ

๊ด€๋ฆฌ์ž๋Š” ์ง„ํ–‰ ์ค‘์ธ ๋ฒ ํŒ…์„ ์ทจ์†Œํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฐธ์—ฌ์ž๋Š” ์ž์‹ ์˜ ์ฝ”์ธ์„ ํ™œ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ์˜ต์…˜์— ๋ฒ ํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

์‹ค์‹œ๊ฐ„ ๋ฒ ํŒ… ์‹œ์Šคํ…œ

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

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-02 แ„‹แ…ฉแ„’แ…ฎ 4 38 34

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ

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

แ„’แ…ชแ„†แ…งแ†ซ แ„€แ…ตแ„…แ…ฉแ†จ 2024-12-02 แ„‹แ…ฉแ„’แ…ฎ 4 45 32

ํ•ต์‹ฌ ๊ธฐ์ˆ ์  ๋„์ „

Important

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์˜ ํŽธ์˜์„ฑ๊ณผ ์‹œ์Šคํ…œ์˜ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์  ๋„์ „๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ๊ฒฝํ—˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ทธ ์ค‘ ํ•ต์‹ฌ์ ์ธ ๋‚ด์šฉ๋“ค์ž…๋‹ˆ๋‹ค.
๋” ์ž์„ธํ•œ ๊ตฌํ˜„ ๊ณผ์ •๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ Wiki ํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Wiki๋ฅผ ํ†ตํ•ด ๊ตฌ์ฒด์ ์ธ ์„ค์ •, ์ฝ”๋“œ ์Šค๋‹ˆํŽซ, ์‹ฌํ™” ๋‚ด์šฉ์„ ํ™•์ธํ•ด ๋ณด์„ธ์š”!

Three.js๋ฅผ ํ™œ์šฉํ•œ 3D ์˜ค๋ฆฌ ๊ตฌ๋งค ๊ธฐ๋Šฅ

์ €ํฌ ํ”„๋กœ์ ํŠธ๋Š” ๋ฒ ํŒ…์œผ๋กœ ์–ป์€ ์ฝ”์ธ์œผ๋กœ Three.js๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์˜ค๋ฆฌ๋ฅผ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์ง๋ฉดํ–ˆ๋˜ ์ฃผ์š” ๋ฌธ์ œ๋Š” 3D ๋ชจ๋ธ๋ง ํŒŒ์ผ(.glb)๊ณผ ํ™˜๊ฒฝ ๋งตํ•‘ ํŒŒ์ผ(.hdr)์„ ์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์˜ ๊ตฌ์ฒด์ ์ธ ์›์ธ์€ Vite๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ 3D ์—์…‹ ํŒŒ์ผ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Vite์˜ ์„ค์ •์„ ์ˆ˜์ •ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •๊ณผ ์ƒ์„ธํ•œ ์„ค์ • ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | Vite ๋นŒ๋“œ ์‹œ ์ผ์–ด๋‚˜๋Š” ์ž‘์—…๋“ค

๋ฒ ํŒ… ์ƒ์„ฑ ํŽ˜์ด์ง€์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ๊ฒ€์ฆ

ํ•ด๋‹น ํŽ˜์ด์ง€์—์„œ ๊ฐ’์„ ์ž…๋ ฅํ•  ๋•Œ๋งˆ๋‹ค ๊ด€๋ จ ์—†๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๊ฐ™์ด ๋ฆฌ๋ Œ๋”๋ง์ด ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ Œ๋”๋ง ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ ๊ณผ์ •์—์„œ์˜ ์„ฑ๋Šฅ ์ €ํ•˜ ์ตœ์†Œํ™”๋ฅผ ์œ„ํ•ด์„œ ๋…ธ๋ ฅํ•˜์˜€๊ณ  ๋˜ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ํ†ตํ•ด ๋ชจ๋“  ํ•„๋“œ๊ฐ€ ์ ์ ˆํžˆ ์ž…๋ ฅ๋œ ๊ฒฝ์šฐ์—๋งŒ ์š”์ฒญ ์ „์†กํ•˜๋„๋ก ์„ค์ •ํ•˜์—ฌ ๋ฐฑ์—”๋“œ์™€์˜ ํ†ต์‹ ์—์„œ ํ•„์ˆ˜ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ๋ฐ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋กœ ์‹ ๋ขฐ์„ฑ์„ ํ™•๋ณด ํ•˜๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ๋ฐฉ์ง€

Socket.io๋ฅผ ํ™œ์šฉํ•œ ๋ฒ ํŒ… ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์ค‘ ์ž˜๋ชป๋œ ์†Œ์ผ“ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ๋กœ ์ธํ•œ ์„œ๋ฒ„ ๋‹ค์šด ๋ฌธ์ œ ๋ฐœ์ƒ

CSR(Client-Side Rendering) ๋ฐฉ์‹์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์†Œ์ผ“ ์—ฐ๊ฒฐ์„ useEffect๋กœ ๊ด€๋ฆฌํ–ˆ์ง€๋งŒ, ํด๋ฆฐ์—… ํ•จ์ˆ˜์—์„œ ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ์ œ๋Œ€๋กœ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•„ ๋ถˆํ•„์š”ํ•œ ์—ฐ๊ฒฐ์ด ๊ณ„์† ์œ ์ง€๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ปดํฌ๋„ŒํŠธ ์–ธ๋งˆ์šดํŠธ๋‚˜ ์˜์กด์„ฑ ๋ฐฐ์—ด ๋ณ€๊ฒฝ ์‹œ ๊ธฐ์กด ์†Œ์ผ“ ์—ฐ๊ฒฐ์ด ๋ˆ„์ ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๋กœ ์ด์–ด์กŒ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด useEffect์˜ ํด๋ฆฐ์—… ํ•จ์ˆ˜ ์ž‘๋™ ์›๋ฆฌ, ๋น„๋™๊ธฐ ์ž‘์—… ์ฒ˜๋ฆฌ ์‹œ ํด๋ฆฐ์—… ๊ตฌํ˜„ ๋ฐฉ๋ฒ•, ์ƒํƒœ ์ดˆ๊ธฐํ™”๋ฅผ ํ™•์‹คํžˆ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜๊ณ  ์ ์šฉํ•˜์—ฌ ์†Œ์ผ“ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | ์†Œ์ผ“ ๊ด€๋ฆฌ ์‹คํŒจ๋กœ ์ธํ•œ ์„œ๋ฒ„ ๋‹ค์šด ๋ฌธ์ œ ํ•ด๊ฒฐ

Redis๋ฅผ ์ด์šฉํ•œ ๋ฉ”์‹œ์ง€ ํ ๊ตฌํ˜„

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-12-02 แ„‹แ…ฉแ„’แ…ฎ 6 34 20

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | Redis Streams ๊ตฌํ˜„

Redis์˜ List์™€ Pub/Sub์„ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ํ๋ฅผ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

List๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”์‹œ์ง€์˜ ์ˆœ์ฐจ์  ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜๊ณ , Pub/Sub์„ ํ†ตํ•ด ํŠน์ • ์‹œ์ ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์†Œ๋น„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ, ACK Timeout์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์žฌ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด ๋ฉ”์‹œ์ง€ ํ๋Š” ๋ฒ ํŒ… ์ข…๋ฃŒ ํ›„, ์‚ฌ์šฉ์ž๋“ค์˜ ์˜ค๋ฆฌ ์ฝ”์ธ ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | ๋ฒ ํŒ…๋•์— ์ ์šฉํ•œ ๋‹ค์–‘ํ•œ ์บ์‹œ ์ „๋žต

์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€์˜ ๊ท ํ˜•์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์บ์‹œ ์ „๋žต์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ๋Š”ย Read Through,ย Write Through,ย Write Backย ๋“ฑ ์—ฌ๋Ÿฌ ์บ์‹œ ์ „๋žต์„ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Redis๋ฅผ ํ™œ์šฉํ•œ ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ž์„ธํžˆ ๋ณด๊ธฐ: Wiki | Redis HINCRBY๋กœ ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ

์‹ค์‹œ๊ฐ„ ๋ฒ ํŒ… ์ฒ˜๋ฆฌ์—์„œย Redis์™€ HINCRBY ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•ด ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. Redis์˜ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ํŠน์„ฑ๊ณผ HINCRBY์˜ ์›์ž์„ฑ์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆ์ผ์น˜๋ฅผ ๋ฐฉ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ดย 100๋งŒ ๋ฒˆ์˜ ๋™์‹œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์•ˆ์ •์„ฑ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ  ์Šคํƒ

๋ถ„๋ฅ˜ ๊ธฐ์ˆ  ์Šคํƒ ์ฐธ๊ณ 
๊ณตํ†ต TypeScript ESLint Prettier Husky GitHub Actions Socket.IO Zod Husky๋กœ commit message์— ์ด์Šˆ ๋ฒˆํ˜ธ ์ถ”๊ฐ€ ์ž๋™ํ™”ํ•˜๊ธฐ
Frontend Vite Tailwind CSS TanStack Router TanStack Query Three.js FE ๊ธฐ์ˆ ์Šคํƒ ์„ ์ • ์ด์œ 
Backend Nest.js nginx Docker BE ๊ธฐ์ˆ ์Šคํƒ ์„ ์ • ์ด์œ 
Database PostgreSQL Redis
Infrastructure nCloud

ํด๋” ๊ตฌ์กฐ

WEB14-BOOSTPROJECT/
โ”œโ”€โ”€ .github/                # GitHub ๊ด€๋ จ ์„ค์ • (์›Œํฌํ”Œ๋กœ์šฐ, ์ด์Šˆ ํ…œํ”Œ๋ฆฟ ๋“ฑ)
โ”œโ”€โ”€ .husky/                 # Git ์ปค๋ฐ‹ ๋ฐ ํ‘ธ์‹œ ํ›… ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ backend/                # ๋ฐฑ์—”๋“œ ์†Œ์Šค ์ฝ”๋“œ ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ frontend/               # ํ”„๋ก ํŠธ์—”๋“œ ์†Œ์Šค ์ฝ”๋“œ ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ node_modules/           # ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๊ฐ€ ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ
โ”œโ”€โ”€ shared/                 # ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ (์˜ˆ: ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜, ํƒ€์ž… ์ •์˜ ๋“ฑ)
โ”œโ”€โ”€ .editorconfig           # ์ฝ”๋“œ ์Šคํƒ€์ผ ํ†ต์ผ์„ ์œ„ํ•œ ์—๋””ํ„ฐ ์„ค์ • ํŒŒ์ผ
โ”œโ”€โ”€ .gitignore              # Git์— ํฌํ•จํ•˜์ง€ ์•Š์„ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๋ชฉ๋ก
โ”œโ”€โ”€ .npmrc                  # npm ์„ค์ • ํŒŒ์ผ (๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ฒฝ๋กœ, ์บ์‹œ ์„ค์ • ๋“ฑ)
โ”œโ”€โ”€ .nvmrc                  # ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Node.js ๋ฒ„์ „ ๋ช…์‹œ
โ”œโ”€โ”€ .prettierrc             # Prettier ์ฝ”๋“œ ํฌ๋งท ์„ค์ • ํŒŒ์ผ
โ”œโ”€โ”€ docker-compose.yml      # Docker Compose ์„ค์ • ํŒŒ์ผ
โ”œโ”€โ”€ eslint.config.mjs       # ESLint ์„ค์ • ํŒŒ์ผ (์ฝ”๋“œ ํ’ˆ์งˆ ๊ฒ€์‚ฌ์šฉ)
โ”œโ”€โ”€ nginx.conf              # Nginx ์„œ๋ฒ„ ์„ค์ • ํŒŒ์ผ (ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ)
โ”œโ”€โ”€ nginx.dev.conf          # Nginx ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ
โ”œโ”€โ”€ package.json            # ํ”„๋กœ์ ํŠธ ์ข…์†์„ฑ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์ •๋ณด
โ”œโ”€โ”€ pnpm-lock.yaml          # PNPM ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ž ๊ธˆ ํŒŒ์ผ (์˜์กด์„ฑ ๋ฒ„์ „ ๊ณ ์ •)
โ”œโ”€โ”€ pnpm-workspace.yaml     # PNPM ์›Œํฌ์ŠคํŽ˜์ด์Šค ์„ค์ • ํŒŒ์ผ (๋ชจ๋…ธ๋ ˆํฌ ํ™˜๊ฒฝ ๊ด€๋ฆฌ)

ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ณ ๋‹ค์ด์–ด๊ทธ๋žจ

image

๋ฒ„๊ทธ ๋ฆฌํฌํŠธ

์„œ๋น„์Šค ์‚ฌ์šฉ ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‚˜์š”?
์•„๋ž˜ ๊ตฌ๊ธ€ ํผ์„ ํ†ตํ•ด ๋ฒ„๊ทธ๋ฅผ ์ œ๋ณดํ•ด ์ฃผ์„ธ์š”!
๋ฒ„๊ทธ ๋ฆฌํฌํŠธ ์ œ์ถœํ•˜๊ธฐ

ํŒ€ ์†Œ๊ฐœ

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

์ด์„ํ˜ธ ์ •๋™๊ต ์ •์ง€ํ˜ธ ์ตœ์ •๋ฏผ
[BE] J184 ์ด์„ํ˜ธ [BE] J221 ์ •๋™๊ต [FE] J230 ์ •์ง€ํ˜ธ [FE] J262 ์ตœ์ •๋ฏผ

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •