Skip to content

Latest commit

ย 

History

History
254 lines (148 loc) ยท 11.1 KB

README.md

File metadata and controls

254 lines (148 loc) ยท 11.1 KB

2023-2-SCS4031-01-Capsaicin

2023๋…„ 2ํ•™๊ธฐ โ€˜์œตํ•ฉ์บก์Šคํ†ค๋””์ž์ธโ€™ ์ˆ˜์—…์—์„œ

์Šค๋งˆํŠธ ๊ฒฝ๋กœ๋‹น ๊ฐœ๋…์˜ ํ˜ˆ์•• ์ˆ˜์ฒฉ ์›น ์„œ๋น„์Šค '๊ณ , ์Šคํ†ฑ!'์„ ์ œ์ž‘ํ•˜๋Š” ์บก์‚ฌ์ด์‹  ํŒ€์ž…๋‹ˆ๋‹ค! โค๏ธโ€๐Ÿ”ฅ


๐Ÿ’ญย About

1. ํ”„๋กœ์ ํŠธ๋ช…

์Šค๋งˆํŠธ ๊ฒฝ๋กœ๋‹น ๊ฐœ๋…์˜ ํ˜ˆ์•• ์ˆ˜์ฒฉ ์›น ์„œ๋น„์Šค '๊ณ , ์Šคํ†ฑ!'

2. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

๊ณ ํ˜ˆ์•• ์œ„ํ—˜ ๋…ธ์ธ์„ ๋Œ€์ƒ์œผ๋กœ ๋””์ง€ํ„ธ ๊ฒฝ๋กœ๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ˜ˆ์•• ์ˆ˜์ฒฉ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ์‹๋‹จ ๋ฐ ๊ฑด๊ฐ• ๊ธฐ๋ก์„ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๊ธ‰์ฆํ•œ ๊ณ ๋ น ์ธ๊ตฌ์˜ ๋‹ค์–‘ํ•œ ์ˆ˜์š”์— ๋”ฐ๋ผ ๊ฒฝ๋กœ๋‹น ์—ญ์‹œ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

3. ์š”๊ตฌ๋ถ„์„

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

ํ˜ˆ์•• ๊ด€๋ฆฌ ์„œ๋น„์Šค๋Š” ๋งŽ์ง€๋งŒ ๋…ธ์ธ๋“ค์ด ๋ณด๊ธฐ์— ๋‹ค์†Œ UI๊ฐ€ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ, ๊ฒฝ๋กœ๋‹น์€ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ฒฝ๋กœ๋‹น ๋‚ด์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


๐Ÿ”ย Guides

ํ”„๋ก ํŠธ์—”๋“œ ์„œ๋ฒ„์™€ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋ชจ๋‘ ์‹คํ–‰๋˜๊ณ  ์žˆ์–ด์•ผ ์ •์ƒ์ ์ธ ์ž‘๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • FrontEnd ์„ค์น˜ ๋ฐฉ๋ฒ•
    1. ํ„ฐ๋ฏธ๋„(๋งฅ) ํ˜น์€ cmd(์œˆ๋„์šฐ) ์ฐฝ์—์„œ ์›ํ•˜๋Š” ๊ฒฝ๋กœ์— git clone https://github.com/CSID-DGU/2023-2-SCS4031-01-Capsaicin
    2. VSCode์— ๋“ค์–ด๊ฐ€ VSCode ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์ผœ ํ˜„์žฌ CSID-DGU/2023-2-SCS4031-01-Capsacin ๊ฒฝ๋กœ์ธ ๊ฒฝ์šฐ cd front๋ฅผ ํ†ตํ•ด ํ”„๋ก ํŠธ ํด๋” ์ ‘์†
    3. ํ„ฐ๋ฏธ๋„ ์ฐฝ์— npm install (์ดˆ๊ธฐ ์ ‘์†์˜ ๊ฒฝ์šฐ) ์ž…๋ ฅ
    4. npm run dev ์ž…๋ ฅ (localhost 5173๋ฒˆ์œผ๋กœ ์ ‘์†)
  • BackEnd ์„ค์น˜ ๋ฐฉ๋ฒ•
    1. (์ด๋ฏธ ํด๋ก ์ด ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •, ํด๋ก ์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํ”„๋ก ํŠธ 1. ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ํด๋ก ) VSCode๋ฅผ ์ƒˆ๋กœ์šด ์œˆ๋„์šฐ์—์„œ ์‹คํ–‰ํ•œ ๋‹ค์Œ ํ„ฐ๋ฏธ๋„ ์ฐฝ์„ ์ผœ CSID-DGU/2023-2-SCS4031-01-Capsacin ๊ฒฝ๋กœ์ธ ๊ฒฝ์šฐ cd backend๋ฅผ ํ†ตํ•ด ๋ฐฑ์—”๋“œ ํด๋” ์ ‘์†

    2. pip install -r requirements.txt (ํŒจํ‚ค์ง€ ์„ค์น˜)

    3. python manage.py makemigrations

      python manage.py migrate โ€”run-syncdb (dbํŒŒ์ผ ์ƒ์„ฑ, ๊นƒ์—๋Š” db๋ฅผ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด dbํŒŒ์ผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผํ•จ)

    4. python manage.py runserver (์„œ๋ฒ„ ์‹คํ–‰, localhost 8000๋ฒˆ์œผ๋กœ ์ ‘์†)


