Community

๊ฐœ๋ฐœ์ž 99% ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ˆ˜๋‹ค ๋–จ์–ด์š”!

โ† Go back

๐Ÿ› ๏ธ ํŠธ์œ„ํ„ฐ ํด๋ก ์ฝ”๋”ฉ ์ค‘๊ฐ„๊ณต์œ 

โ€ข#twitter_cloneโ€ข
2์ผ ์ „
โ€ข
49
โ€ข
1
โ€ข
  • ์ž๊ธฐ์†Œ๊ฐœ

React + Firebase๋กœ ํŠธ์œ„ํ„ฐ ํด๋ก ์ฝ”๋”ฉ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค

ํŠธ์œ—์„ ์ž‘์„ฑํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” CRUD ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค

  • ๊ตฌํ˜„ํ•œ ๊ธฐ๋Šฅ ์†Œ๊ฐœ

-ํŠธ์œ— ์ž‘์„ฑ(PostTweetForm)

textarea๋กœ ํŠธ์œ— ์ž…๋ ฅ (์ตœ๋Œ€ 180์ž ์ œํ•œ, ๊ณต๋ฐฑ๋งŒ ์ž…๋ ฅ ์‹œ ์ œ์ถœ ๋ถˆ๊ฐ€)

Firebase Firestore์— ํŠธ์œ— ๋ฐ์ดํ„ฐ ์ €์žฅ (tweet, createdAt, username, userId)

๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๋งŒ ์ž‘์„ฑ ๊ฐ€๋Šฅ, ๋กœ๋”ฉ ์ค‘์—” ์ค‘๋ณต ์ œ์ถœ ๋ฐฉ์ง€

์ „์†ก ์„ฑ๊ณต์‹œ textarea ๋ฆฌ์…‹

ํŒŒ์ผ(image/*) ์—…๋กœ๋“œ UI (์š”๊ธˆ์ œ ์ œํ•œ์œผ๋กœ ์„ ํƒ๋งŒ ๊ฐ€๋Šฅ)

-ํŠธ์œ— ์ˆ˜์ •&์‚ญ์ œ(Tweet)

๋กœ๊ทธ์ธํ•œ ํ•ด๋‹น ํŠธ์œ— ์ž‘์„ฑ์ž๋งŒ Edit/Delete ๋ฒ„ํŠผ ํ‘œ์‹œ

Edit: textarea๋กœ ์ „ํ™˜ ํ›„ ์ˆ˜์ • ๊ฐ€๋Šฅ

Save: updateDoc( )์œผ๋กœ Firestore ์—…๋ฐ์ดํŠธ

Delete: confirm( ) ํ™•์ธ์ฐฝ์œผ๋กœ ์‹ค์ˆ˜ ๋ฐฉ์ง€, deleteDoc( )์œผ๋กœ ์‚ญ์ œ

Cancel: ํŽธ์ง‘ ์ค‘ ์ทจ์†Œ์‹œ ์›๋ž˜ ๋‚ด์šฉ ๋ณต์›

๊ณต๋ฐฑ ์ž…๋ ฅ ๋ฐฉ์ง€, ์ €์žฅ ์ค‘ ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”

  • ๊ตฌํ˜„ ๋ชจ์Šต ์Šคํฌ๋ฆฐ์ƒท & ๊นƒํ—ˆ๋ธŒ ๋งํฌ

https://github.com/hyhy425/nwitter-reloaded/commit/18e7985ccefda4679edc796401d1b9c703f9d1b5

  • ๊ณ ๋ฏผ. ๊ณต์œ ํ•˜๊ณ  ์‹ถ์€ ํŒ

๊ณต๋ฐฑ ์ž…๋ ฅ ๋ฐฉ์ง€๋Š” ๋‹จ์ˆœํ•˜์ง€๋งŒ ๊ผญ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ, trim( )์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด DB์— ๋ถˆํ•„์š”ํ•œ ๊ณต๋ฐฑ์ด ๋‚จ์ง€ ์•Š์Œ

๋‚˜์ค‘์— ๊ธฐํšŒ๊ฐ€ ๋˜๋ฉด Storage ์—ฐ๊ฒฐํ•ด์„œ ์‚ฌ์ง„ ์—…๋กœ๋“œ + ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๊ตฌํ˜„ํ•  ์˜ˆ์ •

๊ณตํ†ต์œผ๋กœ ์“ฐ์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด๋‘๋‹ˆ ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•ด์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธํ•ด์ง

1 comment