ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Project

[NewsFeed-Final] FootPrint๐Ÿ‘ฃ

์ฑ„._. 2025. 2. 18. 21:15

๐Ÿ‘ฃ FootPrint newsfeed ๋ฉ”์ธ ํ™”๋ฉด ๋ฐ ์ž‘๋™ ์˜์ƒ

 

 

 

๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • '์—ฌํ–‰'์„ ์ฃผ์ œ๋กœ ํ•œ ๋‰ด์Šคํ”ผ๋“œ์ž…๋‹ˆ๋‹ค.
  • ์—ฌํ–‰ ๊ธฐ๋ก์— ๋Œ€ํ•œ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.
  • ์›ํ•˜๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ณ , ์ž์‹ ์ด ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • styled-components๋ฅผ ์ด์šฉํ•˜์—ฌ ์Šคํƒ€์ผ๋ง ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Context API๋ฅผ ํ†ตํ•ด ์ „์—ญ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • react-router-dom์œผ๋กœ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • BaaS(Backend As a System)- Supabase๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ : git, github
  • ๋ฐฐํฌ : vercel

 

๐Ÿ•ฐ๏ธ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„

2025 / 02 / 12 ~ 2025 / 02 / 18

 

โš™๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

react, vite, context API, redux, react router, styled-components, supabase

 

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

โœ”๏ธ supabase ์—์„œ ์ œ๊ณตํ•˜๋Š” api๋ฅผ ์ด์šฉํ•˜์—ฌ CRUD ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•ธ๋“ค๋ง์„ ๊ตฌํ˜„

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

โœ”๏ธ useEffect๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด ๋‚ด์—์„œ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ

  • ์‚ฌ์šฉ์ž์˜ ํ”„๋กœํ•„๊ณผ ์ด๋ฏธ์ง€, ๋Œ“๊ธ€, ์ข‹์•„์š”
  • ์นด๋“œ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒ์„ธ ๋ชจ๋‹ฌ์—์„œ ๊ธ€ ๋‚ด์šฉ ๋ฐ ๋Œ“๊ธ€ ํ™•์ธ

โœ”๏ธ Authentication ์—์„œ ์ œ๊ณตํ•˜๋Š” api๋ฅผ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜ ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ 

  • ๋กœ๊ทธ์ธ์ด ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๊ฒŒ์‹œ๊ธ€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๋งŒ ์ด์šฉ ๊ฐ€๋Šฅ
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ด๋ฅผ DB์— ์ €์žฅ(์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ, ๋‹‰๋„ค์ž„)
  • ๋กœ๊ทธ์ธ ์ƒํƒœ์—์„œ๋Š” ๊ฒŒ์‹œ๋ฌผ์„ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ •ํ•˜๋ฉฐ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด ํ™•์ธ ๊ฐ€๋Šฅ

โœ”๏ธ ์ „์—ญ์ƒํƒœ๋ฅผ Context API๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„

 

โœ”๏ธ RRD๋กœ ํŽ˜์ด์ง€ ๋ผ์šฐํŒ… ๊ตฌํ˜„

  • ํ™ˆ
  • ๋งˆ์ดํŽ˜์ด์ง€
  • ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€
  • ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ๋ฐ ์ˆ˜์ • ํŽ˜์ด์ง€

โœ”๏ธ ์ข‹์•„์š” ๊ธฐ๋Šฅ

  • ํ•˜ํŠธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ข‹์•„์š”๋ฅผ ์ถ”๊ฐ€ ๋ฐ ์ทจ์†Œ
  • ํ™ˆํŽ˜์ด์ง€์—์„œ์˜ ์ข‹์•„์š”๊ฐ€ ๋ชจ๋‹ฌ์ฐฝ์—๋„ ๋ฐ˜์˜

โœ”๏ธ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ

  • ์ƒ๋‹จ ๊ฒ€์ƒ‰์ฐฝ์—์„œ๋Š” ์ œ๋ชฉ, ๋‚ด์šฉ, ๋‹‰๋„ค์ž„, mbti๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ธ€์„ ๊ฒ€์ƒ‰

โœ”๏ธ ๋งˆ์ดํŽ˜์ด์ง€

 