โš™๏ธ System Architecture

  • Service Architecture
  • Database Architecture
  • Usecase Diagram

๐Ÿ“šย Tech Stack

Common

Frontend

Backend


๐Ÿ–ฅย Project Result

1. ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ

ํšŒ์›๊ฐ€์ž… ์‹œ ์ผ๋ฐ˜์œ ์ €์™€ ๋ณดํ˜ธ์ž ์œ ์ €๋ฅผ ์„ ํƒํ•˜์—ฌ ๊ฐ€์ž…ํ•ฉ๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜์œ ์ € : ์†Œ์† ๊ฒฝ๋กœ๋‹น๊ณผ ๊ฑด๊ฐ•์ •๋ณด(ํ‚ค, ๋ชธ๋ฌด๊ฒŒ, ์ˆ˜์ถ•ํ˜ˆ์••)์„ ํฌํ•จํ•œ ๊ฐœ์ธ ์ •๋ณด ์ž…๋ ฅํ•˜์—ฌ ๊ฐ€์ž…
  • ๋ณดํ˜ธ์ž ์œ ์ € : ๋ชจ๋‹ˆํ„ฐ๋ง์„ ํ•  ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์˜ ์ „ํ™”๋ฒˆํ˜ธ์™€ ๋ณธ์ธ์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ๊ฐ€์ž…

์œ ์ €๋Š” ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ผ๋ฐ˜ ์œ ์ €, ๋ณดํ˜ธ์ž ์œ ์ € ์ค‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ผ๋ฐ˜ ์œ ์ € ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด
  • ๋ณดํ˜ธ์ž ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด

2. ๋ฉ”์ธํ™”๋ฉด

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

3. ๊ฑด๊ฐ•์ž…๋ ฅ

  • ๊ฑด๊ฐ•์ž…๋ ฅ ๋ฉ”์ธ

    ํ˜ˆ์••, ๋ชธ๋ฌด๊ฒŒ, ์Œ์‹ ๋ฐ ์šด๋™์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํƒญ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ˜ˆ์••/๋ชธ๋ฌด๊ฒŒ ์ž…๋ ฅ
    • ํ˜ˆ์••๊ณผ ๋ชธ๋ฌด๊ฒŒ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹๋‹จ์ •๋ณด ์ž…๋ ฅ
    • 8๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๋ฉด ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์Œ์‹ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ์Œ์‹๊ณผ ๋จน์€ ์Œ์‹์˜ ์–‘์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-12-01 แ„‹แ…ฉแ„’แ…ฎ 5 26 51 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-12-01 แ„‹แ…ฉแ„’แ…ฎ 5 23 32 แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-12-01 แ„‹แ…ฉแ„’แ…ฎ 5 24 42
  • ์šด๋™ ์ž…๋ ฅ
    • ์Œ์‹ ์ž…๋ ฅ๊ณผ UI ๋™์ผ

4. ๊ฑด๊ฐ•๊ธฐ๋ก

  • ์‚ฌ์šฉ์ž์˜ ์ธก์ •ํ•œ ๋ชธ๋ฌด๊ฒŒ, ํ˜ˆ์•• ์ˆ˜์น˜์™€ ์šด๋™ ์†Œ๋ชจ ์นผ๋กœ๋ฆฌ๋ฅผ ํ‘œ ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์ตœ๊ทผ์— ๋จน์€ ์Œ์‹์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ๋งž์ถค์ผ€์–ด

  • ์‚ฌ์šฉ์ž์˜ ์‹๋‹จ ๊ธฐ๋ก๊ณผ ์šด๋™ ๊ธฐ๋ก์„ ๋ฐ”ํƒ•์œผ๋กœ ๋งž์ถค ์‹๋‹จ๊ณผ ์šด๋™์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

6. ์ปค๋ฎค๋‹ˆํ‹ฐ

  • ๊ฒฝ๋กœ๋‹น ๋‚ด ๊ณต์ง€๋ฅผ ํ†ตํ•ด ๊ฒฝ๋กœ๋‹น์˜ ์†Œ์‹์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒฝ๋กœ๋‹น ๋‚ด ๊ด€๋ฆฌ์ž๋Š” ๊ฒฝ๋กœ๋‹น ๊ณต์ง€๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฒˆ ๋‹ฌ ์šด๋™ ๋žญํ‚น๊ณผ ํ˜ˆ์•• ์ธก์ • ๋žญํ‚น์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœจ Expected Outcomes

