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

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

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ๋‹ค. ์ค€๋น„ ๋‹จ๊ณ„์—์„œ ๊ณ„ํšํ•œ๋Œ€๋กœ ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ›„๊ธฐ ๊ฒธ ํšŒ๊ณ ๋ก์„ ์ž‘์„ฑํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.
๐Ÿ‘‰ ์ค€๋น„ ๋‹จ๊ณ„ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

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


ํ›„๊ธฐ

์ผ์ •

๊ณ„ํšํ–ˆ๋˜ ์ผ์ •์€ 2023/1/2 ~ 2023/1/8
์‹ค์ œ ๊ฑธ๋ฆฐ ์ผ์ •์€ 2023/1/2 ~ 2023/1/10
์•ฝ ์ดํ‹€์ •๋„ ๋” ์ง€์ฒด๋˜์—ˆ๋‹ค.

์™œ ์ผ์ •์„ ์ง€ํ‚ค์ง€ ๋ชปํ–ˆ๋‹ˆ

์‹œ๊ฐ„์ด ์ง€์ฒด๋œ ์›์ธ์„ ์ƒ๊ฐํ•ด ๋ณด์•˜๊ณ  ๋ช‡๊ฐ€์ง€ ์ด์œ ๋ฅผ ๊ผฝ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์ž๋ฃŒ์กฐ์‚ฌ๋ฅผ ๋Œ€์ถฉํ•œ ์ฃ„

ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ„ํšํ•  ๋•Œ ๋ง‰์—ฐํ•˜๊ฒŒ '๋‹น์—ฐํžˆ API๋Š” ์žˆ๊ฒ ์ง€~' ํ•˜๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ทธ๊ฒŒ ์™„์ „ํžˆ ๋ถˆ์ฐฐ์ด์—ˆ๋‹ค.

๊ณ„ํš ํ•˜๊ธฐ์— ์•ž์„œ ์ž๋ฃŒ ์กฐ์‚ฌ๋ถ€ํ„ฐ ๋๋ƒˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ ์•ˆ์ผํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์•„๋ฌป๋”ฐ ๊ณ„ํšํ•˜๊ณ  ์‹œ์ž‘ํ•ด๋ฒ„๋ ค ๋งˆ๋•…ํ•œ API๋ฅผ ์ฐพ๋Š”๋ฐ๋งŒ ๋ฐ˜๋‚˜์ ˆ~ํ•˜๋ฃจ ์ •๋„๋ฅผ ๊ผฌ๋ฐ• ์“ฐ๊ฒŒ๋˜์–ด ๊ฒฐ๋ก ์ ์œผ๋กœ ํ•˜๋ฃจ๋ฅผ ๋‚ ๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹คใ… 

๋””์ž์ธ์€ ๊ฐ„๋‹จํ•˜๊ฒŒ๋ผ๋„ ์žก์•„๋‘์ž

์ด๋ฒˆ์—” ๋ ˆ์ด์•„์›ƒ ์ •๋„๋งŒ ์ƒ๊ฐํ•˜๊ณ  ๋””์ž์ธ์€ ์ „ํ˜€ ๊ณ„ํšํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋ง‰์ƒ ๊ตฌํ˜„ํ•˜๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ๋ ˆ์ด์•„์›ƒ์ด ์ด์ƒํ•˜๊ธฐ๋„ ํ•˜๊ณ  ๋””์ž์ธ์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋ ์ง€ ๊ฐˆํ”ผ๋ฅผ ์žก์ง€ ๋ชปํ•ด ์ด๋Ÿฐ์ €๋Ÿฐ ๋””์ž์ธ์„ ์‹œ๋„ํ•ด๋ณด๋Š” ๊ฒƒ์—๋„ ์‹œ๊ฐ„์„ ๋„ˆ๋ฌด ๋งŽ์ด ์žก์•„๋จน์—ˆ๋‹ค.


๊ธฐ๋Šฅ

๊ณ„ํšํ•œ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์€ ๋ชจ๋‘— ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ๊ฐœ์„ ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค.

๊ฐœ์„ ์‚ฌํ•ญ์€ ๊ฐ๊ฐ์˜ ๊ฒŒ์‹œ๊ธ€์— ์ ์–ด๋‘์—ˆ์ง€๋งŒ ๊ทธ ์ค‘ ์šฐ์„ ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๊ฒƒ๋“ค์„ ๋ช‡๊ฐ€์ง€ ์ถ”๋ ค๋ณด์ž๋ฉด

๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ / ๊ฒฝ๋กœ๋กœ ์ด๋™๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๋ฉด / ํŽ˜์ด์ง€๋กœ ์ด๋™๋˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ํŠน์ • ์ƒํ™ฉ์—์„  ์ด๋™์ด ์•ˆ๋˜๊ณ  ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ ๋˜๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

์•„์ง ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜์ง„ ๋ชปํ–ˆ์ง€๋งŒ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ฒ˜์Œ ์ ‘๊ทผํ•˜๊ฒŒ ๋  ํŽ˜์ด์ง€์ธ ๋งŒํผ ๊ฐ€์žฅ ์ตœ์šฐ์„ ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ƒํ™ฉ์ด๋‹ค.

๋ฐ•์Šค์˜คํ”ผ์Šค ์กฐํšŒ๊ฐ€ ์˜ค๋ž˜๊ฑธ๋ฆผ

์ง€๊ธˆ์€ api๋ฅผ ํ†ตํ•ด ๋ฐ•์Šค์˜คํ”ผ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๊ณ , ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฒ€์ƒ‰ํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜ํ™” ์ •๋ณด๊ฐ€ ๋Š˜์–ด๋‚ ๋•Œ๋งˆ๋‹ค ๋ฐ•์Šค์˜คํ”ผ์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ•์Šค์˜คํ”ผ์Šค ์˜ํ™”๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ์บ์‹ฑ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ์บ๋Ÿฌ์…€ ํฌ๊ธฐ๋กœ ์ธํ•ด UI๊ฐ€ ๋’คํ‹€๋ฆฌ๋Š” ํ˜„์ƒ

์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋งŒ๋“ค์—ˆ๋”๋‹ˆ ๋ฉ”์ธ ํŽ˜์ด์ง€์—์„œ ์บ๋Ÿฌ์…€ ๋„ˆ๋น„๋กœ ์ธํ•ด UI๊ฐ€ ๋’คํ‹€๋ฆฌ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

์บ๋Ÿฌ์…€์— ๊ณ ์ • ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ ๋ณด์ธ๋‹ค.

์ง€๊ธˆ์€ ์˜ํ™” ํฌ์Šคํ„ฐ ์ด๋ฏธ์ง€ ๋„ˆ๋น„๋ฅผ 180px๋กœ ๊ณ ์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์บ๋Ÿฌ์…€๊นŒ์ง€ ๊ณ ์ • ๋„ˆ๋น„๋กœ ์ง€์ •ํ–ˆ๋Š”๋ฐ ์ด๋ฏธ์ง€์™€ ์บ๋Ÿฌ์…€ ๋„ˆ๋น„๋ฅผ ๋ชจ๋‘ ํผ์„ผํŠธ๋กœ ๋ณ€๊ฒฝํ•˜๋‹ค๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.


์•„์‰ฌ์šด ์ 

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๊ฐ€ ์ด๊ฒŒ ๋งž๋‚˜

๊ณ„ํš๋‹จ๊ณ„์—์„œ ๊ตฌ์ƒํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋Š” ์ด๋žฌ๋‹ค.

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

๊ตฌ์ƒ ์‹œ์—๋Š” ์˜๋„ํ•œ๋Œ€๋กœ ์ •๋ฆฌ๊ฐ€ ์ž˜๋ ๊ฒƒ ๊ฐ™์•˜์ง€๋งŒ ๋ง‰์ƒ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฒƒ์ธ์ง€ ์• ๋งค๋ชจํ˜ธํ•œ ๊ธฐ๋Šฅ๋“ค์ด๋‚˜ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์ƒ๊ฒผ๋‹ค.

๋˜๋„๋ก์ด๋ฉด ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ํŒŒ์ผ์ด ๋งŽ์•„์ง€๋‹ˆ ๋„ˆ๋ฌด ๋„ˆ์ €๋ถ„ํ•˜๊ฒŒ ๋ณด์—ฌ ์ƒ๊ฐ๋ณด๋‹ค ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ๋“ค์ด ๋งŽ์•„์ง„๊ฒŒ ์•„๋‹๊นŒ ์‹ถ์€ ์ƒ๊ฐ์ด ๋“ ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๊ฑด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŽ์ด ๊ฒฝํ—˜ํ•˜๊ณ  ๊ฐ์„ ์Œ“์œผ๋ฉด ์ถ”ํ›„์— ์ถฉ๋ถ„ํžˆ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์ค‘๋ณต๋œ API์ฝ”๋“œ

์ง€๊ธˆ์€ firebase์˜ database realtime API์™€ storage API๋ฅผ ๊ฐ๊ฐ์˜ ํŒŒ์ผ๋กœ ๊ตฌ๋ถ„ํ•ด ๋‘์—ˆ๋Š”๋ฐ firebase ์„ค์ • ๋ถ€๋ถ„์ด ์ค‘๋ณต๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

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

commit์˜ '๋น„'์Šต๊ด€ํ™”

์• ์ดˆ ๊ณ„ํš์€ ์ž‘์—…๋ณ„๋กœ commit์„ ํ•˜์ž๋Š” ๊ฒƒ์ด์—ˆ๋Š”๋ฐ ์ž˜ ์ง€์ผœ์ง€์ง€ ์•Š์•˜๋‹ค.

์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์ด์ „์˜ ์ž‘์—…์„ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ์˜ ์ผ์ด ์ƒ๊ธฐ๋‹ค ๋ณด๋‹ˆ ์ปค๋ฐ‹์„ ํ•˜๋Š” ์‹œ์ ์ด ๋ชจํ˜ธํ•ด์ง€๊ณ  ๋ฌด์—‡๋ณด๋‹ค commit์„ ํ•˜๋Š”๊ฑธ ์ž๊พธ ๊นŒ๋จน๋Š”๊ฒŒ ์ œ์ผ ๋ฌธ์ œ์˜€๋‹ค. commitํ•˜๋Š”๊ฑธ ๊นŒ๋จน์€ ๊ฒฝ์šฐ์—” ๋’ค๋Šฆ๊ฒŒ๋ผ๋„ ๋˜๋„๋ก ์ž‘์—…๋ณ„๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ ๊ฐ„ํ˜น ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์—ฌ๋Ÿฌ ์ž‘์—…์ด ํฌํ•จ๋˜๋ฒ„๋ฆฐ ๊ฒฝ์šฐ์—๋Š” ์–ด์ฉ” ์ˆ˜ ์—†์ด ํ•˜๋‚˜์˜ ์ปค๋ฐ‹์— ์—ฌ๋Ÿฌ ์ž‘์—… ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ๋˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋‹ค.

์•„์ง๊นŒ์ง„ ๋‚˜์—๊ฒ ์ปค๋ฐ‹์ด ์ˆ™์ œ์ฒ˜๋Ÿผ ๋А๊ปด์ง€๋Š” ๊ฒƒ ๊ฐ™๋‹ค๐Ÿ˜ฅ

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

ํ•˜์ง€๋งŒ ์ด๋ฒˆ์— ๊นƒ์„ ํ™œ์šฉํ•œ ๋ถ€๋ถ„๋„ ์žˆ๋‹ค!
์œ„์—์„œ๋„ ๋งํ–ˆ๋“ฏ์ด ์ƒ๊ฐ๋ณด๋‹ค UI ๋””์ž์ธ์— ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋Š”๋ฐ, ์ด ๋•Œ ๋ ˆ์ด์•„์›ƒ๊นŒ์ง€ ์ด๋ฆฌ์ €๋ฆฌ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ branch๋ณ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ํ–ˆ๋‹ค. ๊ฐ๊ฐ์˜ ๋ธŒ๋žœ์น˜์— ๊ฐ๊ฐ์˜ ๋ ˆ์ด์•„์›ƒ๊ณผ ์Šคํƒ€์ผ์„ ์ ์šฉ์‹œํ‚ค๋ฉด์„œ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ๊นƒ์ด ์—†์—ˆ๋‹ค๋ฉด ์–ด๋А์ฒœ๋…„์— ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์—ˆ์„์ง€ ์ƒ์ƒ๋„ ์•ˆ๋œ๋‹ค...


์ถ”ํ›„ ๊ณ„ํš

  1. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ
    ์ถ”๊ฐ€๋กœ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ๊ณผ ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฆฌ๋ทฐ์—” ๋ณ„์ ๋„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค
  2. ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜
    ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ•™์Šต์ด ๋๋‚˜๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋กœ ๋ณ€ํ™˜์‹œํ‚ฌ ์˜ˆ์ •์ด๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œํ‚ค๋ฉด์„œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋„ ์‹ค์Šตํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋ ๊ฑฐ๊ฐ™๋‹ค.
profile
๋” ์ด์ƒ ๋ฏธ๋ฃฐ ์ˆ˜ ์—†๋‹ค

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