[ํ”„๋ก ํŠธ์—”๋“œ ์ƒ์กด์ฝ”์Šค 10๊ธฐ] 2์ฃผ์ฐจ ํšŒ๊ณ 

2024. 2. 4. 19:21ใ†Education/Megaptera

๐Ÿ“…  24.01.29 ~ 24.02.04 

์ด๋ฒˆ์ฃผ๋Š” JSX์— ๋Œ€ํ•ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  Gitbook์„ ์ž‘์„ฑํ•˜๊ณ ,
๊ณผ์ œ๋ฅผ ํ†ตํ•ด CI ํ…Œ์ŠคํŠธ๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ํ™•์ธํ•ด ๋ณด์•˜๋‹ค. 
๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฐ•์˜์˜ ๊ฐœ์ˆ˜๋Š” ๋งŽ์ง€ ์•Š์•˜์ง€๋งŒ, ๊นŠ์ด๊ฐ ์žˆ๋Š” ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•œ ์ฃผ์ฐจ์˜€๋‹ค. 

 

๐Ÿ“š ํ•™์Šต์„ ํ†ตํ•ด ๋ฐฐ์šด ๊ฒƒ๋“ค 

 

1๏ธโƒฃ JSX

React ๋ฅผ ๋ฐฐ์šฐ๋ฉด์„œ ์ ‘ํ–ˆ๋˜ JSX๋Š” JavaScript์— XML์„ ์ถ”๊ฐ€ํ•œ ํ™•์žฅ๋œ ๋ฌธ๋ฒ•์ด๋‹ค. 

JSX์˜ ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์ •์˜๋ฅผ ๋‚ด๋ฆฌ์ง€ ๋ชปํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ •ํ™•ํžˆ JSX์— ๋Œ€ํ•ด ์ •์˜ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

๊ณผ์ œ๋ฅผ ํ†ตํ•ด JSX ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  React.createElement ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•ด ๋ณด๋‹ˆ

React๊ฐ€ ์™œ UI์˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ธ์ง€ ์‹ค๊ฐ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

DOM๊ณผ Virtual DOM์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด VirtualDOM์˜ ํƒ„์ƒํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ์ง€์‹๊ณผ  

VirtualDOM์˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง์€ ์ •ํ™•ํ•˜๊ฒŒ Diff ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ๋ถ€์กฑํ•˜๊ณ  

React๊ฐ€ ์ œ๊ณตํ•˜๋Š” VirtualDOM์„ ํ™œ์šฉํ•ด ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„  ์ถ”๊ฐ€ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

 

 

2๏ธโƒฃ CI์™€ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ณผ์ œ

๊ณผ์ œ๋ฅผ ํ†ตํ•ด ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ CI์™€ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰ํ•ด ๋ด„์œผ๋กœ์จ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์กฐ๊ธˆ ๊ฐ์„ ์žก์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณธ ์ ์ด ์—†์–ด์„œ ๊ณผ์ œ๋ฅผ ํ•˜๋ฉด์„œ ์†”์งํžˆ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค. 

์ œ๊ณตํ•ด ์ฃผ๋Š” ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•ด ๋ณด์•˜๊ณ , ์—๋Ÿฌ ๋ฌธ๊ตฌ์™€ ์นœํ•ด์ง€๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ๋‹ค. 

๋นจ๊ฐ„ ์ค„์ด ๋‚˜์˜ค๋ฉด ๋„ˆ๋ฌด๋‚˜ ๋‘๋ ต๊ณ .. ๋ง‰๋ง‰ํ–ˆ์—ˆ๋Š”๋ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์—๋Ÿฌ๋ฅผ ๋ณด๊ณ  ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋‹ˆ 

์—๋Ÿฌ์™€ ๋„ˆ๋ฌด ์นœํ•ด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด์ œ ์—๋Ÿฌ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์œผ๋ฉด ๋„ˆ๋ฌด ์–ด์ƒ‰ํ•˜๋‹ค. 

 

 

3๏ธโƒฃ ๊นŠ์ด๊ฐ ์žˆ๋Š” ๊ณต๋ถ€ 

์ด๋ฒˆ์ฃผ๋Š” ํ•™์Šต ํ‚ค์›Œ๋“œ๊ฐ€ ๋งŽ์ง€ ์•Š์•„์„œ ์กฐ๊ธˆ ๋” ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด์•˜๋‹ค. 

๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ๋ชจ๋ฅด๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฒ€์ƒ‰์„ ํ–ˆ๊ณ  VirtualDOM์ด ํƒ„์ƒํ•˜๋Š” ๋ฐฐ๊ฒฝ์„ ์ฐพ๋‹ค ๋ณด๋‹ˆ

๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ํ•˜๋Š” ๊ณผ์ •๊ณผ ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธ(๋ฆฌ๋ Œ๋”๋ง)ํ•˜๋ฉด์„œ ๋ฐœ์ƒ๋˜๋Š” ๊ณผ์ •๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. 

