/Rabbit-Hole

Primary LanguageTypeScript

header

https://rabbit-hole.kr/

๐Ÿ‡ Rabbit-Hole: ์—˜๋ฆฌ์Šค ๋ ˆ์ด์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค

๋ ˆ์ด์„œ๋“ค์˜ ์›ํ™œํ•œ ๋ ˆ์ด์Šค๋ฅผ ์œ„ํ•œ
๋ ˆ์ด์„œ๋“ค์˜ ์•ž๊ธธ์— ํ•œ ์ค„๊ธฐ ๋น›์ด ๋ 
๋ณด๋‹ค ํšจ์œจ์ ์ธ ํ•™์Šต์„ ์œ„ํ•œ
๋ ˆ์ด์„œ์˜, ๋ ˆ์ด์„œ์— ์˜ํ•œ, ๋ ˆ์ด์„œ๋ฅผ ์œ„ํ•œ
์—˜๋ฆฌ์Šค ๋ ˆ์ด์„œ ์ง€๋ง์ƒ ๋ฐ ์ˆ˜๊ฐ•์ƒ์˜ ์ •๋ณด ๊ณต์œ  ๋ฐ ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.


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


          ๐Ÿฐ Rabbit-hole์€ ์ด์ƒํ•œ ๋‚˜๋ผ์˜ ์—˜๋ฆฌ์Šค์˜ ์ฒซ๋ฒˆ์งธ ์ฑ•ํ„ฐ 'Down the Rabbit-Hole'์—์„œ ์™”์Šต๋‹ˆ๋‹ค.
          ๐Ÿ ๋ ˆ์ด์„œ๋“ค์ด ์—˜๋ฆฌ์Šค ํŠธ๋ž™ ์ฒซ๋ฒˆ์งธ ์ฑ•ํ„ฐ๋ถ€ํ„ฐ ํ•จ๊ป˜ํ•˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ํ”„๋กœ์ ํŠธ ๊ธฐํš ์˜๋„

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

  • ๋ ˆ์ด์„œ๊ฐ€ ์›ํ™œํ•œ ๋ ˆ์ด์Šค๋ฅผ ํŽผ์น  ์ˆ˜ ์žˆ๋„๋ก, ์กธ์—…์ƒ ๋ฐ ๋™๋ฃŒ ๋ ˆ์ด์„œ์™€ ์งˆ์˜์‘๋‹ต์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ ˆ์ด์„œ๊ฐ€ ์ œ์ž‘ํ•œ ๊ฐœ์ธ / ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ํ™๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ’ก ํ”„๋กœ์ ํŠธ๋งŒ์˜ ์ฐจ๋ณ„์ , ๊ธฐ๋Œ€ ํšจ๊ณผ

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

  • ์—˜๋ฆฌ์Šค ์ฝ”์น˜๋‹˜๋“ค์ด ๋ถ€์žฌ์ค‘์ผ๋•Œ ์„ ๋ฐฐ๊ธฐ์ˆ˜๋“ค์˜ ๋‹ต๋ณ€ ๊ฐ€๋Šฅ (๋Šฆ์€ ๋ฐค, ์ƒˆ๋ฒฝ, ์ฃผ๋ง ๋“ฑ)

  • ๋””์Šค์ฝ”๋“œ์—์„œ ์งˆ์˜์‘๋‹ต์„ ํ•˜๋ฉด ์–‘์งˆ์˜ ๋ฌธ๋‹ต์ด ์‚ฌ๋ผ์ง€๋Š” ๋‹จ์ ์ด ์žˆ์Œ. ๋ ˆ์ด์„œ๋“ค์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ„ํ‚ค์ฒ˜๋Ÿผ ์งˆ๋ฌธ์„ ์ฐพ์•„๋ณด๋ฉด์„œ ๊ถ๊ธˆํ•œ ์ ์„ ์ฆ‰์‹œ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์Œ

  • ๋ ˆ์ด์„œ๋“ค์˜ ์ „๋ฐ˜์ ์ธ ์„ฑ์ทจ๋„ ํ–ฅ์ƒ

  • ์กธ์—…์ƒ - ๋ ˆ์ด์„œ๊ฐ„ ๋„คํŠธ์›Œํ‚น์„ ํ™œ์šฉํ•˜์—ฌ ์ปค๋ฆฌ์–ด ๋˜๋Š” ํ”„๋กœ์ ํŠธ์— ๊ด€ํ•œ ์กฐ์–ธ์„ ์–ป์„ ์ˆ˜ ์žˆ์Œ


๐Ÿ”ฉ ์„œ๋น„์Šค ์ฃผ์š” ๊ธฐ๋Šฅ


๋ฉ”์ธ ๊ธฐ๋Šฅ

1. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ: ์งˆ๋ฌธ & ๋‹ต๋ณ€, ์ž์œ , ์Šคํ„ฐ๋”” ๋ชจ์ง‘

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

