๐Ÿฟ Team Youngchapedia

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

  • ํ”„๋กœ์ ํŠธ ๊ฐœ์š” : ๋‹ค ํ•จ๊ป˜ ์˜์ฐจ์˜์ฐจ WATCHA PEDIA ํด๋ก  ์ฝ”๋”ฉ
  • ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2021.05.10 ~ 2021.05.21
  • ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
    1. ๋ฐฑ์—”๋“œ-ํ”„๋ก ํŠธ์—”๋“œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฐ ํ†ต์‹ ์œผ๋กœ ํ˜‘์—… ๊ฒฝํ—˜ ์Œ“๊ธฐ
    2. ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ณ„ํš๋ณ„ ์‹œ๊ฐ„ ๊ด€๋ฆฌ ๊ฒฝํ—˜ ์Œ“๊ธฐ
    3. React Class Component๋ฅผ ์‚ฌ์šฉํ•œ ์ปดํฌ๋„ŒํŠธ ๊ด€๋ฆฌ ๋ฐ ๊ตฌ์กฐ ์„ค๊ณ„
    4. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ตœ๋Œ€ํ•œ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒฝํ—˜ ์Œ“๊ธฐ
    5. SASS๋ฅผ ํ™œ์šฉํ•œ ์Šคํƒ€์ผ๋ง

ํŒ€์› ๊ตฌ์„ฑ ๋ฐ ๋ธ”๋กœ๊ทธ

๊ธฐํš ํฌ์ธํŠธ

  • ๊ฐœ์ธ์˜ ์ทจํ–ฅ์„ ์กด์ค‘ํ•˜๋Š” ์˜ํ™” ๋ฆฌ๋ทฐ ์ปค๋ฎค๋‹ˆํ‹ฐ
  • ๋‚ด๊ฐ€ ๋ชจ๋ฅด๋Š” ๋‚˜์˜ ์ทจํ–ฅ์„ ์ถ”์ฒœ๋ฐ›๊ธฐ ์œ„ํ•œ ์˜ํ™” ํ‰๊ฐ€ํ•˜๊ธฐ
  • ํ‰๊ฐ€ํ•œ ๋ณ„์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ์„ ํ˜ธ ์žฅ๋ฅด ํŒŒ์•… ๋ณ„์  ์ถ”์ด ๊ทธ๋ž˜ํ”„ํ™”
  • ์žฅ๋ฅด๋ณ„ ์˜ํ™” ํ•„ํ„ฐ๋ง
  • ์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ๋” ๋งŽ์•„์ง€๋Š” ์˜ํ™”๋“ค์˜ ์ •๋ณด ๊ด€๋ฆฌ

๋ฐ๋ชจ ์˜์ƒ

  • YouTube : Link

๐ŸŽž ์ ์šฉ ๊ธฐ์ˆ  ๋ฐ ๊ตฌํ˜„ ๊ธฐ๋Šฅ

์ ์šฉ ๊ธฐ์ˆ 

  • Front-End : React, React Router, Sass, JavaScript, CRA
  • Back-End : Python, Django, My SQL
  • Communication Tool : Trello, Git, GitHub, Slack

๊ตฌํ˜„ ๊ธฐ๋Šฅ

  • ๋ฉ”์ธ ํŽ˜์ด์ง€
  • ์ƒ์„ธ ํŽ˜์ด์ง€ (์˜ํ™”๋ณ„)
  • ๋กœ๊ทธ์ธ & ํšŒ์›๊ฐ€์ž… ๋ชจ๋‹ฌ
  • ํ‰๊ฐ€ํ•˜๊ธฐ ํŽ˜์ด์ง€
  • ๋งˆ์ดํŽ˜์ด์ง€
  • ์ทจํ–ฅ๋ถ„์„ ํŽ˜์ด์ง€

๊ตฌํ˜„ ๊ธฐ๋Šฅ ์ƒ์„ธ

