Frontend ๐Ÿ“š/React 23

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ I - virtual DOM, react fiber etc.

1. ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ๊ฐ€2. ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 3. virtual DOM์ด๋ž€4. ๋ฆฌ์•กํŠธ ๋ Œ๋”๋ง5. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„ 6. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„ ํŠธ๋ฆฌ7. ๋ฆฌ์•กํŠธ ํŒŒ์ด๋ฒ„, DOM ๊ทธ๋ฆฌ๊ณ  virtual DOM์˜ ๊ด€๊ณ„8. ๋ Œ๋” ๋‹จ๊ณ„์™€ ์ปค๋ฐ‹ ๋‹จ๊ณ„1. ๋ฆฌ์•กํŠธ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์ธ๊ฐ€ โญ๏ธ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ API(๋„๊ตฌ/ํ•จ์ˆ˜)๋ฅผ ๋ชจ์€ ์ง‘ํ•ฉํ”„๋ ˆ์ž„์›ŒํฌApplication ๊ฐœ๋ฐœ์‹œ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ, ํ•„์ˆ˜์ ์ธ ์ฝ”๋“œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์•”ํ˜ธํ™”, ๋ฐ๋ฒ  ์—ฐ๋™ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ์–ด๋Š ์ •๋„ ๊ตฌ์„ฑ์ด ๋˜์–ด์žˆ๋Š” ๋ผˆ๋Œ€(๊ตฌ์กฐ)๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs. ํ”„๋ ˆ์ž„์›Œํฌ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„์„ ์ง์ ‘ ์ œ์–ดํ•จ๋‹จ์ง€ ๋™์ž‘ํ•˜๋Š” ์ค‘์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์„ ๋•Œ ๋Šฅ๋™์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋ฟ์ž„ํ”„๋ ˆ์ž„์›Œํฌ๋Š”..

๋ฌผํ’ˆ๋Œ€์—ฌ ์„œ๋น„์Šค ๊ฐœ์ธํ”„๋กœ์ ํŠธ

https://github.com/leejaejae/S-S-F๋ฌผํ’ˆ ๋Œ€์—ฌ ์„œ๋น„์Šค ์›นํŽ˜์ด์ง€ ํ”„๋กœ์ ํŠธ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” React๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ ๋ฌผํ’ˆ ๋Œ€์—ฌ ์„œ๋น„์Šค ์›นํŽ˜์ด์ง€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ , ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๋ฐฉ๋ฒ•, ์ฃผ์š” ๊ธฐ๋Šฅ, ํด๋” ๊ตฌ์กฐ, ์‚ฌ์šฉ๋œ ๊ธฐ์ˆ  ๋“ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.๋ชฉ์ฐจํ”„๋กœ์ ํŠธ ๊ฐœ์š”์„ค์น˜ ๋ฐ ์‹คํ–‰๊ธฐ๋Šฅํด๋” ๊ตฌ์กฐ์‚ฌ์šฉ๋œ ๊ธฐ์ˆ ๋ผ์ด์„ผ์Šคํ”„๋กœ์ ํŠธ ๊ฐœ์š”์ด ํ”„๋กœ์ ํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์–‘ํ•œ ๋ฌผํ’ˆ์„ ๋Œ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ฌผํ’ˆ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ , ์„ ํƒํ•˜์—ฌ ๋Œ€์—ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๋ฌผํ’ˆ์„ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์„ค์น˜ ๋ฐ ์‹คํ–‰1. ํด๋ก  ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋™๋จผ์ €, ํ”„๋กœ์ ํŠธ๋ฅผ ํด๋ก ํ•˜๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค:git clone https://github.com/you..

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part11 - PWA ์…‹ํŒ…

