Skip to content

YBE-7/MiniProject_FE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

yanolja

๋•Œ๋ ค 7์กฐ Mini Project : ์ˆ™๋ฐ• ์˜ˆ์•ฝ ํ”„๋กœ์ ํŠธ

wiki


๐Ÿ–ฅ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  1. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ : ์ˆ™๋ฐ• ์˜ˆ์•ฝ ์›น์„œ๋น„์Šค ๊ตฌํ˜„ ํ”„๋กœ์ ํŠธ
  2. ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 11์›” 20์ผ(์›”) ~ 12์›” 01์ผ(๋ชฉ)
  3. ์ฃผ์š” ๋ชฉํ‘œ : UI/UX ์ž‘์—…, React.js ๊ธฐ๋ฐ˜ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ ๊ตฌ์กฐ ์„ค๊ณ„, API ๋ช…์„ธ์„œ์— ๋”ฐ๋ฅธ JSON ๋ฐ์ดํ„ฐ ํ™”๋ฉด ์ถœ๋ ฅ, ๋ฌดํ•œ ์Šคํฌ๋กค

์•ˆ๋…•ํ•˜์„ธ์š”:smiley:

๋•Œ๋ ค 7์กฐ์˜ ์ˆ™๋ฐ• ์˜ˆ์•ฝ ํ”„๋กœ์ ํŠธ ๐Ÿ’ป ์›น ํŽ˜์ด์ง€ ์ž…๋‹ˆ๋‹ค

์ €ํฌ ํŒ€์€ ํ”„๋ก ํŠธ์—”๋“œ 4๋ช… ๋ฐฑ์—”๋“œ 4๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ๋Š” ์ด๊ณณ์„ ํด๋ฆญํ•ด ์ฃผ์„ธ์š”


๐Ÿ‘ 7์กฐ Contributors

avatar avatar avatar avatar
๊น€์ง€๋ฏผ ์–‘์žฌํ˜ ์ •ํšจ์ฃผ ๊น€์„ฑ๊ฒธ

โœ๏ธ ๊ฐœ์ธ๋ณ„ ์ž‘์—… ๋‚ด์šฉ

๊น€์ง€๋ฏผ

์ฃผ์š” ๊ธฐ๋Šฅ

  • ์ˆ™์†Œ ์ƒ์„ธ ํŽ˜์ด์ง€
  • ๊ฐ์‹ค ์ƒ์„ธ ํŽ˜์ด์ง€
  • ๋‹ฌ๋ ฅ ๋ชจ๋‹ฌ ๋ฐ ๋‚ ์งœ ์„ ํƒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • Kakao map API ์—ฐ๊ฒฐ
  • ์ˆ™์†Œ ์กฐํšŒ API ์—ฐ๊ฒฐ
  • ๊ฐ์‹ค ์กฐํšŒ API ์—ฐ๊ฒฐ(๋‚ ์งœ, ์ธ์›์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” API ์š”์ฒญ ๋ฐ ๊ฐ์‹ค ์ƒํƒœ์— ๋”ฐ๋ฅธ ๋””์ž์ธ ๋ณ€๊ฒฝ)
  • ๊ฐ์‹ค ์ƒ์„ธ ์กฐํšŒ API ์—ฐ๊ฒฐ
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ API ์—ฐ๊ฒฐ
  • ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€
  • API ํ…Œ์ŠคํŒ…
๊ฐ์‹ค์ƒ์„ธํŽ˜์ด์ง€ ์˜ˆ์•ฝ ๊ฐ์‹ค ํŽ˜์ด์ง€ ์ง€๋„
๊ฐ์‹ค์ƒ์„ธ์˜ˆ์•ฝํ•˜๊ธฐ ์ง€๋„์ˆ
์˜ˆ์•ฝ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์˜ˆ์•ฝ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋ฉฐ ๋ฐ”๋กœ ์˜ˆ์•ฝ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ ์ฃผ์†Œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ง€๋„ ํ™”๋ฉด์ด ๋ณด์—ฌ์ง€๊ณ  ์ฃผ์†Œ ๋ณต์‚ฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋กœ๊ทธ์ธ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์„ฑ๊ณต
์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ๊ทธ์ธ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์„ฑ๊ณต
์ดˆ๊ทธ์ธ์ด ๋˜์–ด์žˆ์ง€ ์•Š์„ ์‹œ alert์ฐฝ๊ณผ ํ•จ๊ป˜ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด์„ ์ƒํ’ˆ์„ ์„œ๋ฒ„์— ์ „์†กํ•˜๊ณ  ์„ฑ๊ณตํ•˜๋ฉด alert์ฐฝ์ด ๋œน๋‹ˆ๋‹ค
๋‚ ์งœ, ์ธ์›์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” UI ์ตœ๋Œ€์ธ์› ์ดˆ๊ณผ
์ธ์›์ˆ˜๋ณ€๊ฒฝ ๋‹ฌ๋ ฅ์ดˆ๊ธฐํ™”
์ธ์›์ˆ˜์— ๋”ฐ๋ผ ์˜ˆ์•ฝํ•  ์ˆ˜ ์—†๋Š” ๋ฐฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๋‚ ์งœ์— ๊ฐ์‹ค ์ƒํ’ˆ์ด ํ’ˆ์ ˆ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ฌ๋ ฅ ๋ชจ๋‹ฌ์—์„œ ๋‚ ์งœ ์„ ํƒ, ๋‚ ์งœ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ๋‚ ์งœ๋ฅผ ์„ ํƒํ•˜์—ฌ๋„ X ๋ฒ„ํŠผ์œผ๋กœ ๋‚˜๊ฐ€๋ฉด ์ด์ „ ๋‚ ์งœ๊ฐ€ ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

