๐Ÿ“ฑ React Native๋ž€?

zooyahoยท2025๋…„ 7์›” 17์ผ
0
post-thumbnail

React Native๋Š” React.js์™€ Native ํ”Œ๋žซํผ์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์‹ค์ œ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ์•ฑ(iOS, Android)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

๐Ÿ”ท React.js๋ž€?

  • ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

  • ๋ณดํ†ต ์›น ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์›น ์ง€์›์€ react-dom์ด ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๐Ÿ‘‰ React ์ž์ฒด๋Š” ํ”Œ๋žซํผ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š”(agnostic) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

๐Ÿ”ท React Native๋ž€?

  • ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ React ์ปดํฌ๋„ŒํŠธ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

  • iOS๋‚˜ Android์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๊ธฐ์˜ ๊ธฐ๋Šฅ๋“ค(์˜ˆ: ์นด๋ฉ”๋ผ, ์œ„์น˜ ์ •๋ณด, ์ง„๋™ ๋“ฑ)์„ JavaScript ์ฝ”๋“œ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.(๋‚ด๋ถ€์ ์œผ๋กœ๋Š” Java, Swift ์ฝ”๋“œ๋ž‘ ์—ฐ๊ฒฐํ•ด์ค˜์š”)

  • ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ UI ์š”์†Œ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ๋“ค์€ ์‹ค์ œ๋กœ๋Š” iOS์™€ Android๊ฐ€ ๊ฐ๊ฐ ์ œ๊ณตํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ UI๋กœ ๋ฐ”๋€Œ์–ด ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด,

<Text>Hello</Text>

๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด, Android์—์„  TextView, iOS์—์„  UILabel๋กœ ๋ฐ”๋€Œ์–ด ์‹ค์ œ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.
์ฆ‰, React ๋ฌธ๋ฒ•์œผ๋กœ ์ง„์งœ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

๐Ÿ‘‰ ์ฆ‰, React Native๋Š” react-dom๊ณผ ๋น„์Šทํ•˜๊ฒŒ, ํŠน์ • ํ”Œ๋žซํผ์— React๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”ท React.js + React Native = Real Native Mobile Apps

React Native๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, React์˜ ๋ฌธ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ iOS์™€ Android์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ง„์งœ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ท ๊ทธ๋ ‡๋‹ค๋ฉด "๋กœ์ง(Logic)"์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ ๊นŒ?

React Native์—์„œ UI๋Š” ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ปดํŒŒ์ผ๋˜์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๋กœ์ง(Logic) ๋ถ€๋ถ„์€ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

React Native๋Š” ํฌ๊ฒŒ ๋‘ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค:

์˜์—ญ์„ค๋ช…
UI Elementsํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ฒ„ํŠผ, ํ…์ŠคํŠธ ๋“ฑ UI ๊ตฌ์„ฑ ์š”์†Œ๋“ค
Logic์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ƒํƒœ ๊ด€๋ฆฌ, API ํ˜ธ์ถœ ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ์•ฑ์˜ ๋™์ž‘ ๋…ผ๋ฆฌ

โœ… UI Elements

  • React Native๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค (<View>, <Text>, <Button> ๋“ฑ)์€
    ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ ํ”Œ๋žซํผ์˜ ๋„ค์ดํ‹ฐ๋ธŒ UI ์š”์†Œ๋กœ ๋ณ€ํ™˜(compiled) ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ: <Text> โ†’ Android์—์„  TextView, iOS์—์„  UILabel๋กœ ๋ณ€ํ™˜๋จ

โœ… Logic (์•ฑ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” ์ฝ”๋“œ)

  • ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” JavaScript ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ƒํƒœ ๋ณ€๊ฒฝ, API ์š”์ฒญ ๋“ฑ
  • ์ด ๋กœ์ง์€ ์•ฑ ๋‚ด์˜ JavaScript ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค!
  • React Native๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์ด JavaScript ์Šค๋ ˆ๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ ์ฃผ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ฆ‰, UI๋Š” ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ์ปดํŒŒ์ผ๋˜์ง€๋งŒ, ๋กœ์ง์€ ๊ทธ๋Œ€๋กœ JS๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.


๐Ÿง  ์ •๋ฆฌ

  • React Native์˜ ํ•ต์‹ฌ ๊ตฌ์กฐ๋Š” "๋„ค์ดํ‹ฐ๋ธŒ UI + JavaScript ๋กœ์ง" ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.
  • UI๋Š” ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ณ€ํ™˜๋˜๊ณ ,
    ๋กœ์ง์€ JS ์Šค๋ ˆ๋“œ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด ๋•๋ถ„์— ์šฐ๋ฆฌ๋Š” React ๋ฌธ๋ฒ•์œผ๋กœ ๋ชจ๋ฐ”์ผ UI๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , JavaScript๋กœ ์•ฑ ๋กœ์ง์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
profile
์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜์ž ์ฅฌ์•ผํ˜ธ๐Ÿ‘ป

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