๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš€ Development/React Native

React Native์˜ ์ž‘๋™ ์›๋ฆฌ

by Jay Din 2023. 6. 15.
728x90
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

React Native์˜ ์ž‘๋™ ์›๋ฆฌ

  1. JSX๋กœ ์งœ์—ฌ์ง„ ์†Œ์Šค๋ฅผ ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ฌ๋ฆฐ๋‹ค.
  2. ๋ฐ”๋ฒจ์„ ํ†ตํ•ด ์ฝ”๋“œ๊ฐ€ JS bndle ๋ผ์„œ JS thread์—์„œ JSX์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
  3. ๊ฐ ํ”Œ๋žซํผ์˜ ์•ฑ ์‹คํ–‰์€ native thread์— ์˜ํ•ด ์‹คํ–‰๋˜๋Š”๋ฐ, JS thread์™€ Native thread๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ํ•  ์ˆ˜ ์—†์–ด์„œ ์ค‘๊ฐ„์— react native์—์„œ ์ œ๊ณต๋˜๋Š” bridge์— ์˜ํ•ด ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค.
  4. bridge๋Š” ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์— ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

๋ฐ”๋ฒจ(Babel) ์ด๋ž€?

์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์—,

Babel์„ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค.

์ดˆ๊ธฐ์˜ ๋ฐ”๋ฒจ์€ ES6 ์ฝ”๋“œ๋ฅผ ES5 ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ์ผ๋งŒ ํ–ˆ์ง€๋งŒ, ํ˜„์žฌ๋Š” ๋ฆฌ์•กํŠธ์˜ JSX๋ฌธ๋ฒ•๋„ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.

ํŠธ๋ Œ์ŠคํŒŒ์ผ๋Ÿฌ๋Š” ์†Œ์Šค๋ฅผ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ๋‹ค๋ฅธ ์†Œ์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ผ์ข…์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ๋Ÿฌ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

โ€‹

๋ฐ”๋ฒจ ์ง„ํ–‰ ๋‹จ๊ณ„

1. ํŒŒ์‹ฑ(Parsing): ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋‹จ๊ณ„

2. ๋ณ€ํ™˜(Transforming): ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝ

3. ์ถœ๋ ฅ(Printing): ๋ณ€๊ฒฝ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ถœ๋ ฅ

 

JS Bundle ์ด๋ž€?
Bundle์€ “์–ด๋–ค ๊ฒƒ๋“ค์„ ๋ฌถ๋Š”๋‹ค”๋ผ๋Š” ๋œป์œผ๋กœ,
๊ธฐ๋Šฅ๋ณ„๋กœ ๋ชจ๋“ˆํ™” ํ–ˆ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์„ ๋ฌถ์–ด์ค€๋‹ค๋Š” ๋œป์ด๋‹ค.
Bridge ์ด๋ž€?
๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ณผ์ •์—๋Š” Bridge๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๊ณ„์ธต๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์—ญํ• ์˜ bridge๊ฐ€ ์žˆ๋‹ค.
JavaScript Thread ์ด๋ž€?
๋ฆฌ์•กํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์žฅ์†Œ(๋ณดํ†ต ๋ฆฌ์•กํŠธ ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.)
Native Thread ์ด๋ž€?
๋„ค์ดํ‹ฐ๋ธŒ ๊ณ„์ธต ์ฝ”๋“œ
Main Thread: UI๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ
Shadow Thread: ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋กœ ๋ ˆ์ด์•„์›ƒ์„ ๊ณ„์‚ฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
Native Module: ๊ฐ ๋ชจ๋“ˆ์˜ ์ž์ฒด ์Šค๋ ˆ๋“œ
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•