๐Ÿ’ฃ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

โŒ์˜ค๋ฅ˜

vercel์— ๋ฐฐํฌ ํ›„ CORS ์—๋Ÿฌ

โœ”๏ธ ํ•ด๊ฒฐ

๊ทธ๋™์•ˆ http ํ†ต์‹ ์ด์—ˆ๋‹ค๊ฐ€ vercel์— ๋ฐฐํฌํ•˜๋ฉด์„œ ์ž๋™์œผ๋กœ https๋กœ ๋ฐฐํฌ๊ฐ€ ๋˜๋Š” ๋ฐ”๋žŒ์— ๋˜ ํ•œ๋ฒˆ CORS ์—๋Ÿฌ๊ฐ€ ๋–ด๋‹ค.
์„œ๋ฒ„ ์ธก์—์„œ ํ•ด๊ฒฐ ํ•ด ์ฃผ์…จ์ง€๋งŒ ๋‹ค์Œ ๋ฒˆ์—” ๋จผ์ € https๋กœ ํ†ต์‹ ์ด ๋˜๊ฒŒ๋” ํšŒ์˜ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ๋˜ ์ฐพ์•„๋ณด๋‹ˆ๊นŒ proxy ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ก ํŠธ์—”๋“œ ๋”ด์—์„œ๋„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ํ•œ๋‹ค.

โŒ์˜ค๋ฅ˜

์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐ์‹ค ๋‹ด๊ธฐํ•  ๋•Œ ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•ด์„œ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๋Š” ์˜ค๋ฅ˜

โœ”๏ธ ํ•ด๊ฒฐ

์„œ๋ฒ„ ์ธก์—์„œ ๋ฐ›์•„์˜ค๋Š” status ๊ฐ’์„ ํ†ตํ•ด ์กด์žฌํ•˜๋Š” ๊ฐ์‹ค ์ˆ˜ ์ด์ƒ์œผ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๊ฒฝ์šฐ alert ์ฐฝ์ด ๋œจ๊ฒŒ ํ•จ

--

ํšŒ๊ณ 

๋ถ€ํŠธ์บ ํ”„๋ฅผ ํ•˜๋ฉด์„œ ์ฒ˜์Œ์œผ๋กœ ๋ฐฑ์—”๋“œ ๋ถ„๋“ค๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜์˜€๋‹ค.
์ฒ˜์Œ์—๋Š” ์•ฝ 2์ฃผ๋ฐ–์— ์•ˆ๋˜๋Š” ์‹œ๊ฐ„์ด๋ผ์„œ ๊ฐ€๋Šฅํ• ๊นŒ? ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๋ชจ๋‘๋“ค ์—ด์‹ฌํžˆ ํ•ด์ฃผ์‹  ๋•๋ถ„์— ์ƒ๊ฐ๋ณด๋‹ค ๊ธˆ๋ฐฉ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
Jira๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์—ฌ ์„œ๋กœ ์ž‘์—… ๋‚ด์šฉ์„ ๊ณต์œ ํ•˜๋‹ˆ๊นŒ ๋‹ค๋ฅธ ํŒŒํŠธ ๋ถ„๋“ค์ด ์–ด๋А ์ •๋„ ์ž‘์—…๋Ÿ‰์„ ํ•˜์…จ๋Š”์ง€ ์•Œ๊ธฐ๊ฐ€ ์ˆ˜์›”ํ•ด์„œ ์ข‹์•˜๋‹ค.
์ด๋ฒˆ์—๋Š” tailwind CSS๋ฅผ ์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋Š”๋ฐ ์—ญ์‹œ ํŽธํ•˜๊ณ  ์ข‹์•˜๋‹ค ๊ทผ๋ฐ ์•„๋ฌด๋ž˜๋„ ๊ณตํ†ต์ ์ธ css ๋ฅผ ํ•˜๊ธฐ์—” ์กฐ๊ธˆ ๋ถˆํŽธํ•œ ๊ฐ์ด ์—†์ž–์•„ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
์•„์‰ฌ์šด ์ ์€ ์ด๋ฒˆ์—๋„ ๋จผ์ € ๊ณตํ†ต CSS๋‚˜ ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์ฒ˜์Œ ์ž‘์—…์„ ์‹œ์ž‘ํ•ด์„œ ์ค‘๊ฐ„์— ํ•œ๋ฒˆ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•œ ์ ์ด๋‹ค.
๋ฉ˜ํ† ๋‹˜ ๋ง์”€๋Œ€๋กœ ๋‹ค์Œ๋ฒˆ์—๋Š” ์ž‘์—…ํ•˜๊ธฐ ์ „์— ๋””์ž์ธ ๋ฆฌ๋ทฐ๋ฅผ ํ•  ์ƒ๊ฐ์ด๋‹ค.
์ •๋ง ๋‹คํ–‰์ธ ๊ฑด ์š”์ฒญ๋“œ๋ฆฐ ๋ฐ์ดํ„ฐ ๋Œ€๋กœ ๋น ๋ฅด๊ฒŒ ์ž‘์—… ํ•ด์ฃผ์…”์„œ ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ•˜์ง€ ์•Š๊ฒŒ API ๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ๋งˆ๋ฌด๋ฆฌ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค
๊ทธ๋ฆฌ๊ณ  ์ฒ˜์Œ์œผ๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ์žฌํ˜๋‹˜ ๋•๋ถ„์— ํ•ด๋งค์ง€ ์•Š๊ณ  ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. !!
ํ•˜์ง€๋งŒ ์•„๋ฌด๋ž˜๋„ ์ž‘์—… ์ค‘๊ฐ„์— ํ…Œ์ŠคํŠธํ•ด๋ณธ๊ฑด ์•„๋‹ˆ๋ผ์„œ
๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋Š” ์ค‘๊ฐ„์ค‘๊ฐ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์•„์•ผ ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
๋งค์ผ ํšŒ์˜๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์ง€์น˜๊ธฐ๋„ ํ•  ํ…๋ฐ ๋‹ค๋“ค ์—ด์ • ๋„˜์น˜๊ฒŒ ์ฐธ์—ฌํ•ด์ฃผ์…”์„œ ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :) !!

