[Movie Night] ๐Ÿ”งํ”„๋กœ์ ํŠธ ์„ค๊ณ„

์ดˆ์ดยท2024๋…„ 5์›” 1์ผ
0

๐ŸฟMovieNight

๋ชฉ๋ก ๋ณด๊ธฐ
1/4
post-custom-banner

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”


๊ณผ์ œ ๊ฐœ์š”

  1. ๊ฐœ์ธ๊ณผ์ œ์—์„œ ์ž‘์„ฑํ•œ [๋‚ด๋ฐฐ์บ  ์ธ๊ธฐ์˜ํ™” ์ฝœ๋ ‰์…˜]์„ ๋ฐœ์ „์‹œํ‚ค๋Š” ํŒ€ ํ”„๋กœ์ ํŠธ
  2. ํŒ€์›๋“ค์˜ ํ”„๋กœ์ ํŠธ N๊ฐœ ์ค‘ 1๊ฐœ๋ฅผ ๋Œ€ํ‘œ๋กœ ์„ ํƒ, ํŒ€ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐœ์ „

ํ•„์ˆ˜์š”๊ตฌ์‚ฌํ•ญ

  • TMDB ์˜คํ”ˆ API ์ด์šฉ
  • ์˜ํ™”์ •๋ณด ์ƒ์„ธ ํŽ˜์ด์ง€ ๊ตฌํ˜„
    • ๊ธฐ์กด ์˜ํ™”์ •๋ณด ์นด๋“œ ๋ฆฌ์ŠคํŠธ์—์„œ ํŠน์ • item์„ ์„ ํƒํ•  ์‹œ, ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€(ํ™ˆ)๋กœ ์ด๋™ํ•˜๋Š” UI๋„ ํ•จ๊ป˜ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ์„ธ ํŽ˜์ด์ง€ ์˜ํ™” ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ์ƒ์„ธํŽ˜์ด์ง€์—์„œ ํŠน์ • ์˜ํ™”์— ๋Œ€ํ•ด ์˜๊ฒฌ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” UI๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž‘์„ฑ์ž, ๋ฆฌ๋ทฐ, ํ™•์ธ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
    • ์ž‘์„ฑํ•œ ์ •๋ณด๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ localStorage์— ์ ์žฌํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • github PR(=Pull Request) ์‚ฌ์šฉํ•œ ํ˜‘์—…
  • UX๋ฅผ ๊ณ ๋ คํ•œ validation check

โœ๏ธ 6๋ช…์˜ ํŒ€์›๋“ค ์ค‘ ๋‹ค์ˆ˜๊ฒฐ๋กœ ๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ๋””๋ฒจ๋กญ ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค! ๊ทธ๋Ÿฐ๋‹ค์Œ ํšŒ์˜ ๋์— ์šฐ๋ฆฌ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ๊ฐ ํŒ€์› 6๋ช…์˜ ์™€์ด์–ด ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค๊ณ  ์˜๊ฒฌ์„ ์ข…ํ•ฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค!


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

๊ฐ ํŒ€์› ๋ถ„๋“ค์ด ๊ธฐ๋Šฅ์— ๋งž๊ฒŒ ์™€์ด์–ด ํ”„๋ ˆ์ž„์„ ์ œ์ž‘ํ•˜์…จ๋‹ค. ์ข‹์€ ์˜๊ฒฌ๊ณผ ์•„์ด๋””์–ด๋“ค์ด ๋งŽ์•„ ์ถ”ํ•ฉํ•œ ์™€์ด์–ด ํ”„๋ ˆ์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

[โฌ†๏ธ๋žœ๋”ฉ ํ™”๋ฉด]

[โฌ†๏ธ๊ฒ€์ƒ‰ ์‹œ ์—ฐ๊ด€๊ฒ€์ƒ‰์–ด]

[โฌ†๏ธ์นด๋“œ ๊ฒ€์ƒ‰ ์‹œ]

[โฌ†๏ธ์นด๋“œ ํด๋ฆญ ์‹œ ์ด๋™ํ•œ ์„ธ๋ถ€์ •๋ณด ํ™”๋ฉด]


ํŒŒํŠธ ๋ถ„๋ฐฐ

part 1 (์ „์ฒด์ ์ธ ํ‹€ ๊ฐœ๋ฐœ)

  • ์นด๋“œ ํด๋ฆญ ์‹œ ํŽ˜์ด์ง€ ์ด๋™
  • detail ์•ˆ์— ์ „์ฒด์ ์ธ UI ๊ตฌํ˜„ (html, css)

part 2 (์˜ํ™” ์„ธ๋ถ€ ์ •๋ณด ๋ฐ ์•„์ด์ฝ˜ ๋””์ž์ธ)

  • ์นด๋“œ ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์„ธ๋ถ€ ui ์ •ํ•˜๊ธฐ(์˜ํ™” ์ œ๋ชฉ, ๊ฐ๋…, ๋ฐฐ์šฐ, ๊ฐœ๋ด‰๋…„๋„, ๊ฐœ๋ด‰์ผ, ํ‰์  ๋“ฑ๋“ฑ )
  • ๋กœ๊ณ (์ดˆ์Šน๋‹ฌ), ๋ณ„์  ์•„์ด์ฝ˜ ๋””์ž์ธ