2. ํ”„๋กœ์ ํŠธ ๊ฐค๋Ÿฌ๋ฆฌ

  • ํ”„๋กœ์ ํŠธ ์กฐํšŒํ•˜๊ธฐ
    • ๊ฒ€์ƒ‰: ์ œ๋ชฉ, ์ž‘์„ฑ์ž๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ •๋ ฌ: ์ตœ์‹ ์ˆœ, ์กฐํšŒ์ˆœ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋„ค์ด์…˜์ด ์ž๋™์œผ๋กœ ์ ์šฉ๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๋“ฑ๋ก, ์ˆ˜์ •, ์‚ญ์ œ
    • markdown์„ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋“ฑ๋ก, ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ์ข‹์•„์š”
    • ๋‹ค๋ฅธ ๋ ˆ์ด์„œ๊ฐ€ ์ž‘์„ฑํ•œ ํ”„๋กœ์ ํŠธ์— โ€˜์ข‹์•„์š”โ€™๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
  • ํ”„๋กœ์ ํŠธ ๋Œ“๊ธ€
    • ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€์„ ๋‹ฌ์•„ ๋‹ค๋ฅธ ๋ ˆ์ด์„œ์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ํšŒ์›

  • ํ”„๋กœํ•„ ์กฐํšŒ ๋ฐ ์ˆ˜์ •
    • ๋ ˆ์ด์„œ์˜ ํšŒ์› ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ ˆ์ด์„œ์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒŒ์‹œ๊ธ€ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ
    • ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€๊ณผ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฒŒ์‹œ๊ธ€ ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒ์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ ˆ์ด์„œ ํ”„๋กœํ•„ ์กฐํšŒ
    • ๋‹ค๋ฅธ ๋ ˆ์ด์„œ์˜ ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ ˆ์ด์„œ์˜ ๋ธ”๋กœ๊ทธ, ๊นƒํ—ˆ๋ธŒ ํŽ˜์ด์ง€๋ฅผ ์กฐํšŒํ•˜๊ณ  ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€

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

์„œ๋ธŒ ๊ธฐ๋Šฅ

1. ํšŒ์›๊ฐ€์ž…

  • Form Validation
  • ์—˜๋ฆฌ์Šค Discord ์ด๋ฏธ์ง€๋ฅผ ์ฒจ๋ถ€ํ•˜๊ณ  ๊ด€๋ฆฌ์ž์˜ ์Šน์ธ์„ ํ†ตํ•ด Racer๋กœ ๊ถŒํ•œ ์Šน๊ฒฉ
    (์Šน์ธ์‹œ ์ด๋ฉ”์ผ ์•Œ๋ฆผ)

2. ๋กœ๊ทธ์ธ

  • github OAuth๋ฅผ ํ†ตํ•ด ๊ฐ„ํŽธํ•˜๊ฒŒ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํšŒ์› ์ •๋ณด ์—†์„ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ์ •๋ณด ์ž…๋ ฅ ํ›„ ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ฑ„ํŒ…

  • ์ฑ„ํŒ…๋ฐฉ ์„ค์ •๊ฐ€๋Šฅ(ํ˜„์žฌ๋Š” ์ „์ฒด๋ฐฉ๋งŒ์„ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค)
  • ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๋งŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. Markdown ๋ฌธ๋ฒ• ์ง€์›

  • ๋ชจ๋“  ๊ธ€์€ Markdown ๋ฌธ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

5. ๊ถŒํ•œ์— ๋”ฐ๋ฅธ ์ฐจ๋“ฑ์  ์ปจํ…์ธ  ์ œ๊ณต

  • ์ด ์„ธ ๊ฐœ์˜ ๊ถŒํ•œ(Guest, Racer, Admin)์„ ํ†ตํ•ด ๊ถŒํ•œ์— ๋”ฐ๋ฅธ ์ฐจ๋“ฑ์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • โ€˜Guestโ€™๋Š” ๊ฒŒ์‹œ๋ฌผ ๋ฐ ํ”„๋กœ์ ํŠธ ์กฐํšŒ ๋ฐ ์ข‹์•„์š” ํ—ˆ์šฉ
  • โ€˜Racerโ€™๋Š” ๊ฒŒ์‹œ๋ฌผ ๋ฐ ํ”„๋กœ์ ํŠธ CRUD, ๋Œ“๊ธ€ ๋ฐ ์ข‹์•„์š” ํ—ˆ์šฉ
  • โ€˜Adminโ€™์€ ๋ชจ๋“  ๊ถŒํ•œ ํ—ˆ์šฉ, ๊ฒŒ์‹œ๊ธ€ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

๐Ÿ“ฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ๋„

:tools: Tech


๐Ÿ”จ ํ”„๋ก ํŠธ์—”๋“œ


ReactJS TypeScript
Styled-Components
Recoil React Query
Vite

๐Ÿ”ง ๋ฐฑ์—”๋“œ


TypeScript express.js
mongodb Amazon S3
Socket.io Jest
nginx


๐Ÿ•ธ๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋„



์™€์ด์–ดํ”„๋ ˆ์ž„


ERD


API DOCS


๐Ÿค ํ”„๋กœ์ ํŠธ ํŒ€์› ์—ญํ•  ๋ถ„๋‹ด


์ด๋ฆ„ ์—ญํ• 
์ฒœํ˜„์šฐ ๋ฐฑ์—”๋“œ / ํŒ€์žฅ
๊น€์ฃผํ˜„ ํ”„๋ก ํŠธ์—”๋“œ
์„ค์žฌํ˜ ํ”„๋ก ํŠธ์—”๋“œ
์‹ ์œค์ˆ˜ ๋ฐฑ์—”๋“œ
์ด์Šนํ›ˆ ํ”„๋ก ํŠธ์—”๋“œ
์ดํ˜œ์„ฑ ํ”„๋ก ํŠธ์—”๋“œ