๊น€์„ฑ๊ฒธ

์ฃผ์š” ์ž‘์—… ๋‚ด์šฉ

  • ์ˆ™์†Œ ๋ชฉ๋ก ์กฐํšŒ ๊ด€๋ จ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ Skeleton UI ์ ์šฉ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ (ํ˜ธํ…”/๋ฆฌ์กฐํŠธ/ํŽœ์…˜/ํ’€๋นŒ๋ผ) ํŽ˜์ด์ง€
  • ์ง€์—ญ๋ณ„ ์ˆ™์†Œ ์ƒํ’ˆ ์กฐํšŒ ํŽ˜์ด์ง€
    • ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ : [ ๋ณ„์  ๋†’์€ ์ˆœ, ์˜ˆ์•ฝ๊ฐ€ ๋†’์€ ์ˆœ, ์˜ˆ์•ฝ๊ฐ€ ๋‚ฎ์€ ์ˆœ ]
    • ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ : 4๊ฐœ์”ฉ ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ, ํ•˜๋‹จ์— ๋„์ฐฉํ•˜๋ฉด ์ƒˆ๋กœ 4๊ฐœ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.
  • ์ง€๊ธˆ ์‚ฌ๋ž‘๋ฐ›๋Š” ์—ฌํ–‰์ง€ ํŽ˜์ด์ง€
  • ์ง€์—ญ ์„ ํƒ ๋ชจ๋‹ฌ
  • ๊ณตํ†ต ํ—ค๋” ์„ค์ •
์ƒํ’ˆ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ ์„ ํƒํ•œ ๋‚ ์งœ๊ฐ€ ๋ช‡ ๋ฐ•์ธ์ง€์— ๋”ฐ๋ผ ๊ฐ€๊ฒฉ์ด ๋ณ€๊ฒฝ
ํ•„ํ„ฐ๋ง ์‹œ์—ฐ ๋‚ ์งœ์— ๋”ฐ๋ผ ๊ฐ€๊ฒฉ ๋ณ€๊ฒฝ
ํ‰์  ๋†’์€์ˆœ, ์˜ˆ์•ฝ๊ฐ€ ๋†’์€์ˆœ, ์˜ˆ์•ฝ๊ฐ€ ๋‚ฎ์€์ˆœ 3๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ˆ™๋ฐ• ์ƒํ’ˆ์„ ์กฐํšŒ ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„ ํƒํ•œ ๋‚ ์งœ๊ฐ€ ๋ช‡ ๋ฐ•์ธ์ง€์— ๋”ฐ๋ผ n๋ฐ• ๋‹น (๊ฐ€๊ฒฉ * n)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ์นดํ…Œ๊ณ ๋ฆฌ(ํ˜ธํ…”/๋ฆฌ์กฐํŠธ/ํŽœ์…˜/ํ’€๋นŒ๋ผ) ํŽ˜์ด์ง€
๋ฌดํ•œ ์Šคํฌ๋กค ์‹œ์—ฐ ํ™”๋ฉด-์บก์ฒ˜-2023-11-30-110705
React Query์˜ useInfiniteQuery๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌดํ•œ ์Šคํฌ๋กค์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ ํ‰์  ๋†’์€ ์ƒํ’ˆ์„ ๋ณด์—ฌ์ฃผ๊ณ , ํ•˜๋‹จ์—๋Š” ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ง€์—ญ๋ณ„ ์ˆ™์†Œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๐Ÿ’ฃ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

