Frontend ๐Ÿ“š/React 23

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ VI - SPA, SSR, SEO etc.

1. SPA2. SSR3. SEO1. SPA๋ž€ โญ๏ธSPASingle Page Application์˜ ์•ฝ์–ด๋กœ, ํ•œ ๊ฐœ์˜ ํŽ˜์ด์ง€๋กœ ์ด๋ฃจ์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ผ๋Š” ์˜๋ฏธ์ „ํ†ต์ ์ธ ์›น ํŽ˜์ด์ง€๋Š” ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด html์„ ๋ฐ›์•„ ์˜ค๊ณ , ํŽ˜์ด์ง€๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ํ•ด์„ํ•œ ๋’ค ํ™”๋ฉด์— ๋ณด์—ฌ์คŒ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ํ™”๋ฉด์€ ์„œ๋ฒ„ ์ธก์—์„œ ์ค€๋น„ํ–ˆ๋‹จ ๋ง์”€! ์‚ฌ์ „์— html ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์œ ๋™์ ์ธ html์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ์Œํ•˜์ง€๋งŒ!! ์š”์ฆ˜์—” ์›น์—์„œ ์ œ๊ณต๋˜๋Š” ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ๋ณด์—ฌ ์ฃผ์–ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„ ์ธก์—์„œ ๋ชจ๋“  ๋ทฐ๋ฅผ ์ค€๋น„ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์—„์ฒญ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Œ(ํŠธ๋ž˜ํ”ฝ์ด ๋„ˆ๋ฌด ๋งŽ์ด ๋‚˜์˜จ๋‹ค๊ฑฐ๋‚˜,..

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ V - useLayoutEffect, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง etc.

1. useLayoutEffect2. ์ปดํฌ๋„ŒํŠธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง1. useLayoutEffect ์ด๋ž€ โญ๏ธ๋ฆฌ์•กํŠธ ํ›… ํ•จ์ˆ˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Œ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ Œ๋”๋ง๋  ๋•Œ .jsํŒŒ์ผ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์œผ๋กœ ๊ถŒํ•œ์„ ๋„˜๊ฒจ .js ํ•ด๋‹น ํŒŒ์ผ์„ ํŒŒ์‹ฑํ•˜๊ณ  ๊ทธ๋ฆฌ๊ฒŒ ๋จ์œ„ ๊ทธ๋ฆผ์˜ ํ›… ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๋ณด๋‹ค์‹œํ”ผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์Šคํฌ๋ฆฐ์— ํŽ˜์ธํŒ… ์ž‘์—…์ด ์™„๋ฃŒ๋œ ์ดํ›„ useEffect๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์กŒ์Œ๋”ฐ๋ผ์„œ ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ Œ๋”๋งํ•  ๋•Œ useState(0)๊ณผ ๊ฐ™์€ ์ดˆ๊ธฐ useState์˜ ๊ฐ’์ด ๋นˆ ๊ฐ’์ด๋ผ๋ฉด, 0์„ ์ถœ๋ ฅํ–ˆ๋‹ค๊ฐ€ useEffect๋ฅผ ํ†ตํ•ด ์ฑ„์›Œ์ง€๋Š” ๊ตฌ์กฐ๋ฅผ ๋”// ์ฝ”๋“œ ์ฐธ๊ณ : https://merrily-code.tistory.com/46import { useEffect, useState } from..

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ IV - ์ปดํฌ๋„ŒํŠธ ๋ผ์ดํ”„ ์‚ฌ์ดํด, Hooks etc.

1. ์ปดํฌ๋„ŒํŠธ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๋ฉ”์„œ๋“œ2. Hooks์˜ ์ข…๋ฅ˜3. useMemo vs. useCallBack4. setState๋Š” ๋น„๋™๊ธฐ1. ์ปดํฌ๋„ŒํŠธ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๋ฉ”์„œ๋“œ โญ๏ธโญ๏ธ- will~ ๋ฉ”์„œ๋“œ: ์–ด๋–ค ์ž‘์—…์„ ์ž‘๋™ํ•˜๊ธฐ ์ „์— ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ- Did~ ๋ฉ”์„œ๋“œ: ์–ด๋–ค ์ž‘์—…์„ ์ž‘๋™ํ•œ ํ›„์— ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฉ”์„œ๋“œ๋Š” ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค์—์„œ ๋ฎ์–ด ์จ ์„ ์–ธํ•จ์œผ๋กœ์จ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ๋ผ์ดํ”„์‚ฌ์ดํด์€ ์ด ์„ธ ๊ฐ€์ง€, ์ฆ‰ ๋งˆ์šดํŠธ, ์—…๋ฐ์ดํŠธ, ์–ธ๋งˆ์šดํŠธ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆ”๋งˆ์šดํŠธ โญ๏ธDOM์ด ์ƒ์„ฑ๋˜๊ณ  ์›น ๋ธŒ๋ผ์šฐ์ €์ƒ์— ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋งˆ์šดํŠธ๋ผ๊ณ  ํ•จcomponentDidMount: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์ƒ์— ๋‚˜ํƒ€๋‚œ ํ›„ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ์—…๋ฐ์ดํŠธ โญ๏ธ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„ค ๊ฐ€์ง€ ๊ฒฝ์šฐ ์—…๋ฐ์ดํŠธProps๊ฐ€ ๋ฐ”๋€” ๋•Œstate๊ฐ€ ๋ฐ”๋€” ๋•Œ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ..

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ III - FLUX, ๋ฆฌ๋•์Šค, state ๋ถˆ๋ณ€์„ฑ, ๋ฆฌ๋“€์„œ ๋ถˆ๋ณ€์„ฑ, side effect etc.

1. FLUX๋ž€2. ๋ฆฌ๋•์Šค๋ž€3. React์—์„œ state ๋ถˆ๋ณ€์„ฑ4. ๋ฆฌ๋“€์„œ ๋‚ด๋ถ€์˜ ๋ถˆ๋ณ€์„ฑ๊ณผ ...์—ฐ์‚ฐ์ž์˜ ๋‹จ์  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•5. side effect ๋ฌธ์ œ์ 1. FLUX ๋ž€ โญ๏ธโญ๏ธFLUX๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ž„MVC ํŒจํ„ด์—์„œ ์Œ๋ฐฉํ–ฅ์ ์ธ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ•์กฐํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ FLUX ํŒจํ„ด์—์„œ๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๊ฐ•์กฐํ•จMVC ํŒจํ„ด์‚ฌ์šฉ์ž์˜ ์–ด๋– ํ•œ ํ–‰์œ„(์•ก์…˜)๊ฐ€ ์žˆ์„ ๋•Œ, ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„๋œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์„ ๋ณ€ํ™”ํ•˜๊ณ  ์ด๋ฅผ ๋ทฐ์— ๋ฐ˜์˜ํ•จ๋ณด์—ฌ์ ธ์•ผ ํ•  ๋ทฐ๊ฐ€ ์ ๊ฑฐ๋‚˜, ๋ณ€๊ฒฝ๋  ๋ชจ๋ธ์ด ๋งŽ์ง€ ์•Š๋‹ค๋ฉด ๋งค์šฐ ํšจ์œจ์ ์ธ ๊ตฌ์กฐ์ž„ํ•˜์ง€๋งŒ, ๋ชจ๋ธ๊ณผ ๋ทฐ๊ฐ€ ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ๋‹ค๋ฉด ์–ด๋–ค ๋ชจ๋ธ์ด ๋ณ€ํ™”๋˜์–ด ๋ทฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ์ œ๋Œ€๋กœ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น€FLUX ํŒจํ„ดMVC ํŒจํ„ด์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ๋‹จ๋ฐฉํ–ฅ ..

[React] ๋ฆฌ์•กํŠธ ๊ธฐ์ˆ  ๋ฉด์ ‘ ํ•ธ๋“œ๋ถ II - ํ•จ์ˆ˜ ์ปจํฌ๋„ŒํŠธ, props, state etc.

1. React์—์„œ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ ์ฐจ์ด2. props์™€ state์˜ ์ฐจ์ด1. React์—์„œ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์™€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ ์ฐจ์ด โญ๏ธํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋„๊ณ  ์žˆ์œผ๋ฉฐ, state๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด constructor(์ƒ์„ฑ์ž) ํ•จ์ˆ˜๋ฅผ ํ•„์š”๋กœ ํ•จ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด state๋ฅผ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์— ๋น„ํ•ด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ณ , ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Œstate ๊ธฐ๋Šฅ ๋ฐ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ž„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Œrender ํ•จ์ˆ˜๊ฐ€ ๊ผญ ์žˆ์–ด์•ผ ํ•˜๊ณ , ๊ทธ ์•ˆ์—์„œ ๋ณด์—ฌ ์ฃผ์–ด์•ผ ํ•  JSX๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•จํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ์šฐHooks๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด state๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ(useState() ๋“ฑ)์„ ์–ธ..