๋ฆฌ์—‘ํŠธ

    [ReactJS] ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ์™€ Custom Hook

    ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ ๊ฐ๊ฐ์˜ ๊ด€์‹ฌ์‚ฌ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ• ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ๊ด€์‹ฌ์‚ฌ๋งŒ ์‹ ๊ฒฝ์“ฐ๋„๋ก ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ์˜ ํŠน์ง• ํŠน์ •ํ•œ ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ๊ณ  ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ์˜ ๋‹จ์œ„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด ์œ ์ง€ ๋ณด์ˆ˜์— ์šฉ์ดํ•ด์ง„๋‹ค. ํ•˜๋‚˜์˜ ์ฝ”๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹ดํ•˜๊ธฐ์— ์—ฌ๋Ÿฌ ์—ญํ• ์ด ํ˜ผ์žฌ๋œ ์ฝ”๋“œ๋ณด๋‹ค ๋‹จ์œ„๋ณ„๋กœ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ๋˜ํ•œ ์‰ฌ์›Œ์ง„๋‹ค. ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๊ฐ€ ์ž˜ ๋œ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์™€ ๋†’์€ ์‘์ง‘๋„๋ž€ ํŠน์ง•์ด ๋‚˜ํƒ€๋‚œ๋‹ค. ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„ (Loose Coupling) : ์ฝ”๋“œ๊ฐ€ ์–ฝํ˜€์žˆ์ง€ ์•Š๊ณ  ๊ด€์‹ฌ์‚ฌ์— ๋”ฐ๋ผ ๋…๋ฆฝ์ ์œผ๋กœ ์ž˜ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค. ๋†’์€ ์‘์ง‘๋„ (High Cohesive) : ๋™์ผํ•œ ๋ชฉ์ (๊ด€์‹ฌ์‚ฌ)๋ฅผ ๊ฐ€์ง„ ์ฝ”๋“œ๋ผ๋ฆฌ ์ž˜ ๋ชจ์—ฌ์žˆ๋‹ค. KISS ์›์น™ Keep It Simple, Stup..

    [ReactJS] Component์˜ ๋ถ„๋ฆฌ์™€ ์žฌ์‚ฌ์šฉ (๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ)

    ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ž€ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ผ๋ฆฌ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋ณ„๋œ '๊ฐœ๊ฐœ์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ถ€๋ถ„'์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋””์ž์ธ ์›์น™์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ ๋ณ„๋กœ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ํ™•์žฅ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ด์œ  React์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‹ค์–‘ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๋Š” UI๋ฅผ ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๊ณ , ๋˜ ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ๋Š” ๋™์ž‘ํ•˜๋Š” ๋กœ์ง์„ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค. ์œ„์˜ ๋‘ ์—ญํ• ์„ ๋ชจ๋‘ ๋‹ด๋Š” ์ปดํฌ๋„ŒํŠธ ๋˜ํ•œ ์กด์žฌํ•˜๊ณ , ํ•˜๋‚˜๋„ ๋‹ด์ง€ ์•Š๋Š” ์ปดํฌ๋„ŒํŠธ๋„ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์ปดํฌ๋„ŒํŠธ๋Š” ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ UI ๋‹จ์œ„์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์›น์˜ ๋ณต์žก๋„์™€ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์—ญํ• ์— ๋”ฐ๋ผ ์–ผ๋งˆ๋“ ์ง€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ '๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ'..

    [ReactJS] ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ & Mock Data + fetch ๋งค์†Œ๋“œ

    [ReactJS] ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ & Mock Data + fetch ๋งค์†Œ๋“œ

    ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋ž€? ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ React์—์„œ ๋ฐ์ดํ„ฐ๋Š” UI์ด๋‹ค. ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” ๋ณ€์ˆ˜ ๋ฐ์ดํ„ฐ๋กœ UI๋ฅผ ๋งŒ๋“ค ๋• ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ฉด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ๋กœ UI๋ฅผ ๋งŒ๋“ค ๋• ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ƒ์ˆ˜ ๋ฐ์ดํ„ฐ ํ™œ์šฉํ•˜๊ธฐ /* App.js */ import React from "react"; const MENU_LIST = [ { id: 1, menuName: "New Repository" }, { id: 2, menuName: "Import Repository" }, { id: 3, menuName: "New Gist" }, { id: 4, menuName: "New Organization" }, { id: 5, menuName: "New ..

    [ReactJS] Side Effect์™€ useEffect

    Side Effect๋ž€? Side Effect๋ž€ ๋ถ€์ž‘์šฉ์ด๋‹ค. ๋ถ€์ž‘์šฉ === ๋ถ€์ˆ˜ํšจ๊ณผ ๋ถ€์ˆ˜ํšจ๊ณผ : ์ฃผ์š”ํ•œ ํšจ๊ณผ์— ๋”ฐ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€์ˆ˜์ ์ธ ํšจ๊ณผ ๋ถ€์ž‘์šฉ์ด๋ž€ ์šฉ์–ด ์ž์ฒด๋Š” ๋ถ€์ •์ ์ธ ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์ง€ ๋ถ€์ˆ˜์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํšจ๊ณผ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋‹จ์–ด์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ Side Effect (๋ถ€์ž‘์šฉ) ๋ž€? ์ฝ”๋“œ๊ฐ€ ์˜๋„ํ•œ ์ฃผ๋œ ํšจ๊ณผ ์™ธ์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€์ˆ˜ ํšจ๊ณผ ํŠนํžˆ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ธ ํ•จ์ˆ˜์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด ํ•จ์ˆ˜์˜ ๋ณธ์งˆ์ ์ธ ์—ญํ•  (์ฃผ๋œ ํšจ๊ณผ) Input์„ ๋ฐ›์•„์„œ Output์„ ์‚ฐ์ถœํ•˜๋Š” ๊ฒƒ Input => Output ํ•จ์ˆ˜์˜ ๋ถ€์ž‘์šฉ (Side Effect) Input์„ ๋ฐ›์•„์„œ Output์„ ์‚ฐ์ถœํ•˜๋Š” ๊ฒƒ ์™ธ์˜ ๋ชจ๋“  ํ–‰์œ„ ํ•จ์ˆ˜์—์„œ ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ๊ฐ’์„ ์ฝ์–ด์˜ค๋Š” ํ–‰์œ„ ํ•จ์ˆ˜์—์„œ ํ•จ์ˆ˜ ์™ธ๋ถ€์˜ ๊ฐ’..

    [ReactJS] Hook & State & Props

    Hook์ด๋ž€? Hook์€ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๋™ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘” ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ์„ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Hook์ด๋ผ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค. Hook์˜ ๋ชจ์Œ์„ Hooks๋ผ ํ•œ๋‹ค. Hook์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๊ธฐ์กด์—” ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•˜์˜€๋Š”๋ฐ, ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ์žฅ์ ์œผ๋กœ ์ธํ•ด ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๋‹ˆ์ฆˆ๊ฐ€ ์ ์  ๋งŽ์•„์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์˜ ์žฅ์  : ์„ ์–ธํ•˜๊ธฐ ํŽธ๋ฆฌํ•จ, ์ง๊ด€์ , ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ๋œ ์‚ฌ์šฉํ•จ ์ด๋กœ ์ธํ•ด ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ๊ฐ€๋Šฅํ–ˆ๋˜ ๊ธฐ๋Šฅ์„ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ์‚ฌ์šฉํ•˜๊ณ ์ž Hook์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค. Hook์˜ ํŠน์ง• ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. Hook์˜ ์ด๋ฆ„..

    [ReactJS] SPA & Routing

    SPA & Routing SPA (Single Page Application) ์˜ ๊ฐœ๋… SPA๋Š” ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋‚˜์ธ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์˜๋ฏธํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ํŽ˜์ด์ง€๋ž€ html ํŒŒ์ผ์„ ๋œปํ•˜๊ธฐ ๋•Œ๋ฌธ์—, SPA๋Š” ์›น ์‚ฌ์ดํŠธ ์ „์ฒด์— HTML ํŒŒ์ผ์ด ํ•˜๋‚˜์ธ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค. MPA์™€ ๋‹ฌ๋ฆฌ, SPA๋Š” html์ด ํ•˜๋‚˜ ๋ฟ์ด๋ฏ€๋กœ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€(UI)๋ฅผ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์—์„œ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด Routing ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค. Routing์˜ ๊ฐœ๋… SPA์—์„œ ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ Routing์ด๋ผ ํ•œ๋‹ค. React ์ž์ฒด์—๋Š” Routing ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—, React-Router์ด๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. React-Router ์„ค์น˜ ๋ช…๋ น์–ด : npm install react-route..

    [ReactJS] JSX์™€ ์ปดํฌ๋„ŒํŠธ (Component)

    JSX JSX๋Š” JavaScript์˜ ๋ฌธ๋ฒ•์„ ํ™•์žฅํ•œ React๋งŒ์˜ ๋ฌธ๋ฒ•์œผ๋กœ, JavaScript ๋‚ด์—์„œ HTML ๋งˆํฌ์—…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด๋‹ค. ๋งˆํฌ์—…๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋กœ์ง์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์ด๋ฅผ ํ•œ ๋ฒˆ์— ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•œ ๊ฒฐ๊ณผ ์ƒ๊ฒจ๋‚œ ๋ฌธ๋ฒ•์ด๋‹ค. JavaScript ๋‚ด์—์„œ ๋งˆํฌ์—…์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , JS ๋กœ์ง๋„ ํ•จ๊ป˜ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. JavaScript ์ •์‹ ๋ฌธ๋ฒ•์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ Babel ๋ณ€์—ญ๊ธฐ๋กœ ์ด๋ฅผ React.createElement() ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋‹ค. JSX์˜ ํŠน์ง• JSX๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ฐ’์ด๋‹ค. ํŠน์ •ํ•œ ๋ณ€์ˆ˜์— ์ด ๊ฐ’์„ ๋‹ด์„ ์ˆ˜ ์žˆ๊ณ , ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. f..

    [ReactJS] React์˜ ํŠน์ง•๊ณผ Virtual DOM

    React์˜ ๋Œ€ํ‘œ์ ์ธ ํŠน์ง• 2๊ฐ€์ง€ ์„ ์–ธํ˜• (Declarative Programming) ๋ฆฌ์—‘ํŠธ๋Š” ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. ์ ˆ์ฐจ์  vs ์„ ์–ธ์  ์ ˆ์ฐจ์ (๋ช…๋ นํ˜•) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ(How)์— ์ค‘์ ์„ ๋‘๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ง์ ‘ DOM์„ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ์‹ ๋ชจ๋“  ๊ณผ์ •์„ ์ผ์ผ์ด ๊ธฐ์ˆ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ƒ์‚ฐ์„ฑ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค. ์„ ์–ธ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ฌด์—‡(What)์ธ์ง€ ์„ ์–ธํ•˜๋Š” ํ˜•ํƒœ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋Š” ๋ฐฉ์‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ DOM ์กฐ์ž‘์€ React์— ์œ„์ž„ ์ปดํ“จํ„ฐ๋Š” ์ ˆ์ฐจ์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ์— ๊ฒฐ๊ตญ ๋ชจ๋“  ๋ช…๋ น์„ ๋‹ค ์ ˆ์ฐจ์ ์œผ๋กœ ํ•ด์ฃผ์–ด์•ผ ํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋Š” (์ตœ๋Œ€ํ•œ ์ ˆ์ฐจ์ ์ธ ๋ถ€๋ถ„์€ ๊ฐ์ถ”๊ฐ€๋‚˜ ์œ„์ž„ํ•˜๊ณ ) ์„ ์–ธ์ ์ธ ๋ถ€๋ถ„์—๋งŒ ์ง‘์ค‘ํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹์ด ์„ ์–ธ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์ด๋‹ค. ์ปดํฌ๋„ŒํŠธ..

    [ReactJS] React JS ์†Œ๊ฐœ ๋ฐ ์„ค์น˜

    [ReactJS] React JS ์†Œ๊ฐœ ๋ฐ ์„ค์น˜

    React JS์˜ ๊ฐœ๋…๊ณผ ํƒ„์ƒ ๋ฐฐ๊ฒฝ React ํƒ„์ƒ ๋ฐฐ๊ฒฝ ์›น ์• ํ”Œ๋ฆฌ์บ์ด์…˜์ด ๋“ฑ์žฅํ•จ์— ๋”ฐ๋ผ ์›น ๊ฐœ๋ฐœ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์‘์šฉ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์›น ์„œ๋น„์Šค ์ด์— ๋”ฐ๋ผ DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜๋Š” (Vanila JS, jQuery๋ฅผ ์ด์šฉํ•˜๋Š”) ๊ธฐ์กด์˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํ•œ๊ณ„๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์˜ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ๊ณผ ๋‚œ์ด๋„ ํ•˜ํ–ฅ์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํƒ„์ƒํ•˜์˜€๋‹ค. ์ด ์ค‘ ํ˜„์žฌ ์ œ์ผ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์€, React, Angular, Vue์ด๋‹ค. React JS๋ž€? React JS (ํ˜น์€ React)๋Š” UI๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด interactiveํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ (Framework) ์ด์ž ..

    ์ฝ”๋“œ์ˆจ(CodeSoom) ๋ฆฌ์—‘ํŠธ 11๊ธฐ ๋งˆ์ง€๋ง‰ ํšŒ๊ณ  ๋ฐ ํ›„๊ธฐ.. (๋ถ€์ œ : ๋‚˜๋Š” ์‹คํŒจํ–ˆ๋‹ค)

    ๋ฌด๊ฑฐ์šด ๋งˆ์Œ์„ ๊ฐ–๊ณ  ๋งˆ์ง€๋ง‰ ์ฝ”๋“œ์ˆจ ํšŒ๊ณ ๋ฅผ ์จ๋ณด๋ ค ํ•œ๋‹ค.๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด.. ๋‚˜๋Š” 6์ฃผ์ฐจ์˜ ๋ฒฝ์„ ๋„˜๊ธฐ์ง€ ๋ชปํ•˜๊ณ  ํฌ๊ธฐํ–ˆ๋‹ค. ์‚ฌ์‹ค ํฌ๊ธฐํ–ˆ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๋งŽ์ด ๋ถ€๋„๋Ÿฝ๊ณ  ์ฐฝํ”ผํ•ด์„œ ๊ทธ๋™์•ˆ ํšŒ๊ณ ๋ฅผ ์‰ฝ๊ฒŒ ์“ฐ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.๊ทธ๋Ÿฌ๋‹ค ์ฝ”๋“œ์ˆจ ๋ฆฌ์—‘ํŠธ ๋™๊ธฐ ๋ถ„๋“ค ์ค‘ ๊นƒํ—ˆ๋ธŒ์—์„œ ๋‚˜๋ฅผ ํŒ”๋กœ์šฐํ•˜์‹  ํ•œ ๋ถ„์ด ์–ผ๋งˆ ์ „ ์–ธํŒ”ํ•˜์‹  ๊ฒƒ์„ ๋ณด๊ณ ๋น„๋ก ์ฐฝํ”ผํ•˜์ง€๋งŒ ๋„๋ง์น˜์ง€ ๋ง๊ณ  ์ด๋ ‡๊ฒŒ ํ›„๊ธฐ๋ฅผ ์ ๊ณ  ๊ณต์œ ํ•˜๋Š” ๊ฒƒ์ด์ฝ”๋“œ์ˆจ์—์„œ ๋‚˜๋ฅผ ์ง€์ผœ๋ด ์˜ค์‹  (์–ธ์  ๊ฐ€ ์–ด๋””์—์„œ ๋˜ ์–ด๋–ป๊ฒŒ ๋ต™์ง€ ๋ชจ๋ฅผ) ์—ฌ๋Ÿฟ ๋ถ„๋“ค์—๊ฒŒ๋„๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ ์‹คํŒจ๋ฅผ ์ˆ˜์น˜๋งŒ์ด ์•„๋‹Œ ์„ฑ์žฅ์˜ ๋ฐœํŒ์œผ๋กœ ์‚ผ๊ณ  ์‹ถ์€ ๋‚˜ ์ž์‹ ์—๊ฒŒ๋„์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์–ด๋ ต๊ฒŒ ๊ธ€์„ ์“ด๋‹ค.  ๋‚˜๋Š” ์›น ๊ฐœ๋ฐœ์— ๊ด€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์ด ๋งŽ์ด ๋ถ€์กฑํ•œ ์ƒํƒœ์˜€์ง€๋งŒ ๊ฐ•ํ•œ ์—ด์ •์„ ๊ฐ–๊ณ  ์ฝ”๋“œ์ˆจ์„ ์‹ ์ฒญํ–ˆ๋‹ค.๋ฌผ๋ก  1์ฃผ์ฐจ๋ถ€ํ„ฐ ๋งค ์ˆœ๊ฐ„์ด ๊ณ ๋น„์˜ ์—ฐ์†์ด์—ˆ..