โŒ ์˜ค๋ฅ˜

  • ์ƒํ’ˆ ์ธ๋„ค์ผ์ด ๋‹ค๋ฅธ ์ƒํ’ˆ๊ณผ ๋น„์œจ์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์ธ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€๊ฐ€ ํŠ€์–ด ๋‚˜๊ฐ€๋Š” ๋ฒ„๊ทธ

โœ”๏ธ ํ•ด๊ฒฐ

  • ์ด๋ฏธ์ง€๋ฅผ ๊ฐ์‹ธ๋Š” div์— overflow: hidden; aspect-ratio: 1์„ ์ถ”๊ฐ€ํ•˜์—ฌ 1:1๋น„์œจ๋กœ ์ธ๋„ค์ผ์„ ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.
    ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€ ํƒœ๊ทธ์—๋Š” width: 100%; height:100%; object-fit: center;๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋น„์œจ์œ ์ง€ํ•˜๋ฉฐ ๊ฝ‰ ์ฑ„์› ์Šต๋‹ˆ๋‹ค.

โŒ ์˜ค๋ฅ˜

  • ์ƒํ’ˆ ์ƒ์„ธํŽ˜์ด์ง€์—์„œ ์ฒดํฌ์ธ ๋‚ ์งœ๋ฅผ ๋ฐ”๊พธ๊ณ  ๋’ค๋กœ๊ฐ€๋ฉด ์„ ํƒํ•œ ๋‚ ์งœ๊ฐ€ ๋‚ ์•„๊ฐ€๋Š” ๋ฒ„๊ทธ

โœ”๏ธ ํ•ด๊ฒฐ

  • ๊ฒ€์ƒ‰์ฐฝ์— from, to๋ผ๋Š” ํŒŒ๋ผ๋ฉ”ํ„ฐ์— ๋‚ ์งœ๋ฅผ ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ์‹์— ๋ฌธ์ œ๋ผ๊ณ  ํŒ๋‹จ๋˜์–ด์„œ,
    recoil์˜ ์ „์—ญ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ „์—ญ ์ƒํƒœ์˜ ๋‚ ์งœ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ฒŒ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

ํšŒ๊ณ 

์—ฌ๋Ÿฌ ํŒ€์›๋“ค๊ณผ์˜ ์†Œํ†ต๊ณผ์ •์—์„œ ์˜๊ฒฌ ์ถฉ๋Œ์ด ์žˆ์—ˆ์„ ๋•Œ ์„œ๋กœ ๊ธฐ๋ถ„๋‚˜์˜์ง€ ์•Š๊ฒŒ ์ž˜ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •๋“ค์ด ์žˆ์–ด์„œ,
์ €ํฌ ํŒ€์›๋“ค์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์Šคํ‚ฌ์ด ์ฐธ ์ข‹์•„๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ €๋„ ์†Œํ†ต์— ๋Œ€ํ•ด์„œ ๋งŽ์ด ๋ฐฐ์› ๋˜๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฐ–์— ๊ธฐ์ˆ ์ ์œผ๋กœ ๋‹ค ๊ฐ™์ด ์ข€ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ , ๋ฒ„๊ทธ๋„ ๊ฐ™์ด ํ•ด๊ฒฐํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•๋„ ์•Œ๊ฒŒ๋˜๋ฉฐ
์ •๋ง ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ๊ณ ๋ฏผํ•˜๊ณ  ์„ฑ์žฅํ•ด๋ณด๋Š” ๊ธฐํšŒ๊ฐ€ ๋˜์—ˆ๋˜๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

์–‘์žฌํ˜

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
  • ํšŒ์› ๊ฐ€์ž… ํŽ˜์ด์ง€
  • ๋งˆ์ด ํŽ˜์ด์ง€
  • ๋กœ๊ทธ์ธ validation
  • ํšŒ์› ๊ฐ€์ž… validation
  • ์ธ์ฆ ๋ฐ ์ธ๊ฐ€
  • ํšŒ์› ๊ฐ€์ž… ๋ชจ๋‹ฌ
  • ๋งˆ์ด ํŽ˜์ด์ง€ ๋‚ ์งœ ์„ ํƒ ๋ชจ๋‹ฌ
  • Jest Testing

๐Ÿ’ฃ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

โŒ์˜ค๋ฅ˜

๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ๊ฐ€์ž… ์ค‘๋ณต ์š”์ฒญ ๋ฒ„๊ทธ

โœ”๏ธ ํ•ด๊ฒฐ

๋กœ๊ทธ์ธ ๋ฐ ํšŒ์› ๊ฐ€์ž… ๋ฒ„ํŠผ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ํด๋ฆญ ์ˆ˜ ๋งŒํผ ์š”์ฒญ์ด ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ฆญ ํ›„ swal์ฐฝ์œผ๋กœ ๋ง‰์œผ๋ ค๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ swal์ด ํŒ์—…๋˜๊ธฐ ์ „๊นŒ์ง€์˜ ์‹œ๊ฐ„์ด ์žˆ์–ด ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญ๋˜๋Š” ๊ฒƒ์„ ์‹๋ณ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์š”์ฒญ์„ ํ•˜๊ธฐ ์ „์— swal์ฐฝ์„ ํŒ์—…ํ•˜๋„๋ก ์ˆ˜์ •ํ•œ ๊ฒฐ๊ณผ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์ž๋งˆ์ž swal์ฐฝ์ด ๋– ์„œ ์ค‘๋ณต ์š”์ฒญ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