part 3 (๋ฆฌ๋ทฐ create ๋ถ€๋ถ„)

  • ๋ณ„์— ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„ ์‹œ ์ด ์–ผ๋งˆ๋‚˜ ์ฑ„์›Œ์ง€๋Š”์ง€ ๋ณด์ด๊ฒŒ
  • ํ˜ธ๋ฒ„ ํ•œ ๋ถ€๋ถ„๋งŒํผ ํด๋ฆญ ์‹œ ์•„์ด์ฝ˜ ์ƒ‰ ์ฑ„์›Œ์ง
  • ์ž‘์„ฑ์ž, ๋ณ„์ , ๋ฆฌ๋ทฐ ๋‚ด์šฉ ์ž‘์„ฑ ํ›„ ๋ฒ„ํŠผ ๋“ฑ๋ก ์‹œ ํŒจ์“ฐ์›Œ๋“œ modal์ฐฝ
    • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ํ•ด ์ฃผ์…”์•ผ ๋จ(๋นˆ์นธ์žˆ์„ ์‹œ ๋นˆ์นธ ์ž‘์„ฑ ํ•ด๋‹ฌ๋ผ๋Š” alert์ฐฝ)
    • input์— ๊ธ€์ž ์ˆ˜ ์ œํ•œ. (๋‹‰๋„ค์ž„์ด 1000์ž๊ฐ€ ๋˜๋ฉด ๊ณค๋ž€..)
  • localStorage.setItem
    • ์ž‘์„ฑํ•œ ์˜ํ™” id, ์ž‘์„ฑ์ž, ๋ณ„์ , ๋ฆฌ๋ทฐ, password ์ €์žฅ > key๊ฐ’์„ ๋ญ๋กœ ํ•˜์‹ค์ง€ ์ •ํ•˜์…”์•ผ ๋จ(์ˆ˜์ •, ์‚ญ์ œํ•  ๋•Œ ๊ฒน์น˜์ง€ ์•Š๋Š” key๊ฐ’ ํ•„์š”)

part 4 (๋ฆฌ๋ทฐ read)

  • ํ•ด๋‹น ์˜ํ™”์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ(ui ๋งŒ๋“ค๊ธฐ)
  • Review ์˜†์— ๋ช‡ ๊ฐœ์˜ ๋ฆฌ๋ทฐ๊ฐ€ ์žˆ๋Š” ์ง€ ์ˆซ์ž๋กœ ํ‘œ์‹œ
  • ๋ฆฌ๋ทฐ๊ฐ€ ์—†์„ ์‹œ โ€˜๋ฆฌ๋ทฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค textโ€™
  • ๋ฆฌ๋ทฐ ๋ณด์ด๋Š” ๊ฒƒ์„ 3๊ฐœ๋กœ ์ œํ•œํ•˜๊ณ  ๋ฆฌ๋ทฐ ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ

part 5(๋ฆฌ๋ทฐ update, delete)

  • password ํ™•์ธํ•˜๋Š” ๋ชจ๋‹ฌ ์ฐฝ UI ๊ตฌํ˜„
  • ์ˆ˜์ •/์‚ญ์ œ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ password๋ฅผ ์ž…๋ ฅ ์ฐฝ ๋ชจ๋‹ฌ๋œจ๊ฒŒ
  • password๊ฐ€ ๋งž๋‹ค๋ฉด
    • localStorage.remove๋กœ ์‚ญ์ œ
    • ์ˆ˜์ • : text๊ฐ€ input์ฐฝ์œผ๋กœ ๋ณ€ํ•˜๊ณ  ์ด ์ „ ๋‚ด์šฉ์ด ์ ํ˜€์ ธ์žˆ๊ฒŒ.
  • password๊ฐ€ ํ‹€๋ฆฌ๋‹ค๋ฉด
    • ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค alert์ฐฝ
  • ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ํ™•์ธ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ˆ˜์ •๋œ ๋‚ด์šฉ ์—…๋ฐ์ดํŠธ

part6(๋žœ๋”ฉํŽ˜์ด์ง€ ์˜ํ™” ๋ฐฐ๋„ˆ)

  • ์ „์ฒด ์˜ํ™”๋ฅผ ์Šฌ๋ผ์ด๋“œ ํ˜•์‹์œผ๋กœ n์ดˆ๋งˆ๋‹ค ๋„˜์–ด๊ฐ€๊ฒŒ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋„ฃ๊ธฐ
  • ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ํ•˜๋‚˜ ํ•˜๋‚˜ ๋„˜์–ด๊ฐ€๊ฒŒ ํ•˜๊ธฐ or ํด๋ฆญ ํ›„ ์˜†์œผ๋กœ ๋„˜๊ธฐ๋ฉด ์Šฌ๋ผ์ด๋“œ ๋˜๊ฒŒํ•˜๊ธฐ
profile
๊ฐœ๋ฐœ ์ผ๊ธฐ์žฅ
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€