๋ง‰์—ฐํ•˜๊ฒŒ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์ฃผ์ฐจ๋ฅผ ํ†ตํ•ด ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์•„์ง ์ž๋ฐ”์Šคํฌ๋ฆฝ ์—”์ง„์ด 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋ Œ๋”๋ง ํ•˜๋Š” ๊ณผ์ •์„ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. 

 

๋ฉ”๊ฐ€ํ…Œ๋ผ ํ”ผ๋“œ๋ฐฑ

 

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๋ฉ”๊ฐ€ํ…Œ๋ผ๋ฅผ ํ†ตํ•ด ๋‚˜๋Š” ์ด๋ฒˆ์ฃผ์— ์–ด๋–ค ์„ฑ์žฅ์„ ํ•˜์˜€๋Š”๊ฐ€? 

์ด๋ฒˆ์ฃผ ํ•™์Šต์„ ํ†ตํ•ด ์—ฌํƒœ ๊ฐœ๋ฐœ๊ณต๋ถ€๋ฅผ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์„ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. 

ํšŒ์‚ฌ๋ฅผ ๋‹ค๋‹ˆ๋ฉด์„œ ํ‹ˆํ‹ˆ์ด ์ธํ”„๋Ÿฐ ๊ฐ•์˜์™€ ์œ ๋ฐ๋ฏธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์™”๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. 

๋น ๋ฅด๊ฒŒ ๊ธฐ์ˆ ์„ ์Šต๋“ํ•˜์—ฌ ์‹ค๋ฌด์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก  ๊ธฐ์ˆ  ์Šคํ‚ฌ๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์™”๋˜ ๊ฑฐ ๊ฐ™๋‹ค.

์ฝ”๋“œ์— ๋Œ€ํ•ด ๊นŠ์ด๊ฐ ์žˆ๋Š” ๋ถ„์„์ด ์•„๋‹Œ ๋น ๋ฅด๊ฒŒ ๋ณต์‚ฌ/๋ถ™์—ฌ ๋„ฃ๊ธฐ๋ฅผ ํ†ตํ•ด ์—ด์‹ฌํžˆ ์งœ๊น๊ธฐ๋ฅผ ์ž˜ํ•ด์™”๋˜ ๊ฑฐ ๊ฐ™๋‹ค. 

์งœ๊น๊ธฐ๋งŒ ํ•˜๋‹ค ๋ณด๋‹ˆ ์Šค์Šค๋กœ์˜ ๊ฐœ๋ฐœ์‹ค๋ ฅ์— ๋Œ€ํ•ด๋Š” ํ•ญ์ƒ ์˜๋ฌธ์ด์—ˆ๊ณ  ๋ถˆ์•ˆํ–ˆ์œผ๋ฉฐ ๋ง‰์ƒ ์ด์งํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ

์—ฐ์ฐจ์ˆ˜์™€ ๋‚ด ์‹ค๋ ฅ์€ ๋น„๋ก€ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ซ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด๋ณด์ง€ ์•Š์•˜๊ณ , 

์Šคํ‚ฌ ์ตํžˆ๊ธฐ์—๋งŒ ๊ธ‰๊ธ‰ํ•˜๋‹ค ๋ณด๋‹ˆ ์‹ค๋ ฅ์ด ์Œ“์ด์ง€ ์•Š์•˜๋˜ ๊ฑฐ๋‹ค. ์ •๋ง.. ๊นŠ์ด ๋ฐ˜์„ฑํ•œ๋‹ค.

๋งŽ์€ ๋ฐ˜์„ฑ์„ ํ†ตํ•ด ํ•™์Šต์— ๋Œ€ํ•œ ๋ฐฉํ–ฅ์„ฑ์„ ๊ณ ๋ฏผํ•˜๊ฒŒ ๋œ ์ฃผ์ฐจ์˜€๊ณ  ๊นŠ์ด๊ฐ ์žˆ๋Š” ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ

์—ฌ๋Ÿฌ ๋ฐฉ์‹๋“ค์„ ๊ฒ€์ƒ‰ํ•ด ๋ณด๊ณ  ์‹œ๋„ํ•ด ๋ณด๋ฉด์„œ ์ฐพ์•„๊ฐ€๋Š” ์ค‘์ด๋‹ค.

์•ž์œผ๋กœ ์ „์ง„ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ๋…ธ๋ ฅํ•˜๋Š” ์ค‘์ด๋ผ ์•„์ง์€ ๋”๋””์ง€๋งŒ ์ฐจ๊ทผ์ฐจ๊ทผ ์กฐ๊ธ‰ํ•จ์„ ๋А๋ผ์ง€ ๋ง๊ณ  

๋‚˜์•„๊ฐ”์œผ๋ฉด ์ข‹๊ฒ ๋‹ค.