--

ํšŒ๊ณ 

์˜ค๋žœ๋งŒ์— ๋ฐฑ์—”๋“œ์™€ ํ˜‘์—…์„ ํ•˜๊ฒŒ ๋˜์–ด ์žฌ๋ฐŒ๊ณ  ์œ ์ตํ•˜์˜€์Šต๋‹ˆ๋‹ค.
์ €ํฌ ํŒ€ ๋ชจ๋‘๊ฐ€ ๋Šฅ๋ ฅ์ด ์žˆ์œผ์‹  ๋ถ„๋“ค ๊ฐ™์•„ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๊ธฐํ•œ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ๋งค๋‹ˆ์ง€๋จผํŠธ๋ถ€ํ„ฐ ์œ ๋‹› ํ…Œ์ŠคํŒ… ๊นŒ์ง€ ์•Œ์ฐจ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒƒ ๊ฐ™์•„ ๋ฟŒ๋“ฏํ–ˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋žœ๋งŒ์— Jest๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฒ„๋ฒ…์˜€๋Š”๋ฐ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ฐœ๋ฐœ ์ค‘๊ฐ„ ์ค‘๊ฐ„์— ํ…Œ์ŠคํŒ…์„ ์ง„ํ–‰ํ•ด์•ผ ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋ชจ๋‘๋“ค ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค !!!

์ •ํšจ์ฃผ

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ฉ”์ธํŽ˜์ด์ง€

    • ํƒ€์ž…๋ณ„ ์ˆ™์†Œ, ์ง€์—ญ๋ณ„ ์ˆ™์†Œ API ์—ฐ๊ฒฐ, ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ ์‚ฌ์šฉ
  • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€

    • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์กฐํšŒ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ฐœ๋ณ„ ์‚ญ์ œ, ์ „์ฒด ์‚ญ์ œ API ์—ฐ๊ฒฐ
    • ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ด์šฉํ•ด ์ƒํ’ˆ ๊ด€๋ฆฌ (ํ•ฉ๊ณ„ ๊ธˆ์•ก, ์ด ๊ฑด์ˆ˜)
  • ๊ฒฐ์ œํ•˜๊ธฐ ํŽ˜์ด์ง€

    • ๊ฒฐ์ œํผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ›„ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€
    • ํ•„์ˆ˜ ์ด์šฉ ๋™์˜ ํ›„ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”
    • recoil์„ ์ด์šฉํ•ด ์ฃผ๋ฌธid ๊ด€๋ฆฌ
  • ๊ฒฐ์ œ ์™„๋ฃŒ ํŽ˜์ด์ง€

    • ์ฃผ๋ฌธ ์กฐํšŒ API ์—ฐ๊ฒฐ
์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ฒดํฌ๋ฐ•์Šค ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์‚ญ์ œ๊ธฐ๋Šฅ
cart1 cart2
์ฒดํฌ๋ฐ•์Šค ์„ ํƒ์— ๋”ฐ๋ผ ๊ฒฐ์ œ ๊ธˆ์•ก๊ณผ ๊ฒฐ์ œ ๊ฑด์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ ๊ฐœ๋ณ„์‚ญ์ œ, ์ „์ฒด ์‚ญ์ œ ๊ฐ€๋Šฅ
๊ฒฐ์ œํ•˜๊ธฐ ์ž…๋ ฅํผ ๊ฒฐ์ œํ•˜๊ธฐ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”
order1 order2
์˜ˆ์•ฝํ•˜๊ธฐ ํผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ•„์ˆ˜์•ฝ๊ด€ ๋™์˜ ์‹œ ๊ฒฐ์ œํ•˜๊ธฐ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”
๋ฉ”์ธํŽ˜์ด์ง€ ์˜ˆ์•ฝ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€
main result
ํƒ€์ž…๋ณ„ ์ˆ™์†Œ, ์ง€์—ญ๋ณ„ ์ˆ™์†Œ API ์—ฐ๊ฒฐ ์ฃผ๋ฌธ ์กฐํšŒ API ์—ฐ๊ฒฐ

๐Ÿ’ฃ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

โŒ์˜ค๋ฅ˜

๋กœ๊ทธ์ธ ์ƒํƒœ์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€ ์ ‘๊ทผ ์˜ค๋ฅ˜

โœ”๏ธ ํ•ด๊ฒฐ

