GithubHelp home page GithubHelp logo

movie_pjt_front's Introduction

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

  • ์˜ํ™” ์ •๋ณด ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ์„œ๋น„์Šค ๊ตฌ์„ฑ ๐ŸŽฅ

  • ์‚ฌ์šฉ ์–ธ์–ด

    • python 3.9
    • Django 3.2
    • Vue.js
  • ์•„ํ‚คํ…์ฒ˜ : Django REST API ์„œ๋ฒ„ & Vue.js

  • ์—…๋ฌด ๋ถ„๋‹ด ๋‚ด์—ญ

    • ์ฃผ์ง€ํ™˜ : Front-end ๊ตฌ์„ฑ
    • ์ •์ง€์œค : Back-end ๊ตฌ์„ฑ
  • ํ”„๋กœ์ ํŠธ ํฌํ•จ fixture

    • accounts : admin-admin
    • community
    • movies

๐Ÿ““ ํ”„๋กœ์ ํŠธ ์‹คํ–‰์ˆœ์„œ

๐Ÿ’ฅback ์‹คํ–‰ ์ˆœ์„œ

  1. python -m venv venv

  2. ctrt+shift+p ๋‹จ์ถ•ํ‚ค ์‹คํ–‰ => ๊ฐ€์ƒํ™˜๊ฒฝ ์ ์šฉ

  3. source/venv/Scripts/activate ๊ฐ€์ƒํ™˜๊ฒฝ ์‹คํ–‰

  4. pip install -r requirements.txt

  5. python manage.py migrate

    <loaddata์˜ ๊ฒฝ์šฐ ์•„๋ž˜์˜ account์˜ fixtures๋ฅผ ๋จผ์ € loadํ•œ ํ›„์— community์˜fixtures๋ฅผ load ํ• ๊ฒƒ>

  6. python manage.py loaddata movies.json

  7. python manage.py loaddata accounts.json

  8. python manage.py loaddata community.json

  9. python manage.py runserver

๐Ÿ’ฅfront ์‹คํ–‰ ์ˆœ์„œ

  1. npm i
  2. npm run serve

๐Ÿ‘Š ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

Hashtag์— ๊ธฐ๋ฐ˜ํ•œ ์˜ํ™” ์ถ”์ฒœ ์„œ๋น„์Šค !

์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€์˜ ๊ธฐ๋Šฅ์„ ์ž˜ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์˜ ๊ด€์‹ฌ ์ •๋ณด๋“ค์„ Hashtag๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ด€๋ จ ์˜ํ™” ๋ชฉ๋ก๋“ค์„ ์ถ”์ฒœํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

  • ์ดˆ๊ธฐ ํ™”๋ฉด ๊ธฐํš์•ˆ (ovenapp ์‚ฌ์šฉ)

    • Home
    image-20211125152310729
    • Search / Detail

      image-20211125152502795
    • Login/ Signup

      image-20211125152609725
    • Community

      image-20211125152647870

๐Ÿ˜… ํ”„๋กœ์ ํŠธ์ˆ˜ํ–‰ ๊ณผ์ •

  • URL ์ฃผ์†Œ ๊ด€๋ฆฌ : google docs๋ฅผ ํ™œ์šฉํ•˜์—ฌ URL ์ฃผ์†Œ ๊ณต์œ 

    image-20211125153053732
  • ์ผ์ • ๊ด€๋ฆฌ : ๋””์Šค์ฝ”๋“œ ๋ฐ Notion์„ ํ†ตํ•ด ์ผ์ • ๊ด€๋ฆฌ

    โ€‹ image-20211125153211059 image-20211125153330537

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง (ERD)

ERD

๐Ÿ“ƒ ๊ธฐ๋Šฅ ๋ฐ ํ™”๋ฉด ์„ค๋ช…