โœ๏ธ PWA๋ž€ - ๊ตฌ๊ธ€์—์„œ ๋ฐ€๊ณ  ์žˆ๋Š” Progressive Web App์ด๋ผ๋Š”๊ฑด๋ฐ ์ด๊ฑด ์›น์‚ฌ์ดํŠธ๋ฅผ ์•ˆ๋“œ๋กœ์ด๋“œ/iOS ๋ชจ๋ฐ”์ผ ์•ฑ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ์ผ์ข…์˜ ์›น๊ฐœ๋ฐœ ๊ธฐ์ˆ ์ด๋‹ค. - ๊ทผ๋ฐ iOS, Android ์•ฑ์œผ๋กœ ๋ฐœํ–‰ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ์›น์‚ฌ์ดํŠธ ์ž์ฒด๋ฅผ ์Šค๋งˆํŠธํฐ ํ™ˆํ™”๋ฉด์— ์„ค์น˜ํ•œ๋‹ค. โœ๏ธ ์›น์‚ฌ์ดํŠธ๋ฅผ PWAํ™” ์‹œํ‚ค๋Š”๊ฒŒ ๋ญ๊ฐ€ ์ข‹๋ƒ๋ฉด 1. ์Šค๋งˆํŠธํฐ, ํƒœ๋ธ”๋ฆฟ ๋ฐ”ํƒ•ํ™”๋ฉด์— ์›น์‚ฌ์ดํŠธ ์„ค์น˜ ๊ฐ€๋Šฅ. 2. ์˜คํ”„๋ผ์ธ์—์„œ๋„ ๋™์ž‘ ๊ฐ€๋Šฅ. - service-worker.js ๋ผ๋Š” ํŒŒ์ผ๊ณผ ๋ธŒ๋ผ์šฐ์ €์˜ Cache storage ๋•๋ถ„ 3. ์„ค์น˜ ์œ ๋„ ๋น„์šฉ์ด ๋งค์šฐ ์ ์Œ. - ์›น์‚ฌ์ดํŠธ ๋ฐฉ๋ฌธ์ž๋“ค์—๊ฒŒ ๊ฐ„๋‹จํ•œ ํŒ์—…์„ ๋„์›Œ์„œ ์„ค์น˜์œ ๋„ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ›จ์”ฌ ์ ์€ ๋งˆ์ผ€ํŒ… ๋น„์šฉ โœ๏ธ PWA ๋ฐœํ–‰ํ•˜๋Š” ๋ฒ• - ๊ทธ๋ƒฅ ์•„๋ฌด ์‚ฌ์ดํŠธ๋‚˜ ํŒŒ์ผ 2๊ฐœ๋งŒ ์‚ฌ์ดํŠธ ๋กœ์ปฌ ๊ฒฝ๋กœ์— ..

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part10 - ์„ฑ๋Šฅ๊ฐœ์„  2: memo, useMemo, useTransition, useDeferredValue

โœ๏ธ memo()๋กœ ์ปดํฌ๋„ŒํŠธ ๋ถˆํ•„์š”ํ•œ ์žฌ๋ Œ๋”๋ง ๋ง‰๊ธฐ - memo() ์“ฐ๋ ค๋ฉด 'react' ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋ถ€ํ„ฐ import ํ•ด์˜ค๋ฉด ๋œ๋‹ค. import {memo, useState} from 'react' // memo๋ฅผ import let Child = memo( function(){ // ์›ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ •์˜ ๋ถ€๋ถ„ ๊ฐ์‹ธ๊ธฐ console.log('์žฌ๋ Œ๋”๋ง๋จ') return ์ž์‹์ž„ }) function Cart(){ let [count, setCount] = useState(0) return ( { setCount(count+1) }}> + ) } - ์ปดํฌ๋„ŒํŠธ๋ฅผ let ์ปดํฌ๋„ŒํŠธ๋ช… = function( ){ } ์ด๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ๊ฐ์Œ€ ์ˆ˜ ์žˆ๋‹ค. - ๊ทธ๋Ÿผ ์ด์ œ Child๋กœ ์ „์†ก๋˜๋Š” props๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿฐ ๊ฒฝ..

[์ฝ”๋”ฉ์• ํ”Œ] ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ Part9 - ์„ฑ๋Šฅ๊ฐœ์„  1: ๊ฐœ๋ฐœ์ž๋„๊ตฌ, lazy import

- props๋ฅผ ๋ณด๋ƒˆ๋Š”๋ฐ ์ถœ๋ ฅ์ด ์•ˆ๋œ๋‹ค๊ฑฐ๋‚˜, ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ์—ˆ๋Š๋ฐ ์•ˆ๋ณด์ด๋Š” ๋ฒ„๊ทธ๊ฐ™์€ ๊ฒŒ ์ƒ๊ธด๋‹ค๋ฉด - ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ผœ์„œ Elements ํƒญ ์‚ดํŽด๋ณด๋ฉด ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„  ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋ฅผ ์‹ค์ œ html css๋กœ ๋ณ€ํ™˜๋˜์–ด์„œ ๋ณด์—ฌ์ง„๋‹ค. - ๊ทธ๊ฒŒ ์‹ซ๊ณ  ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฏธ๋ฆฌ ๋ณด๊ณ  ์‹ถ์œผ๋ฉด ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ์ž๋„๊ตฌ๋ฅผ ์„ค์น˜ํ•ด์„œ ์ผœ๋ณด๋ฉด ๋œ๋‹ค. โœ๏ธ ํฌ๋กฌ ํ™•์žฅํ”„๋กœ๊ทธ๋žจ: React Developer Tools https://chrome.google.com/webstore/ Chrome ์›น ์Šคํ† ์–ด Chrome์— ์‚ฌ์šฉํ•  ์œ ์šฉํ•œ ์•ฑ, ๊ฒŒ์ž„, ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ํ…Œ๋งˆ๋ฅผ ์ฐพ์•„๋ณด์„ธ์š”. chrome.google.com - ํฌ๋กฌ ์›น์Šคํ† ์–ด ๋“ค์–ด๊ฐ€๋ฉด ํ™•์žฅํ”„๋กœ๊ทธ๋žจ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. - ์—ฌ๊ธฐ์„œ React developer Tools ์„ค์น˜ํ•˜๋ฉด Compoents ํƒญ์ด ์ƒ๊ธฐ..