์ฒ˜์Œ์—๋Š” ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐˆ ๋•Œ accessํ† ํฐ์„ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ›„ ์—†์œผ๋ฉด ์ ‘๊ทผ ๊ธˆ์ง€๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ฒŒ ํ•˜๋‹ค๋ณด๋‹ˆ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€ ํ™”๋ฉด์ด ๋ Œ๋”๋ง ๋œ ํ›„ ์ ‘๊ทผ ๊ธˆ์ง€ ์•Œ๋žŒ์ฐฝ์˜ ๋„์–ด์ง€๋Š” ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ ์„ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ–ˆ์„ ๋•Œ ๋กœ๊ทธ์ธ ์ƒํƒœ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๋กœ์ง์œผ๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํšŒ๊ณ 

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ๋ฐฑ์—”๋“œ์™€ ์ฒ˜์Œ ํ˜‘์—…ํ•˜๋Š” ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐํšŒ๋ถ€ํ„ฐ ํ…Œ์ŠคํŒ… ๋ฐฐํฌ๊นŒ์ง€์— ๋Œ€ํ•œ ์ „ ๊ณผ์ •์„ ๊ฒฝํ—˜ํ•˜๋ฉฐ ๋งค์šฐ ์˜๋ฏธ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ recoil๊ณผ react-query๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด ๋ณด๋ฉด์„œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์™€ ์บ์‹ฑ์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ๊ณ ๋ฏผ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ธ์›์ด ์ ์—ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋ชจ๋“  ํŒ€์›๋“ค์ด ์ตœ์„ ์„ ๋‹คํ•ด์ฃผ์…”์„œ ๋นจ๋ฆฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค ! ๋„ˆ๋ฌด ์ฆ๊ฑฐ์› ๊ณ , ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!


KPT ๋ณด์™„์‚ฌํ•ญ

๊น€์ง€๋ฏผ
  1. ์ปค์Šคํ…€ ํ›… ์ƒ์„ฑ์œผ๋กœ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ
  2. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ถ„๋ฆฌ
  3. ์Šค์ผˆ๋ ˆํ†ค UI ์ƒ์„ฑ
๊น€์„ฑ๊ฒธ

์•„์‰ฌ์› ๋˜ ๋ถ€๋ถ„์„ ์ด๋ฒˆ KPT๊ธฐ๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ๋ณด์™„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์—†์–ด์„œ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ชจ๋ฐ”์ผ ๋ฐ˜์‘ํ˜•์„ ์ง„ํ–‰ํ•˜์˜€์œผ๋ฉฐ, ๊ธฐํšํ•  ๋‹น์‹œ ๋„ฃ์–ด๋ณด๊ณ  ์‹ถ์—ˆ๋˜ ๊ธฐ๋Šฅ์ด์˜€์ง€๋งŒ ์‹œ๊ฐ„์ƒ ์–ด๋ ค์›Œ ์ง„ํ–‰ํ•˜์ง€ ์•Š์•˜๋˜ ์ˆ™์†Œ ๊ณต์œ ๊ธฐ๋Šฅ, ์ž…์‹ค์˜ˆ์ •์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

  1. ์ „์ฒด ํŽ˜์ด์ง€ ๋ฐ˜์‘ํ˜• ์ ์šฉ
    • ๊ธฐ์กด pc๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋˜ ๋””์ž์ธ์„ ์ „์ฒด์ ์œผ๋กœ ๋ชจ๋ฐ”์ผ ํ™˜๊ฒฝ์—์„œ๋„ ์ž˜ ๋ณด์ด๊ฒŒ ๋ฐ˜์‘ํ˜•์„ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๋งํฌ/์นด์นด์˜คํ†ก ๊ณต์œ  ๊ธฐ๋Šฅ
    • ๋‹ค๋ฅธ์‚ฌ๋žŒ์—๊ฒŒ ์ˆ™์†Œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋งํฌ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜, ์นดํ†ก์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด ๊ณต์œ ํ• ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  3. ์ž…์‹ค์˜ˆ์ • ์•Œ๋ฆผ ๊ธฐ๋Šฅ
    • ์‹ค์ œ ์•ผ๋†€์ž์— ์žˆ๋Š” ์ž…์‹ค์˜ˆ์ • ์•Œ๋ฆผ๊ธฐ๋Šฅ์„ ๋ชจํ‹ฐ๋ธŒ๋กœ ํ•ด์„œ Web Notification API๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ € ์•Œ๋ฆผ์œผ๋กœ ๊ตฌํ˜„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋งํฌ๊ณต์œ  ๋งํฌ๊ณต์œ 

์นด์นด์˜คํ†ก ๊ณต์œ  ์นด์นด์˜คํ†ก-๊ณต์œ 

์ž…์‹ค์˜ˆ์ •์•Œ๋ฆผ ์ž…์‹ค์˜ˆ์ •์•Œ๋ฆผ

์–‘์žฌํ˜
  1. ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ์—๋Ÿฌ ํ•ธ๋“ค๋ง ๋กœ์ง ์ˆ˜์ •
  2. axios ์ธ์Šคํ„ด์Šค ๋ถ„๋ฆฌ
  3. ๋งˆ์ดํŽ˜์ด์ง€ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ
์ •ํšจ์ฃผ
  1. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ Props ํƒ€์ž…์„ React.FC ๋Œ€์‹  ์ง์ ‘ ๋ช…์‹œํ•˜์—ฌ ์ˆ˜์ •
  2. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋ถ€๋ชจ์™€ ์ž์‹ ๊ฐ„์˜ Props ํƒ€์ž…์„ ์ผ์น˜
  3. ์Šค์ผˆ๋ ˆํ†ค UI ์ƒ์„ฑ