๐Ÿ  HOME ํ™”๋ฉด

  • Weekly Boxoffice

    ์˜ํ™”์ง„ํฅ์œ„์›ํšŒ์˜ ์ฃผ๊ฐ„ ๋ฐ•์Šค ์˜คํ”ผ์Šค ์กฐํšŒ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์˜ค๋Š˜ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ฃผ๊ฐ„ ์ƒ์˜์ž‘๋“ค์˜ ๋ฐ•์Šค์˜คํ”ผ์Šค ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

  • Top Rated Movies

    ํ‰์ ์ด ๋†’์€ ์˜ํ™” 10๊ฐœ๋ฅผ ์ถ”์ฒœํ•ด์ค๋‹ˆ๋‹ค.

image-20211125153906022

  • Hashtag ์˜ํ™” ์ถ”์ฒœ

    ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๊ฒŒ์‹œํŒ ๋‚ด ๊ฐ€์žฅ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์€ Hashtag 1, 2์œ„์— ๋Œ€ํ•ด ์ œ๋ชฉ ๋ฐ ์ค„๊ฑฐ๋ฆฌ์— ๊ด€๋ จ์ด ์žˆ๋Š” ์˜ํ™” 10๊ฐ€์ง€๋ฅผ ์ž„์˜๋กœ ์ถ”์ฒœํ•ด์ค๋‹ˆ๋‹ค.

image-20211125154309871

