[project] ๐ŸŽฌMovyes: ์˜ํ™” ์ปค๋ฎค๋‹ˆํ‹ฐ React ํ”„๋กœ์ ํŠธ - ์ค€๋น„

์˜ค์˜ค๊ตฌยท2023๋…„ 1์›” 2์ผ
0

Intro

์˜ํ™” ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ์œ ์ €๋“ค๊ณผ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์‚ฌ์ดํŠธ.

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

๋ชฉํ‘œ ์ผ์ •

2023/1/2~ 2023/1/8


๊ธฐ๋Šฅ

์ „์ฒด ๊ธฐ๋Šฅ

์šฐ์„  ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์„ ์ „๋ถ€ ๋‚˜์—ดํ•ด๋ณด์ž.

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

ํ .. ๋„ˆ๋ฌด๋งŽ๋‹ค.
ํ˜ผ์ž์„œ ๋‹จ๊ธฐ๊ฐ„์— ์ง„ํ–‰ํ•˜๊ธฐ์—” ๋ฐฉ๋Œ€ํ•œ ์–‘์ด๋ฏ€๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š”๊ฒŒ ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

ํ•„์ˆ˜ ๊ธฐ๋Šฅ (์‹ค์ œ ๊ตฌํ˜„ ์˜ˆ์ •)

๊ฐ€์žฅ ์šฐ์„ ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•ด์•ผ ํ•  ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ๋“ค์ด๋‹ค.

  • ๋กœ๊ทธ์ธ
  • ์˜ํ™” ๊ฒ€์ƒ‰
  • ์˜ํ™” ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ
  • ๋งˆ์Œ์— ์˜ํ™” ์ถ”๊ฐ€
  • ๋งˆ์Œ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ
  • ๊ฒŒ์‹œํŒ CRUD

ํ•„์ˆ˜๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ๋๋‚ด๊ณ  ์—ฌ๊ฑด์ด ๋œ๋‹ค๋ฉด ์ดํ›„์— ์ „์ฒด ๊ธฐ๋Šฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์”ฉ ์™„๋ฃŒํ•ด๋‚˜๊ฐˆ ์˜ˆ์ •์ด๋‹ค.


๋””์ž์ธ

๋””์ž์ธ ํ”„๋กœํ† ํƒ€์ž…์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๋ฉด ํ›จ์”ฌ ํŽธํ•˜๊ธด ํ•˜์ง€๋งŒ figma์‚ฌ์šฉ์— ๋Šฅ์ˆ™ํ•˜์ง€ ์•Š์•„ ์„ธ์„ธํ•œ ๋””์ž์ธ๊นŒ์ง€ ํ•˜๋ ค๋ฉด ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌ๋ฉด ์˜คํžˆ๋ ค ์ฃผ๊ฐ์ „๋„๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์•„ ์šฐ์„ ์€ ๋ ˆ์ด์•„์›ƒ ์ •๋„๋งŒ ์žก์•„๋‘์—ˆ๋‹ค.

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


์•„ํ‚คํ…์ฒ˜

ํด๋” ๊ตฌ์กฐ

๐Ÿ“ฆsrc
 โ”ฃ ๐Ÿ“‚api // API ๊ด€๋ จ
 โ”ฃ ๐Ÿ“‚components	// ์ปดํฌ๋„ŒํŠธ
 โ”ƒ โ”ฃ ๐Ÿ“‚ui // ๊ณตํ†ตstyle์„ ์œ„ํ•œ box์ปดํฌ๋„ŒํŠธ๋‚˜ html์š”์†Œ ์ปดํฌ๋„ŒํŠธ 
 โ”ฃ ๐Ÿ“‚pages // ๋ผ์šฐํŒ… ์ฒ˜๋ฆฌ๋˜๋Š” ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ
 โ”ฃ ๐Ÿ“‚store // context, redux ๋“ฑ state๊ด€๋ฆฌ
 โ”ฃ ๐Ÿ“‚util // ๋ฐ์ดํ„ฐ ํฌ๋งท ๋“ฑ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

๊ธฐ์ˆ 

ํ”„๋ก ํŠธ

Movyes๋Š” ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋‹ค.
create-react-app ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•„์š”์— ๋งž๊ฒŒ ์ปค์Šคํ…€ ํ• ๊ฒƒ์ด๋‹ค.

๋ฐฑ์—”๋“œ

์ง์ ‘ ๋ฐฑ์—”๋“œ๊นŒ์ง€ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๋‚˜๋Š” node.js๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ๋ชจ๋ฅด๋ฏ€๋กœ Firebase API๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. firebase API ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐฑ์—”๋“œ API์˜ ์—ญํ• ์„ ํ•ด์ฃผ๋Š”๋ฐ ๊ทธ ์ค‘ auth์™€ realtime database ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด ๋‘๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•  ๊ฒƒ์ด๋‹ค.



์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์ง„ํ–‰ํ•˜๋Š” ๋™์•ˆ์˜ ๊ณผ์ •์„ ๋ชจ๋‘ ๋ธ”๋กœ๊ทธ์— ์จ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋Ÿผ ์šฐ์„  ๋กœ๊ทธ์ธ๋ถ€ํ„ฐ ์‹œ์ž‘!

profile
๋” ์ด์ƒ ๋ฏธ๋ฃฐ ์ˆ˜ ์—†๋‹ค

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