๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Lect & Tip146

REACT ๋ชจ๋‹ฌ, ํ† ์ŠคํŠธ, ๋“œ๋กœ์–ด ๋“ฑ ํŒ์—… ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„ REACT ๋ชจ๋‹ฌ, ํ† ์ŠคํŠธ, ๋“œ๋กœ์–ด ๋“ฑ ํŒ์—… ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํŒ์—… ์š”์†Œ๋Š” ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐœ์„ ํ•˜๊ณ  ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ฌ, ํ† ์ŠคํŠธ, ๋“œ๋กœ์–ด ๋“ฑ์˜ ํŒ์—… ์ปดํฌ๋„ŒํŠธ๋Š” ํ™”๋ฉด ๋‚ด์—์„œ ์ฃผ์˜๋ฅผ ์ง‘์ค‘์‹œํ‚ค๊ฑฐ๋‚˜ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ๋งŽ์ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํŒ์—… ์ปดํฌ๋„ŒํŠธ์˜ ๋””์ž์ธ ์›์น™๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ์ ‘๊ทผ์„ฑ ๊ณ ๋ ค์‚ฌํ•ญ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ํŒ์—… ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์ค‘์š”์„ฑํŒ์—… ์ปดํฌ๋„ŒํŠธ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์—์„œ ๋ณ„๋„์˜ ์˜ค๋ฒ„๋ ˆ์ด ์ฐฝ์œผ๋กœ ๋‚˜ํƒ€๋‚˜, ์ค‘์š”ํ•œ ๋ฉ”์‹œ์ง€, ํ”ผ๋“œ๋ฐฑ, ์˜ต์…˜ ๋˜๋Š” ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค.๋ชจ๋‹ฌ(Modal): ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋‹ฌ ์ฐฝ์„ ๋‹ซ๊ธฐ ์ „๊นŒ์ง€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋Š” ํŒ์—… ์š”์†Œ๋กœ,.. 2025. 6. 13.
D3.js, Chart.js ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋ฆฌ์•กํŠธ ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ D3.js, Chart.js ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋ฆฌ์•กํŠธ ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ๋‚˜ ํ‘œ ํ˜•ํƒœ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ, ์‹œ๊ฐ์  ์š”์†Œ๋ฅผ ํ†ตํ•ด ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด D3.js, Chart.js ๋“ฑ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฆฌ์•กํŠธ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ, ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํŠน์ง•, ๋ฆฌ์•กํŠธ์™€์˜ ๊ฒฐํ•ฉ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ์ฐจํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์ „๋žต์„ ์ƒ์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ์š”๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ฐ๊ธฐ ์žฅ๋‹จ์ ๊ณผ ํ™œ์šฉ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ.. 2025. 6. 9.
์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)๊ณผ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ์ตœ์ ํ™” ์ „๋žต ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)๊ณผ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ์ตœ์ ํ™” ์ „๋žตํ˜„๋Œ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„์™€ ๊ฒ€์ƒ‰ ์—”์ง„ ์ตœ์ ํ™”(SEO)๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ ๋ถ€๊ฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ฆฌ์•กํŠธ ๊ธฐ๋ฐ˜์˜ SPA(Single Page Application)๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(CSR)์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ ๋นˆ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ์—”์ง„ ํฌ๋กค๋Ÿฌ๊ฐ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๋Œ€๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Next.js์™€ ๊ฐ™์€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR) ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด, ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ HTML์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋น ๋ฅธ ์ดˆ๊ธฐ ๋ Œ๋”๋ง๊ณผ SEO ์ตœ์ ํ™”๋ฅผ ๋™์‹œ์— ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.SSR์˜ ๊ฐœ๋…๊ณผ ํ•„์š”์„ฑ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์€ ์‚ฌ์šฉ์ž๊ฐ€ ์›น.. 2025. 6. 5.
๋ฆฌ์•กํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•œ ์•ˆ์ •์ ์ธ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ๋ฆฌ์•กํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•œ ์•ˆ์ •์ ์ธ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ๋ฆฌ์•กํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ์กฐํ•ฉ์€ ์ตœ๊ทผ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” ์„ ํƒ์ง€ ์ค‘ ํ•˜๋‚˜๋กœ ์ž๋ฆฌ์žก์•˜์Šต๋‹ˆ๋‹ค. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ •์  ํƒ€์ž… ์ฒดํ‚น๊ณผ ๊ฐ•๋ ฅํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ์‚ฌ์ „์— ์˜ˆ๋ฐฉํ•˜๊ณ , ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ์˜ ์ด์ , ์‹ค์ œ ์‚ฌ๋ก€์™€ ์ฝ”๋“œ ์ƒ˜ํ”Œ, ๊ทธ๋ฆฌ๊ณ  ์•ˆ์ •์ ์ธ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚œ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์  ํƒ€์ดํ•‘ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ๋Ÿฐํƒ€์ž„ ์‹œ์ ์—์„œ ํƒ€์ž… ๊ด€๋ จ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  .. 2025. 6. 2.
useState์™€ useEffect, ๋ฆฌ์•กํŠธ Hooks๋ฅผ ํ™œ์šฉํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ useState์™€ useEffect, ๋ฆฌ์•กํŠธ Hooks๋ฅผ ํ™œ์šฉํ•œ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„๋ฆฌ์•กํŠธ 16.8 ๋ฒ„์ „ ์ดํ›„ ๋“ฑ์žฅํ•œ Hooks๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ, ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” useState, useEffect, useContext ๋“ฑ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ๋‹ค์–‘ํ•œ ํ›…๋“ค์„ ํ™œ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋กœ์ง ๋ถ„๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ , ์ปค์Šคํ…€ ํ›… ์ œ์ž‘ ์‚ฌ๋ก€๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ์ „๋žต์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.๋ฆฌ์•กํŠธ Hooks์˜ ๊ธฐ๋ณธ ์›๋ฆฌ์™€ ์žฅ์ ๋ฆฌ์•กํŠธ Hooks๋Š” ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ ํด๋ž˜์Šคํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ(์ƒํƒœ ๊ด€๋ฆฌ, ๋ผ์ดํ”„์‚ฌ์ดํด ๋ฉ”์„œ๋“œ ๋Œ€์ฒด)์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ.. 2025. 5. 30.
๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ์ปดํฌ์ง€์…˜ ํŒจํ„ด ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ์ปดํฌ์ง€์…˜ ํŒจํ„ด๋ฆฌ์•กํŠธ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์˜ UI ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๋ชจ๋“ˆํ™”์™€ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋‹จ์ˆœํžˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒจํ„ด์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ ์ปดํฌ์ง€์…˜, ๊ณ ์ฐจ ์ปดํฌ๋„ŒํŠธ(HOC), ๋ Œ๋” ํ”„๋กœํ”„(Render Prop) ๋“ฑ ๋‹ค์–‘ํ•œ ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์‹ฌ๋„ ์žˆ๊ฒŒ ๋…ผ์˜ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.์ปดํฌ๋„ŒํŠธ ์ปดํฌ์ง€์…˜์˜ ๊ฐœ๋…๊ณผ ์žฅ์ ์ปดํฌ๋„ŒํŠธ ์ปดํฌ์ง€์…˜์€ ๋ฆฌ์•กํŠธ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„ ์ฒ ํ•™ ์ค‘ ํ•˜๋‚˜๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ๋ณต์žกํ•œ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๋‹ค.. 2025. 5. 27.