โ€‹

  • Hashtag ๋ฐฐ์ง€

    Hashtag ๋ฐฐ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ˜„์žฌ ์ธ๊ธฐ ์žˆ๋Š” Hashtagํƒœ๊ทธ๋“ค์— ๋Œ€ํ•ด ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ•ด๋‹น Hashtag ํด๋ฆญ ์‹œ, Hashtag 1์œ„์— ๊ด€ํ•œ ์˜ํ™” ๋‚ด์šฉ์ด ํ•ด๋‹น Hashtag ๋‚ด์šฉ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์•Œ๋ ค์ค๋‹ˆ๋‹ค. (#์–ด๋ฒค์ ธ์Šค ํด๋ฆญ ์‹œ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์˜ํ™” ๋‚ด์šฉ ๋ณ€๊ฒฝ)

    image-20211125154849523 image-20211125155124422

๐Ÿ“ Detail ํ™”๋ฉด

weekly Boxffice ๋ถ€๋ถ„์„ ์ œ์™ธํ•œ ์˜ํ™” ํฌ์Šคํ„ฐ ์ด๋ฏธ์ง€ ํด๋ฆญ ์‹œ ์˜ํ™”์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image-20211125155425445

๐Ÿ”Ž Search ๊ธฐ๋Šฅ ๋ฐ ํ™”๋ฉด

  • ๊ฒ€์ƒ‰์ฐฝ

    ์ƒ๋‹จ navbar์— ๊ฒ€์ƒ‰์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒ€์ƒ‰์ฐฝ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

image-20211125155900278

image-20211125155912446

  • ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

    ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ์‹œ ์˜ํ™” ์ •๋ณด์˜ ์ œ๋ชฉ, ์ค„๊ฑฐ๋ฆฌ, ๋ฐฐ์šฐ(์˜์–ด๋งŒ ๊ฐ€๋Šฅ), ์žฅ๋ฅด์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

image-20211125160200940

โœ๏ธ Community ํ™”๋ฉด

์„œ๋น„์Šค ์œ ์ €๋“ค์ด ์˜ํ™”์— ๊ด€ํ•ด ์ž์œ ๋กญ๊ฒŒ ์˜๋…ผํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค.

  • ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ํ™”๋ฉด

    v-expansion-panel components๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์‹œํŒ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ํ™” ์ œ๋ชฉ๊ณผ ์ž‘์„ฑ์ผ์ž, ๋ฆฌ๋ทฐ์ œ๋ชฉ, ์กฐํšŒ์ˆ˜๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜์˜€์œผ๋ฉฐ, ํ•ด๋‹น ํŒจ๋„ ์„ ํƒ ์‹œ ํ•˜๋‹จ์œผ๋กœ ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์˜ ๋””ํ…Œ์ผ ๋‚ด์šฉ์ด ์กฐํšŒ๋ฉ๋‹ˆ๋‹ค.

image-20211125160555831

โ€‹

  • ๊ฒŒ์‹œ๊ธ€ ๋””ํ…Œ์ผ ํ™”๋ฉด

    ์„ ํƒํ•œ ์˜ํ™”์— ๋งž๋Š” Poster Image ๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉฐ ์ž‘์„ฑ๋œ ๊ฒŒ์‹œ๊ธ€์˜ ๋‚ด์šฉ๊ณผ ํ•˜๋‹จ์—๋Š” Comments๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด ๊ฒŒ์‹œ๊ธ€์— ๋Œ€ํ•ด ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    image-20211125161417360
  • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ํ™”๋ฉด

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

    image-20211125161713593 image-20211125161637822

    ** Hashtag ์ˆ˜์ง‘ ๊ทœ์น™

    • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์‹œ Hashtag๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„œ๋ฒ„์˜ Hashtag ํ…Œ์ด๋ธ”์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.
    • ํ•˜๋‚˜์˜ ๊ธ€์— ๋‹ค๋Ÿ‰์œผ๋กœ ๋™์ผํ•œ Hashtag ์ž‘์„ฑํ•˜๋Š” ์•…์„ฑ ์‚ฌ์šฉ์ž๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ๊ฒŒ์‹œ๊ธ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ค‘๋ณต๋˜๋Š” Hashtag์˜ ๊ฐœ์ˆ˜๋Š” ํ•˜๋‚˜๋งŒ countํ•˜์˜€์Šต๋‹ˆ๋‹ค.
    • ๊ฒŒ์‹œ๊ธ€ Delete ๋ฐ Update ์‹œ์—๋„ ๊ด€๋ จ hashtag ๋‚ด์šฉ๋“ค๋„ ํ•จ๊ป˜ update๋ฉ๋‹ˆ๋‹ค.

๐Ÿ” Login / Signup ํ™”๋ฉด

Login ํ™”๋ฉด ํ•˜๋‹จ Signup ๋งํฌ๋ฅผ ํ†ตํ•ด Signup ํ™”๋ฉด์œผ๋กœ ์ด๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image-20211125162505501 image-20211125162533073

โœ”๏ธ ๋Š๋‚€์  ๋ฐ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„

  • ์ •์ง€์œค

    • ๊ทธ๋™์•ˆ ์ˆ˜์—… ์‹œ๊ฐ„์— ํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋“ค์ด ๋‹ค ๋‚ด๊ฒƒ์ด ์•„๋‹ˆ์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ผˆ์ €๋ฆฌ๊ฒŒ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜“

      ๊ทธ๋™์•ˆ์˜ ํ”„๋กœ์ ํŠธ๋“ค์„ ํ•ฉ์น˜๋ฉด ์‰ฝ๊ฒŒ ์™„์„ฑ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ ์‹ค์ œ๋กœ ์›ํ•˜๋Š” ๋ถ€๋ถ„์„ modifyํ•˜๋ฉฐ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ์ž˜ ์•ˆ ๋˜๋Š” ๊ฒƒ ํˆฌ์„ฑ์ด์˜€์Šต๋‹ˆ๋‹ค.

      ํŠนํžˆ serializer !! ๋ญ”๊ฐ€ ๋„ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ง ํ•˜๊ณ  ๋˜์–ด์„œ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•˜๋Š”๋ฐ, ์ž˜ ์•ˆ ๋˜์„œ ์ฒ˜์Œ ์ž‘์„ฑํ–ˆ๋˜ ๋ถ€๋ถ„์ธ movies ๊ด€๋ จ ๋ถ€๋ถ„์€ ๋Œ€๋ถ€๋ถ„ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ˆ˜์ž‘์—… ํ•˜์—ฌ JsonResponse๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์˜€์Šต๋‹ˆ๋‹ค.

      ์ถ”ํ›„ community๋ถ€๋ถ„์„ serializer๋กœ ์ž‘์„ฑํ•˜๋ฉฐ ์ด๋Ÿด ๋•Œ serializer๋ฅผ ์“ฐ๋ฉด ํŽธ๋ฆฌํ•˜๊ตฌ๋‚˜๋ฅผ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ƒ

    • bootstrap์™ธ์—๋„ ๋‹ค์–‘ํ•œ module๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉฐ module์˜ ํŽธ๋ฆฌํ•จ๊ณผ ์–ด๋ ค์›€์— ๋Œ€ํ•ด ๋™์‹œ์— ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค... ํ™ˆํ™”๋ฉด์˜ ์˜ํ™”๋ฅผ ๋ฉ‹์ง€๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๋ถ€๋ถ„์„ ๊ตฌ์„ฑํ•˜๋ฉฐ, vue-slick์„ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ ์นœ์ ˆํ•œ ์„ค๋ช…๊ณผ ํ•จ๊ป˜ ๋‹ค์–‘ํ•œ option๋“ค์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์˜ํ™” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ๋ชจ์–‘์„ ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ํ•ด๋‹น ์˜ํ™” ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒ ์‹œ ๋””ํ…Œ์ผ ํ™”๋ฉด์˜ ์œ„์น˜๊ฐ€ ์ด์ƒํ•˜๊ฒŒ ๊ณ ์ •๋˜์–ด ํ•˜๋ฃจ๋™์•ˆ ์›์ธ์„ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

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

    • ์•„๋ฌด๊ฑฐ๋‚˜ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๊ฒŒ ๋‹ค ๋‚ด๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๋” ํฐ ํƒˆ์ด ๋‚œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ต

      ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ด๋ฏธ ๋งŽ์€ ์†Œ์Šค๋“ค์ด ์žˆ๊ธฐ์— ๋ฉ‹์ ธ๋ณด์ด๋Š” ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ™”๋ฉด ๊ตฌ์„ฑ์ด ์™„์„ฑ ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ,,, ์˜คํžˆ๋ ค ๊ธฐ๋ณธ component๋“ค์ด ์ž์œ ๋„๊ฐ€ ๋†’์•„ ์„ค์ •ํ•˜๋Š”๋ฐ๋Š” ๋” ์‰ฌ์› ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๋Š” ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ์ „์ฒด์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜๋„ ์žˆ๊ธฐ์— !!! (๋‹ค๋ฅธ ํŒŒ์ผ์˜ style ์†์„ฑ์ด ์ „์ฒด๋กœ ์„ค์ •๋˜์–ด์žˆ์œผ๋ฉด์„œ #app์— ๋Œ€ํ•ด ๊ฑด๋“ค์ด๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด์„œ ํ™”๋ฉด ๊ตฌ์„ฑ์ด ๊ฐ‘์ž๊ธฐ ๋ณ€๊ฒฝ๋˜์–ด์„œ ๋‹นํ™ฉํ•œ ์ ์ด์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿคฆโ€โ™€๏ธ )

    • ์ธ์ฆ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒƒ ๊ฐ™์•„ ์•„์‰ฌ์›€์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ๊ทธ์ € Login ์ˆ˜์—… ์‹œ๊ฐ„์— ๋ฐฐ์šด ๋ถ€๋ถ„์„ ๋ณต์‚ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์ง€ํ™˜

    <๊ตฌํ˜„ํ•˜๋ ค ํ–ˆ์ง€๋งŒ ๋ชปํ–ˆ๋˜ ๊ฒƒ,,>

    1. ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์žˆ๋Š” ๊ฒŒ์‹œ๊ธ€์— textarea์˜ readonly ์†์„ฑ์„ ๋ฒ„ํŠผ ์กฐ์ž‘์„ ํ†ตํ•ด์„œ true -> false๋กœ ๋ฐ”๊พธ๊ธฐ

    => ์ง€๊ธˆ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ์˜ ๊ฒŒ์‹œ๊ธ€๋“ค์€ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด ์ˆ˜์ •/์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„œ๋ฒ„(django)์—์„œ ํด๋ผ์ด์–ธํŠธ(vue)์—์„œ ๋ชจ๋‘ ๋ง‰๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒŒ์‹œ๊ธ€์˜ ์ˆ˜์ •์„ ์œ„ํ•ด์„œ textarea์˜ readonly ์†์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’์„ false๋กœ ์ง€์ •ํ•ด๋‘์–ด์„œ, ์‹ค์ œ๋กœ DB์— ์ˆ˜์ •์ด๋‚˜ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•ด๋„ 403 ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚˜๊ณ , ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€์ด๋‚˜ ๋Œ“๊ธ€์ด ์•„๋‹ˆ๋ผ๋ฉด ์ˆ˜์ •/์‚ญ์ œ ๋ฒ„ํŠผ๋„ ๋œจ์ง€ ์•Š์ง€๋งŒ ํ™”๋ฉด์— ์ถœ๋ ฅ์ด ๋˜๋Š” ๋ถ€๋ถ„์€ ์ž์œ ๋กญ๊ฒŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ method๋ฅผ ํ†ตํ•ด ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ button์„ ํ†ตํ•ด readonly ์†์„ฑ์„ ๋ฐ”๊พธ๊ฒŒ ํ•˜๋ ค ํ–ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•ด ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    1. MovieCard backgound image ๋„ฃ๊ธฐ

    => MovieCard์—์„œ ๋ฐฐ๊ฒฝํ™”๋ฉด์œผ๋กœ ํฌ์Šคํ„ฐ์˜ ์ด๋ฏธ์ง€๋ฅผ ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•ด์„œ ๋„ฃ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ vuetufy๋ฅผ ํ™œ์šฉํ•œ v-dialog fullscreen์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ํฌ์Šคํ„ฐ์˜ ์ด๋ฏธ์ง€๊ฐ€ ๊บ ์ ธ ๋ณด์˜€๊ณ , ํˆฌ๋ช…ํ•˜๊ฒŒ ํ•˜๋”๋ผ๋„ ํ…์ŠคํŠธ๋ฅผ ์ฝ๋Š”๋ฐ ์กฐ๊ธˆ ์‚ฐ๋งŒํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ์กด์˜ ๊ฒ€์€์ƒ‰ ํ™”๋ฉด์ด ๋‚ซ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ๊ฐœ๋ฐœ์„ ์ค‘์ง€ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

    <์–ด๋ ค์› ๋˜ ์ >

    1. ์ต์ˆ™ํ•˜์ง€ ์•Š์€ vue ํ”„๋ ˆ์ž„์›Œํฌ

    => vue์— ์ต์ˆ™ํ•˜์ง€ ๋ชปํ•ด์„œ ์ดˆ๋ฐ˜์— vue๋ฅผ ๋‹ค์‹œ ๊ณต๋ถ€ํ•˜๋Š๋ผ ์• ๋ฅผ ์ข€ ๋จน์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์น˜๋งŒ vue๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ณต์‹๋ฌธ์„œ๊ฐ€ ํ•œ๊ธ€์ง€์›์ด ๋„ˆ๋ฌด ์ž˜๋˜์–ด์žˆ๊ณ , ํŽ˜์ด์ง€๋„ ๋ณด๊ธฐ ์ข‹์•„์„œ ํ›จ์”ฌ ๋” ์ˆ˜์›”ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ถ€์กฑํ•œ ์ ์ด ์žˆ์—ˆ๋‹ค๋ฉด, vue๊ด€๋ จ ์„œ์ ์„ ๊ตฌ๋งคํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ , ๊ตฌ๊ธ€๊ฒ€์ƒ‰์„ ํ†ตํ•ด์„œ ์ฑ„์›Œ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค. ๋ฐฑ๋ฒˆ ๋จธ๋ฆฌ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด๋ ‡๊ฒŒ ์ง์ ‘ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜๋ฉด์„œ Vue๋ฅผ ๋ฐฐ์šฐ๊ฒŒ ๋˜์–ด์„œ ๋‹จ๊ธฐ๊ฐ„์— ์‹ค๋ ฅ์ด ๋Š˜ ์ˆ˜ ์žˆ์—ˆ๋˜๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    1. ๋๊นŒ์ง€ ๋ฐœ๋ชฉ์„ ์žก์•˜๋˜ ๋Œ“๊ธ€ crud

    => ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ณจ์น˜ ์•„ํŒ ๋˜ ๋ถ€๋ถ„์€ community์˜ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ๋Œ“๊ธ€์˜ crud๋ถ€๋ถ„ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. vuex๋ฅผ ํ™œ์šฉํ•ด์„œ ์‚ฌ์šฉํ•œ ๋กœ์ง์€ ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์ง€๋งŒ, commentList์—์„œ v-for๋ฅผ ํ†ตํ•ด์„œ commentListItem์œผ๋กœ ๋ฐ์ดํ„ฐ props๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ key๊ฐ’์„ ๊ทธ๋ƒฅ idx๋กœ ์ง€์ •ํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ ๋–„๋ฌธ์— ์ฐธ์œผ๋กœ ์˜ค๋žœ์‹œ๊ฐ„์„ ๋””๋ฒ„๊น… ํ–ˆ์Šต๋‹ˆ๋‹ค. idx๋กœ key๊ฐ’์„ ์ฃผ์—ˆ์„ ๋•Œ๋Š” ๋Œ“๊ธ€์˜ ์‚ญ์ œ์‹œ์— idx๊ฐ€ key๊ฐ’์œผ๋กœ์„œ ๊ธฐ๋Šฅ์„ ํ•˜์ง€ ๋ชปํ•˜์—ฌ์„œ ๋‚ด๊ฐ€ ์‚ญ์ œํ•˜๋ ค ํ–ˆ๋˜ ๋Œ“๊ธ€์„ ์ง€์šฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ๋Œ“๊ธ€์„ ์‚ญ์ œ ํ•˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์„ ์ธ์ง€ํ•˜๊ณ  key์˜ ๊ฐ’์œผ๋กœ comment๋งˆ๋‹ค ์กด์žฌํ•˜๋Š” ๊ณ ์œ ํ•œ comment.id์˜ ๊ฐ’์œผ๋กœ ์ˆ˜์ •ํ•˜๋‹ˆ ๊ธฐ์กด์— ๋ฐœ์ƒํ–ˆ๋˜ ์˜ค๋ฅ˜๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€์ด ์‚ญ์ œ๋˜๋ฉด emit์„ ํ†ตํ•ด์„œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์•Œ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋Œ“๊ธ€ ๋ชฉ๋ก์„ ์กฐํšŒํ•˜๋Š” logic๋„ ์ฒ˜์Œ์—” ํ—ท๊ฐˆ๋ ธ์ง€๋งŒ ์ง€๊ธˆ์€ ์ดํ•ด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    1. ๋””์ž์ธ์€ ์–ด๋ ต๋‹ค

    => ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋””์ž์ธ์€ ํ•œ ์ดํ‹€์ด๋ฉด ํ•˜์ง€ ์•Š์„๊นŒ?! ๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๋Š” ์ œ ์˜ค๋งŒํ•œ ์ฐฉ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… pj ์ด์ „์— pjt ๋“ค์—์„œ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„์—๋งŒ ์‹ ๊ฒฝ์“ฐ๊ณ  ๋””์ž์ธ ์ ์ธ ๋ถ€๋ถ„์€ ์ž˜ ํ•˜์ง€ ์•Š์•„์„œ ์ด๋ฒˆ ์ตœ์ข… pjt๋ฅผ ํ•˜๋ฉด์„œ ๋””์ž์ธ ๋ถ€๋ถ„์ด ์ •๋ง ๊นŒ๋‹ค๋กœ์› ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด vuetify๋ฅผ ์ฐพ๊ฒŒ ๋˜๊ณ , ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋””์ž์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ตฌํ˜„ ํ•œ๊ฒƒ๋„ ํฐ ์ˆ˜ํ™•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ html, css๋ถ€๋ถ„์„ ๋ฐฉํ•™์— ํด๋ก  ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋‹ค์‹œ๊ธˆ ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.