โœ”๏ธ ๋ฌดํ•œ ์Šคํฌ๋กค

 

 

๐Ÿšจ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  1. S.A, ์™€์ด์–ด ํ”„๋ ˆ์ž„, ํŒ€ ๊ทœ์น™ ์ •ํ•˜๊ธฐ
  2. supabase ๊ฐ์žก๊ธฐ(UI / ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ-Promise.all)
  3. supabase ๋™๊ธฐํ™”
  4. context ์ „์—ญ ๊ด€๋ฆฌ, Modal ์—ฐ๊ฒฐํ•˜๊ธฐ
  5. data ํ•„ํ„ฐ๋ง(๊ฒ€์ƒ‰์–ด, ์นดํ…Œ๊ณ ๋ฆฌ)

 

โœจ๋งˆ๋ฌด๋ฆฌ

ํ˜ผ์ž ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ต์ˆ™ํ•ด์ง„ ๋‚˜์—๊ฒŒ ์ƒˆ๋กœ์šด ๊ณผ์ œ๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค. ๋ฐ”๋กœ ํ˜‘์—… ํ”„๋กœ์ ํŠธ! ์ฒซ ํ˜‘์—…์„ ์•ž๋‘๊ณ  ์„ค๋ ˜๋ณด๋‹ค๋Š” ๊ธด์žฅ์ด ๋” ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ํ•จ๊ป˜ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” git์€ ํ•„์ˆ˜์ผํ…๋ฐ.. ๋‚ด๊ฐ€ ๋‚ ๋ฆฌ๋ฉด ์•ˆ ๋ ํ…๋ฐ.. ๊ทธ๋™์•ˆ ์ €์ง€๋ฅธ git ์˜ค๋ฅ˜๋“ค์ด ํฐ ์ง์œผ๋กœ ๋А๊ปด์กŒ๋‹ค.

 

ํ˜‘์—…์€ ์ƒ๊ฐ๋ณด๋‹ค ์ข‹์•˜๊ณ  ์ƒ๊ฐ๋ณด๋‹ค ํž˜๋“ค์—ˆ๋‹ค.

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

DB๋ฅผ ์ž์œ ์ž์žฌ๋กœ ๋‹ค๋ฃจ์‹œ๋Š” ๋ถ„, ๋ฐฐ์šด ๋ฉ”์„œ๋“œ๋ฅผ ๋Šฅ์ˆ™ํ•˜๊ฒŒ ๋‹ค๋ฃจ์‹œ๋Š” ๋ถ„, css ์ค‘ grid๋ฅผ ์ต์ˆ™ํ•˜๊ฒŒ ์ ์šฉํ•˜์‹œ๋Š” ๋ถ„, ์ž์‹ ์ด ์ดํ•ดํ•  ๋•Œ๊นŒ์ง€ ์งˆ๋ฌธํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ๋ณด๋ฉฐ ์ •๋ง ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค.

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

๊ทธ์น˜๋งŒ, ์ƒˆ๋กœ ์ตํžŒ ๊ธฐ์ˆ ๋กœ ์ด๋งŒํผ ํ•ด๋ƒˆ๋‹ค๋Š” ๊ฒƒ์ด ์ฐธ ๋Œ€๋‹จํ•œ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค!

์šฐ๋ฆฌ๋Š” ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ๋ชจ์˜€์œผ๋‹ˆ ์ด ๋˜ํ•œ ํ•™์Šต์˜ ์ผ๋ถ€๋ผ ์ƒ๊ฐํ•˜๋ฉฐ~

 

ํ™•์‹คํžˆ ๋А๋‚€ ๊ฑด, ๋ชจ๋‘๊ฐ€ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„(์ „์—ญ์ƒํƒœ, ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ๋“ฑ)์€ ์ดˆ๋ฐ˜์— ํ™•์‹คํžˆ ๋ฐฉํ–ฅ์„ ๋‘๊ณ  ์ง„ํ–‰ํ•œ๋‹ค๋ฉด

์‹œ์ž‘์€ ๋А๋ฆด์ง€๋ผ๋„ ํ›จ์”ฌ ํƒ„ํƒ„ํ•˜๊ณ  ๋””ํ…Œ์ผํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฆฌ๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