[์‚ฌ์šฉ์ž ์ธก๋ฉด]

  • ๊ฑด๊ฐ• ์ƒํƒœ ํŒŒ์•… ๊ฐ€๋Šฅ :๋ณธ์ธ์˜ ๊ฑด๊ฐ• ์ƒํƒœ๋ฅผ ๋” ์ฃผ์˜๊นŠ๊ฒŒ ๊ด€์ฐฐ ๊ฐ€๋Šฅ
  • ๊ฐœ์ธ ๋งŸ์คŒํ˜• ๊ฑด๊ฐ• ๊ด€๋ฆฌ : ์ฃผ๊ธฐ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ์‹๋‹จ, ์šด๋™ ์ •๋ณด๋ฅผ ํ† ๋Œ€๋กœ ์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„ ๊ธฐ๋ฐ˜ ์‹๋‹จ ์ถ”์ฒœ ์„œ๋น„์Šค ์ œ๊ณต

[๋ณดํ˜ธ์ž ์ธก๋ฉด]

  • ์‚ฌ์šฉ์ž ๊ฑด๊ฐ• ๋ชจ๋‹ˆํ„ฐ๋ง : ์‚ฌ์šฉ์ž์˜ ๊ฑด๊ฐ• ์ƒํƒœ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€๋Šฅ ๋ฐ ์ผ์ƒ ์ƒํ™œ์—์„œ์˜ ์ ๋‹นํ•œ ์กฐ์–ธ๊ณผ ์ง€์› ๊ฐ€๋Šฅ

๐Ÿ“ Commit Convention

ํƒœ๊ทธ: ์„ค๋ช…

ํƒœ๊ทธ ์ด๋ฆ„ ์„ค๋ช…
Feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
Fix ๋ฒ„๊ทธ ์ˆ˜์ •
Design CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
Comment ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฃผ์„ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
Test ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
Rename ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช…์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…๋งŒ์ธ ๊ฒฝ์šฐ
Remove ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ—‚ Folder Architecture

FE

|-- api => ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  API์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

|-- assets => ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋  ํฐํŠธ, ์ด๋ฏธ์ง€ ๋“ฑ์˜ ์ •์  ์ž์›์„ ๋ณด๊ด€ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

|-- coponents => ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ชจ์•„๋‘” ๋””๋ ‰ํ† ๋ฆฌ

|-- node_modules => ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋œ ํŒจํ‚ค์ง€๋“ค์ด ์„ค์น˜๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

|-- pages => React Router ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

|-- public => ์ •์  ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ

|-- src => ์ฃผ์š” ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์œ„์น˜ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ(์ปดํฌ๋„ŒํŠธ, ์Šคํƒ€์ผ, ๋กœ์ง ๋“ฑ์ด ์—ฌ๊ธฐ์— ํฌํ•จ)

|-- store => Redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์•ก์…˜, ๋ฆฌ๋“€์„œ ๋“ฑ์„ ๋ชจ์•„๋‘” ๋””๋ ‰ํ† ๋ฆฌ

BE

|-- accounts => ์‚ฌ์šฉ์ž ์ •๋ณด ๊ด€๋ฆฌ

|-- backend => ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐ app ๊ด€๋ฆฌ

|-- main => Api ๊ด€๋ฆฌ


๐Ÿค Team Member

ํŒ€์žฅ -- -- --
์‹ ์Šน์› ๊ณฝํ˜ธ์€ ์ •๋ฏผ๊ฒฝ ํ•œ๊ทœ๋ฏผ
AI FE BE FE
์‚ฐ์—…์‹œ์Šคํ…œ๊ณตํ•™๊ณผ ๊ฒฝ์˜์ •๋ณดํ•™๊ณผ ํ™”๊ณต์ƒ๋ฌผ๊ณตํ•™๊ณผ ์‚ฐ์—…์‹œ์Šคํ…œ๊ณตํ•™๊ณผ
2018112481 2020111571 2019112294 2018112478

๐Ÿ‘ทโ€โ™€๏ธ Jobs

์‹ ์Šน์› : ์Œ์‹ ์ถ”์ฒœ AI ๋ฐ ๋ฐ์ดํ„ฐ์…‹ ๊ตฌ์„ฑ

๊ณฝํ˜ธ์€ : ์ธํ”„๋ผ ๊ตฌ์ถ•, ๊ฑด๊ฐ• ๊ธฐ๋ก ๋ฐ ๋งž์ถค ์ผ€์–ด ๊ตฌํ˜„

์ •๋ฏผ๊ฒฝ : Rest API ๊ฐœ๋ฐœ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ

ํ•œ๊ทœ๋ฏผ : ์Œ์‹ ์ž…๋ ฅ ๋ฐ ์กฐํšŒ, ์šด๋™ ์ž…๋ ฅ ๊ตฌํ˜„