Reac Native | Instagram(Clone_Project)

์—„๋ฌธ์ฃผยท2021๋…„ 1์›” 11์ผ
1

ReactNative

๋ชฉ๋ก ๋ณด๊ธฐ
1/2

Intro ๐ŸŒผ

  • ๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜๋ฉด์„œ, ์ œ ์Šค์Šค๋กœ ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. Redux๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒํƒœ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ์—ˆ๊ณ , Firebase๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ํ”„๋กœ์ ํŠธ๋Š” ์‚ฌ์‹ค ์ œ ํž˜ 100%๊ฐ€ ๋“ค์–ด๊ฐ”๋‹ค๊ณ  ๋งํ•˜๊ธฐ์—๋Š” ๋ถ€๋„๋Ÿฌ์šด ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค.
    ๊ธฐ์กด์— ์œ ํŠœ๋ธŒ, ์›น์‚ฌ์ดํŠธ๋ฅผ ์ฐพ์•„๋ณด๋ฉด ์ˆ˜๋งŽ์€ ํด๋ก ํ”„๋กœ์ ํŠธ๋“ค์ด ์žˆ๊ณ , ์‰ฝ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ ‘ํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    ๊ฑฐ๊ธฐ์— ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๊ณ , ์ฐธ๊ณ ํ•˜๊ณ , ์‚ฌ์šฉํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋กœ์ง€ ์ œ ์‹ค๋ ฅ์ด๋ผ๊ณ  ๋ง์„ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

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

Redux ๐Ÿ”Ž

  • ๋ฆฌ์•กํŠธ์˜ ๊ฝƒ์€ "๋ฆฌ๋•์Šค" ๋‹ค ๋ผ๋Š” ๋ง์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์Šคํ…Œ์ดํŠธ๋ฅผ ํ•œ ๊ณณ์— ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ…Œ์ดํŠธ๊ฐ€ ๋ณต์žกํ•ด ์ง€์ง€ ์•Š๊ณ , ์—๋Ÿฌ์˜ ๋ฐœ์ƒ๋นˆ๋„๋ฅผ ์ค„์š”์ฃผ๋Š” ๊ฒƒ์ด ๋ฆฌ๋•์Šค์˜ ์ตœ๋Œ€ ๋งค๋ ฅํฌ์ธํŠธ ์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋•์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ์„œ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€, action์ด ๋ญ”์ง€, reduce๊ฐ€ ๋ญ”์ง€๋„ ๋ชฐ๋ž๋Š”๋ฐ...ํ•˜๋‹ค๋ณด๋‹ˆ... ๋˜๋„ค์š”...

Firebase ๐Ÿง

  • ๊ธฐ์กด, ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ์—๋Š” ๋ฐฑ์—”๋“œ๊ฐ€ ์—†์œผ๋ฉด ๋ชฉ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜๊ณค ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ์ˆ™๋ช…๊ณผ ๊ฐ™์€... ๊ทผ๋ฐ ์ด๋ฒˆ ๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ํŒŒ์ด์–ด๋ฒ ์ด์Šค์— ๋Œ€ํ•ด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ , ๋ฐฑ์—”๋“œ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ํฐ ๋งค๋ ฅ์„ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์•„์‰ฌ์šด๊ฒƒ์€... ์ƒ๊ฐ๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ์ ๋‹ค๋Š”๊ฑฐ... ์•„์ด๋”” ๋ช‡ ๊ฐœ ๋งŒ๋“ค๊ณ  ๋ฐ์ดํ„ฐ ๋ช‡ ๋ฒˆ ๋„ฃ๋‹ค๋ณด๋ฉด... ์ฝ˜์†”์ฐฝ์— ์—๋Ÿฌ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๊ณ , ํ™•์ธํ•ด๋ณด๋ฉด... ๋ฌด๋ฃŒ๋ผ์„œ ใ…Žใ…Žใ…Ž ์•„์ง์€ ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์ตํžˆ์ง€ ๋ชปํ–ˆ์ง€๋งŒ ๊พธ์ค€ํžˆ ๊ณต๋ถ€ํ•˜๋ฉด ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ํ•ฉ๋‹ˆ๋‹ค.
    ์•„๋ž˜๋Š” ์ €๋ฅผ ํž˜๋“ค๊ฒŒ ํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋ง๊ณผ ์œ ํŠœ๋ธŒ๋ฅผ ํ†ตํ•ด์„œ ๋งŒ๋“  ์ฝ”๋“œ์ธ๋ฐ, ์‚ฌ์‹ค ์™„์ „ํžˆ ์ œ๊ป˜ ์•„๋‹ˆ์ฃ . ์กฐ๊ธˆ ์„ค๋ช…์„ ํ•˜๋ฉดfirestore ์— collection ์„ ๋งŒ๋“œ๋Š”๋ฐ, ํ…Œ์ด๋ธ” ๊ฐ™์€๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์•„์š”, ๊ฑฐ๊ธฐ์— posts ๋ผ๋Š” ๋ฐฉ์„ ํ•˜๋‚˜ ๋งŒ๋“œ๋Š” ๊ฑฐ์ฃ . ๊ทธ๋ฆฌ๊ณ  firebase.auth().cuuentUser.uid ์ฆ‰, ์ง€๊ธˆ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋„ฃ๋Š”๊ฑฐ์—์š”. ์‚ฌ์‹ค firebase ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๊ณต์‹๋ฌธ์„œ๋„ ์ž˜๋˜์–ด ์žˆ๊ณ , ์ž๋ฃŒ๋„ ๋งŽ์•„์„œ, ์ž˜ ์ฐพ์•„๋ณด์‹œ๊ณ  ํ•˜๋ฉด ๋˜์š”. ๊ทผ๋ฐ, ์ €๋Š” ์ฒ˜์Œ์— collection ์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์—†์–ด์„œ, posts ๋กœ collection ์„ ๋งŒ๋“ค์–ด ๋†“๊ณ ๋Š” ๊ณ„์† post ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์œผ๋ ค๊ณ  ํ•˜๋‹ˆ๊น ์•ˆ๋ฐ›์•„์กŒ์—ˆ์–ด์š”. ReactNative ๋Š” React ๋ณด๋‹ค ๋ถˆ์นœ์ ˆํ•ด์„œ ์—๋Ÿฌ ์žก๋Š”๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋„ค์š”.

๋งˆ๋ฌด๋ฆฌ ๐Ÿ™

  • ํšŒ๊ณ ๋ก์ด๋ผ์„œ ์‚ฌ์‹ค ๊ธฐ์ˆ ์ ์ธ ๋ถ€๋ถ„์ด ๋งŽ์ด ์—†๋„ค์š”. ์ œ๊ฐ€ ์ง„ํ–‰ํ–ˆ๋˜ ์ฝ”๋“œ๋“ค๊ณผ ์–ด๋ ค์› ๋˜ ๋ถ€๋ถ„๋“ค์„ ๋„ฃ๊ณ  ์‹ถ์ง€๋งŒ, ์•„์ง์€ ์ œ๊ฐ€ ๋งŽ์ด ์ค€๋น„๊ฐ€ ์•ˆ๋˜์–ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ์ข€ ๋” ์ค€๋น„ํ•œ ํ›„์— ๋„ฃ๋„๋ก ํ• ๊ฒŒ์š”.
profile
์„ธ์ƒ๊ณผ ์†Œํ†ต์„ ๊ฟˆ๊พธ๋Š” ๊ฐœ๋ฐœ์ž

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