๋ฉ”์ธํŽ˜์ด์ง€ (์ด๋‹ค์Šฌ)

  1. ๋ฉ”์ธํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ๋ฐ ๋ฐ˜์‘ํ˜• Carousel
  2. ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ fetch๋ฅผ ์œ„ํ•œ Infinite Scroll ๊ธฐ๋Šฅ ๊ตฌํ˜„
  3. ํ…Œ๋งˆ๋ณ„ ์˜ํ™” ์ •๋ณด API fetch Setting ์œผ๋กœ ๋ฐฑ์—”๋“œ์˜ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ
  4. path parameter๋ฅผ ํ†ตํ•ด ์ƒ์„ธํŽ˜์ด์ง€์™€ ๋™์  ๋ผ์šฐํŒ… setting

์ƒ์„ธํŽ˜์ด์ง€ (์ „์šฉ๋ฏผ)

  1. ์ƒ์„ธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ ๋ฐ path parameter๋ฅผ ํ†ตํ•œ ๋ฉ”์ธํŽ˜์ด์ง€์™€์˜ ๋™์  ๋ผ์šฐํŒ…
  2. ์˜ํ™” ๋ฐ์ดํ„ฐ API๋ฅผ ํ™œ์šฉํ•œ ์ƒ์„ธ ํŽ˜์ด์ง€ ๋ณด๊ณ ์‹ถ์–ด์š” POST ์š”์ฒญ/๋ณ„์  ํ‰๊ฐ€ POST & GET์š”์ฒญ/์ฝ”๋ฉ˜ํŠธ ์ž‘์„ฑ(๋ชจ๋‹ฌ์ฐฝ) ๋ฐ ์‚ญ์ œ
  3. ์ฝ”๋ฉ˜ํŠธ ๋ฆฌ์ŠคํŠธ ๋ถ€๋ถ„ Carousel ๊ธฐ๋Šฅ ๊ตฌํ˜„

๋งˆ์ดํŽ˜์ด์ง€ & ์ทจํ–ฅ๋ถ„์„ (์ž„์œ ์ง„)

  • ๋ฐฑ์—”๋“œ ์œ ์ € API fetch ๋ฐ›์•„ ๋ณ„์  ๋ถ„ํฌ ๊ทธ๋ž˜ํ”„, ์„ ํ˜ธ ์žฅ๋ฅด ๋žญํ‚น ๋ถ„์„ ๊ฒฐ๊ณผ์ง€ ๊ทธ๋ฆฌ๊ธฐ

ํ‰๊ฐ€ํ•˜๊ธฐ ํŽ˜์ด์ง€ (์ž„์œ ์ง„)

  1. ๋ฐฑ์—”๋“œ API fetch ๋ฐ›์•„ ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ์— ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ํŽ˜์ด์ง€๋„ค์ด์…˜ ํ•˜๊ณ  throttle๋กœ ์Šคํฌ๋กค ์ด๋ฒคํŠธ ์ตœ์ ํ™”
  2. Star Rating ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„ํ•˜์—ฌ 0.5์  ๋‹จ์œ„๋กœ ๋ณ„์ ์„ ํ‰๊ฐ€ํ•˜๊ณ  POSTํ•˜๊ธฐ
  3. ๋ณ„์  POST ์™„๋ฃŒ์‹œ ๋ฐ”๋กœ ๋‚ด๊ฐ€ ํ‰๊ฐ€ํ•œ ์˜ํ™” ๊ฐœ์ˆ˜ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ
  4. ์žฅ๋ฅด ๋ฉ”๋‰ด (๋ชจ๋‹ฌ) ํด๋ฆญ์‹œ ํ•ด๋‹น ์žฅ๋ฅด์— ํ•ด๋‹นํ•˜๋Š” ์˜ํ™” ๋ฆฌ์ŠคํŠธ์—…

๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž… (์ž„์œ ์ง„)

  1. JWT, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€ ๋ฐ ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์•„์›ƒ
  2. ์ •๊ทœํ‘œํ˜„์‹์„ ํ™œ์šฉํ•ด ์ด๋ฆ„/์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ ์กฐ๊ฑด
  3. ๋กœ๊ทธ์ธ ์—ฌ๋ถ€์— ๋”ฐ๋ผ Nav UI ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง
  4. pathname์„ ๊ธฐ์ค€์œผ๋กœ Footer ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง

๐Ÿ“ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ก

๐Ÿ“ข Reference

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