ํšŒ๊ณ 

๊น€์ง€๋ฏผ

์ข‹์•˜๋˜ ์ 

  1. ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณผ ์—ฌ์œ ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ ์กฐ๊ธˆ์ด๋‚˜๋งˆ jest๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  2. Recoil์„ ํ†ตํ•œ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ๋ณด๋‹ค ๋” ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ํŒ€์žฅ์œผ๋กœ์„œ ํŒ€์„ ์–ด๋–ป๊ฒŒ ์ด๋Œ์–ด ๋‚˜๊ฐ€์•ผ ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋”์‰ฝ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋˜ ์ข‹์€ ๊ธฐํšŒ์˜€์Šต๋‹ˆ๋‹ค.
  4. ๋ฐฑ์—”๋“œ ๋ถ„๋“ค๊ณผ ํ˜‘์—…ํ•˜์—ฌ ์†Œํ†ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ ํšŒ์˜๋ฅผ ํ†ตํ•ด ์ง„์ฒ™ ์‚ฌํ•ญ์„ ์–˜๊ธฐํ•˜๊ณ  ๊ณต์œ ํ•˜๋‹ˆ ๋” ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์„ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์šด ์ 

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

์ข‹์•˜๋˜ ์ 

  1. ์‹ค๋ฌด์—์„œ๋Š” ์ตœ์‹ ๋ฒ„์ „์— ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ๋ชปํ• ์ˆ˜๋„ ์žˆ๊ธฐ์— ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด์„œ React ์ตœ์‹ ๋ฒ„์ „์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ์„ ๋„์ „ํ•ด๋ณธ์ ์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  2. ๋ฐฑ์—”๋“œ์™€์˜ ํ˜‘์—…์„ ํ†ตํ•ด์„œ ์‹ค๋ฌด์— ๊ฐ€์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์™€ ์†Œํ†ตํ•˜๊ณ  ์›ํ•˜๋Š”๊ฒƒ์„ ์š”๊ตฌํ•˜๋Š” ์—ฐ์Šต์„ ๊ฐ„์ ‘์ ์œผ๋กœ ํ•ด๋ณธ ๊ฒฝํ—˜์„ ์–ป์–ด๊ฐ„๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.
  3. ์‹ค์ œ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ• ๋•Œ ์–ด๋– ํ•œ ์˜ค๋ฅ˜๋‚˜ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ๊ฒฝํ—˜ํ•ด๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋Š” ์ข‹์€ ๊ฒฝํ—˜์ด ์ƒ๊ธด๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋‹ค๋ฅธ์กฐ์˜ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด์„œ ๊ฐ„์ ‘์ ์œผ๋กœ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์— ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ข€๋” ์•Œ๊ฒŒ๋œ๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์šด ์ 

  1. ์ธ์›์ด ๋‹ค๋ฅธ์กฐ์— ๋น„ํ•ด ์ ์–ด์„œ ์‹œ๊ฐ„์ƒ ์–ด๋ ค์›Œ ํฌ๊ธฐํ–ˆ๋˜ ๊ธฐ๋Šฅ์ด ๋ช‡๊ฐœ ์žˆ์—ˆ๋˜ ์ ์ด ๋งค์šฐ ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค.
  2. ๊ธฐํšํ•  ๋‹น์‹œ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ–ˆ๊ฑฐ๋‚˜, ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ์‹œ๊ฐ„์„ ๋งŽ์ด ์“ด ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ์‹œ๊ฐ„์— ์ซ’๊ธฐ๋ฉฐ ์ž‘์—…ํ•œ ์ ์ด ์•„์‰ฌ์› ์Šต๋‹ˆ๋‹ค.
์–‘์žฌํ˜

์ข‹์•˜๋˜ ์ 

  1. ๋ฐฑ์—”๋“œ์™€์˜ ํ˜‘์—…์œผ๋กœ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  2. ๋ฆฌ์•กํŠธ ์ฟผ๋ฆฌ์— ๋Šฅ์ˆ™ํ•ด ์งˆ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  3. Jira๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ agileํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ตํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์šด ์ 

  1. ๋‹ค๋“ค ์—ด์‹ฌํžˆ ์ž˜ ํ•ด์ฃผ์…จ์ง€๋งŒ, ์ธ์› ๋ถ€์กฑ์œผ๋กœ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ์ ์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.
  2. HTTP ๋ฉ”์„œ๋“œ ํ…Œ์ŠคํŠธ ์™ธ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.
  3. ๋ฆฌํ”„๋ž˜์‹œ ํ† ํฐ์œผ๋กœ ํ•ธ๋“ค๋ง ํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.
์ •ํšจ์ฃผ

