๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํšŒ๊ณ 

[WIL / KPTF] : 4์ฃผ์ฐจ ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒ€ ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ ๊ตฌํ˜„.

by ๊ถŒ์Šพํ–„ 2023. 6. 10.

https://github.com/Yooonzero/2-team-project-movie-detail-page

 

GitHub - Yooonzero/2-team-project-movie-detail-page: 2. ํŒ€๊ณผ์ œ-๊ฐœ์ธํŽ˜์ด์ง€์—์„œ ์˜ํ™”๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธํŽ˜์ด์ง€

2. ํŒ€๊ณผ์ œ-๊ฐœ์ธํŽ˜์ด์ง€์—์„œ ์˜ํ™”๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธํŽ˜์ด์ง€๋กœ ์ด์–ด์ง€๋Š” ๊ธฐ๋Šฅ(๋Œ“๊ธ€ ์ถ”๊ฐ€,์ˆ˜์ •,์‚ญ์ œ ๊ธฐ๋Šฅ) - GitHub - Yooonzero/2-team-project-movie-detail-page: 2. ํŒ€๊ณผ์ œ-๊ฐœ์ธํŽ˜์ด์ง€์—์„œ ์˜ํ™”๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ƒ์„ธํŽ˜

github.com

์ด๋ฒˆ์ฃผ ๋‚ด๊ฐ€ ํ•œ ์ผ
  • ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ, ์˜ํ™” ๋ฆฌ์ŠคํŠธ ๋ฐ ์กฐํšŒ ๊ตฌํ˜„ํ•˜๊ธฐ.

  • ๋ฐ”๋‹๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ, ์˜ํ™” ์ƒ์„ธํŽ˜์ด์ง€ ๋ฐ ๋Œ“๊ธ€๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ.

Keep
  • ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์€ ์ตœ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ถ€๋ถ„์„ ๋ณต์‚ฌํ•ด์„œ ๊ตฌ๊ธ€๋ง

  • ๋ฉ”์„œ๋“œ๋‚˜ ๋ฌธ๋ฒ•์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ mdn ๋ฌธ์„œ ์ฐธ์กฐ

  • ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ์ฝ”๋“œ์—์„œ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์€ ๋ฌผ์–ด๋ณด๊ธฐ

  • ๋‹ค๋ฅธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์—ฌ๋Ÿฌ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์‹œ๋„ํ•ด๋ณด๊ธฐ

  • ์ฒ˜์Œ ๊ตฌํ˜„ํ•˜๋Š” ๊ธฐ๋Šฅ์—์„œ console.log()๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐ์–ด๊ฐ€๋ฉด์„œ ๊ธฐ๋Šฅ ์‹คํ˜„์‹œํ‚ค๊ธฐ

Problem

1). ๋ฌธ์ œ

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

  • localStorage์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š”๋ฐ ์žˆ์–ด JSON.stringify is not a function ์˜ค๋ฅ˜ ํ•ด๊ฒฐ์ด ์•ˆ๋จ.

2). ํ•ด๊ฒฐ

  • task ํ•ด์„์— ๊ด€ํ•œ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ, ๊ตฌํ˜„์‹œํ‚ค๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์–ด๋–ค์‹์œผ๋กœ ๋กœ์ง์„ ์งœ์•ผํ•˜๋Š”์ง€ ๊ณ„์† ์™„์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๋ฉด์„œ, ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„ ํŒŒ์•…ํ•˜๊ธฐ.
  • localStorage์—์„œ ์ˆ˜์ •ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์— ๋‹ด์•„์„œ ๊ทธ ๊ฐ’์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œ์ผœ์•ผ JSON.stringify in not a function์˜ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Œ. (๋‚ด๊ฐ€ ์‚ฌ์šฉํ•œ toSpliced ๋ฉ”์„œ๋“œ๋Š” ์ˆœํ™˜์ฐธ์กฐ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์–•์€๋ณต์‚ฌ๋ฅผ ํ†ตํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.)

Try

 

  • javascript ๋ฌธ๋ฒ• ๊ฐ•์˜ ์ „์ฒด ๋‹ค์‹œ ๋“ค์–ด๋ณด๊ธฐ (๋‹ค์‹œ ๋“ฃ๋Š” ๊ณผ์ •์—์„œ ๊ฐ™์€ ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ• ์ง€๋ผ๋„ ์ƒˆ๋กญ๊ฒŒ ๋ณด์ด๋Š” ๋ถ€๋ถ„๋“ค์ด๋‚˜ ๊ทธ์ œ์„œ์•ผ ์ดํ•ด๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„๋“ค์ด ์ƒ๋‹นํžˆ ๋งŽ์ด ๋ฐœ๊ฒฌ๋จ.)

  • UX์— ๊ด€ํ•œ ๋ถ€๋ถ„์„ ๊ฐœ์„ ์‹œํ‚ค๊ธฐ.

  • semanticํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก <header> ํƒœ๊ทธ๋ผ๋˜์ง€, <form>ํƒœ๊ทธ ๋ผ๋˜์ง€, ๋ณ€์ˆ˜๋ช…์„ camelCase๋กœ ์–ด๋А์ •๋„ ์˜๋ฏธ๊ฐ€ ํ†ตํ•˜๊ฒŒ ์„ ์–ธํ•˜๊ธฐ.

  • ๋ชจ๋“  ๊ตฌ์—ญ์„ <div>๋กœ ๋‚จ๋ฐœํ•˜์ง€ ์•Š๊ธฐ.

  • ํŒŒ์ผ์„ ๊ฐ€๋…์„ฑ์ด ์ข‹๊ฒŒ ์ •๋ฆฌํ•ด๋‘๋Š” ์Šต๊ด€ ๊ธฐ๋ฅด๊ธฐ.

  • ํ˜‘์—…ํ•  ๋•Œ .prettierrc ์‚ฌ์šฉํ•˜๊ธฐ.

Feel

 

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

  • ๋ฐฑ์—”๋“œ์ธ node.js๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์œผ๋‚˜, ํ”„๋ก ํŠธ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ง€์‹ ์ •๋„๋Š” ๋‚˜๋„ ์Œ“์•„๋‘๊ณ  ์–ด๋А์ •๋„ ๋‹ค๋ฃฐ์ค„ ์•Œ์•„์•ผ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๋‚˜ ๊ฐœ์ธ๊ณผ์ œ๋ฅผ ์ˆ˜ํ–‰ํ•จ์— ์žˆ์–ด์„œ, ๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ฒฐ๊ณผ๋ฌผ์„ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ์•˜๋‹ค.

  • ๊ธฐ๋Šฅ๋ณ„๋กœ js ํŒŒ์ผ์„ ์ •๋ฆฌํ•˜๋˜, ๋ฉ”์ธ๊ณผ ์ƒ์„ธํŽ˜์ด์ง€๋กœ ๋‚˜๋ˆ„์–ด์„œ js ํŒŒ์ผ๋กœ ์ •๋ฆฌํ•˜๋˜, import์™€ export ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์„œ ํŒŒ์ผ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ ๊ฐ€๋…์„ฑ ๋ฐ ํ˜‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ•  ๋•Œ ๋ณธ์ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ์‚ฌ๋žŒ๋“ค์˜ ์ดํ•ด ๋ฐ ๊ฐ€๋…์„ฑ์„ ์˜ฌ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š”๊ฒƒ์„ ์•Œ์•„๋ƒˆ๋‹ค.

#์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ #KPTF_ํšŒ๊ณ  #4์ฃผ์ฐจ_๋งˆ๋ฌด๋ฆฌ