์ข‹์•˜๋˜ ์ 

  1. Recoil ์ „์—ญ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๊ณ  react-query๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•ด ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ์žฌ์ ‘๊ทผ ์†๋„๋ฅผ ๋†’ํžˆ๋Š”๊ฒƒ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  2. ๋‹ค๋ฅธ ํŒ€์›์ด ๋งŒ๋“  ์ปค์Šคํ…€ ํ›…๊ณผ util ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์„ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋กœ ๋ฌถ์–ด์„œ ์žฌ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝํ—˜์„ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐํ™” ์‹œํ‚ค๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œ์ผœ ์ฝ”๋“œ๋ฅผ ๊ฐ€๋…์„ฑ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.
  3. ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„๋™์•ˆ ๋””์Šค์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ์„ ๊ฑฐ์ณ ๋งค์ผ ๋ชจ๊ฐ์ฝ”๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , ํšŒ์˜๊ฐ€ ์•„๋‹Œ ์‹œ๊ฐ„์—๋„ ๋ฐฑ์—”๋“œ์™€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ƒ์˜ํ•˜๋ฉด์„œ ๋Š์ž„์—†์ด ์ •๋ณด๋ฅผ ๊ณต์œ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์›ํ™œํ•œ ์†Œํ†ต์œผ๋กœ ๋ฒ„๊ทธ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ˆ์ƒ๋ณด๋‹ค ์—ฌ์œ ๋กญ๊ฒŒ ๋งˆ๋ฌด๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์ด์ƒ์ ์ธ ํ˜‘์—…์„ ๊ฒฝํ—˜์„ ์–ป์–ด๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„์‰ฌ์šด ์ 

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

๐Ÿ›ข๏ธ Stack

Language

Development

CI/CD

Design

Collaboration


๐ŸŽจ ํ™”๋ฉด ๊ตฌ์„ฑ

๋ฉ”์ธํŽ˜์ด์ง€

image

์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํŽ˜์ด์ง€

image

์ˆ™์†Œ ์ƒ์„ธ ํŽ˜์ด์ง€

image

์žฅ๋ฐ”๊ตฌ๋‹ˆ ํŽ˜์ด์ง€

image

๋งˆ์ดํŽ˜์ด์ง€

image


๐Ÿ“š ์ฃผ์š” ๊ธฐ๋Šฅ

ํšŒ์›๊ฐ€์ž… ์ƒํ’ˆ์กฐํšŒ
ํšŒ์›๊ฐ€์ž… ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฌดํ•œ์Šคํฌ๋กค ์‹œ์—ฐ
์ƒ์„ธํŽ˜์ด์ง€ ๊ฒฐ์ œํŽ˜์ด์ง€
๋‚ ์งœ์— ๋”ฐ๋ผ ๊ฐ€๊ฒฉ ๋ฐ ํ’ˆ์ ˆ ๋ณ€๊ฒฝ ๊ฒฐ์ œํŽ˜์ด์ง€ ํ•„์ˆ˜ ๋™์˜ ์—ฌ๋ถ€

๐Ÿ“ ํด๋” ๊ตฌ์กฐ

๐Ÿ“ฆMiniProject
 โ”ฃ ๐Ÿ“‚src
 โ”ƒ โ”ฃ ๐Ÿ“‚apis
 โ”ƒ โ”ฃ ๐Ÿ“‚assets
 โ”ƒ โ”ฃ ๐Ÿ“‚componets
 โ”ƒ โ”ฃ ๐Ÿ“‚hooks
 โ”ƒ โ”ฃ ๐Ÿ“‚pages
 โ”ƒ โ”ฃ ๐Ÿ“‚recoil
 โ”ƒ โ”ฃ ๐Ÿ“‚types
 โ”ƒ โ”ฃ ๐Ÿ“‚utils
 โ”ƒ โ”ฃ ๐Ÿ“œApp.css
 โ”ƒ โ”ฃ ๐Ÿ“œApp.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œindex.tsx
 โ”ƒ โ”ฃ ๐Ÿ“œindex.css
 โ”ฃ ๐Ÿ“‚test
 โ”ฃ ๐Ÿ“œ.env
 โ”ฃ ๐Ÿ“œ.eslintrc.js
 โ”ฃ ๐Ÿ“œ.eslintignore
 โ”ฃ ๐Ÿ“œ.gitignore
 โ”ฃ ๐Ÿ“œ.prettierrc
 โ”ฃ ๐Ÿ“œREADME.md
 โ”ฃ ๐Ÿ“œpackage-lock.json
 โ”ฃ ๐Ÿ“œpackage.json
 โ”ฃ ๐Ÿ“œtailwindcss.config.js
 โ”— ๐Ÿ“œtsconfig.json


๐Ÿ”‘ ํ…Œ์ŠคํŠธ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ

id : fast@naver.com
pw : test123!

๐Ÿ“Œ ํ™˜๊ฒฝ์„ค์ •

git clone https://github.com/YBE-7/MiniProject_FE
npm i
npm run start
ํ•˜์‹œ๊ณ  .env ํŒŒ์ผ์—

ํ™˜๊ฒฝ๋ณ€์ˆ˜ REACT_APP_KAKAO_API_KEY = 769c2ff03a8fe204a09397ad6b385a5d REACT_APP_KAKAO_SHARE_API_KEY = 8066a8630f3bf26042823994bf8ce2de
์ถ”๊ฐ€ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

ํ˜น์€
https://mini-team-7.vercel.app/ ๋ฐฐํฌ ์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages