๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กStudy/React (18)

JiYoung Dev ๐Ÿ–ฅ

[React] ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ (2023.05.26)

๐ŸŽˆ ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ ๐Ÿ“– ๊ฒŒ์ž„๊ทœ์น™ 1. ๋‚˜๋Š” ๊ณต๊ฒฉ, ์ปดํ“จํ„ฐ๋Š” ์ˆ˜๋น„ ๋‹ด๋‹น 2. ๋‚ด๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๊ฐ™๋‹ค๋ฉด ๋‚˜(๊ณต๊ฒฉ)์˜ ์Šน๋ฆฌ 3. ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ปดํ“จํ„ฐ(์ˆ˜๋น„)์˜ ์Šน๋ฆฌ ๐Ÿ“– ์ž‘์„ฑ์ฝ”๋“œ import React, { useState, useEffect } from "react"; const Ex03 = () => { /** * ์ฐธ์ฐธ์ฐธ ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด์ž! * ๊ฒŒ์ž„ ๊ทœ์น™ * 1. ๋‚˜๋Š” ๊ณต๊ฒฉ, ์ปดํ“จํ„ฐ๋Š” ์ˆ˜๋น„๋ฅผ ๋‹ด๋‹น * 2. ๋‚ด๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๊ฐ™๋‹ค๋ฉด ๋‚˜(๊ณต๊ฒฉ)์˜ ์Šน๋ฆฌ * 3. ๋‚˜์™€ ์ปดํ“จํ„ฐ์˜ ์„ ํƒ์ด ๋‹ค๋ฅด๋‹ค๋ฉด ์ปดํ“จํ„ฐ(์ˆ˜๋น„)์˜ ์Šน๋ฆฌ * * ๋ฌธ์ œํ’€์ด * 1. ํ•„์š”ํ•œ state๋“ค์„ ๊ด€๋ฆฌ : ๋‚ด์„ ํƒ, ์ปดํ“จํ„ฐ์„ ํƒ, ๊ฒŒ์ž„๊ฒฐ๊ณผ * >> useState * 2. ๋‚ด ์„ ..

Study/React 2023. 5. 29. 16:45
[React] Lifecycle (2023.05.24)

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

Study/React 2023. 5. 24. 17:50
[React] useRef (2023.05.24)

useRef ๐ŸŽˆ useRef ์˜ˆ์ œ ์ž‘๊ฒŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ฒŒ, ์›๋ณธ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์›๋ณธ ํฌ๊ธฐ๋กœ, ํฌ๊ฒŒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๊ฒŒ ๋ณ€ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ์œ„ํ•ด ์‚ฌ๊ฐํ˜• ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ document์— ์ ‘๊ทผํ•ด์•ผ ํ–ˆ์Œ ์‚ฌ๊ฐํ˜• ์š”์†Œ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ id๊ฐ€ box์ธ ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ : document.getElementById('box").style.width= 100px ๐Ÿ“– ๋ฆฌ์•กํŠธ์—์„œ ๋ณ€๊ฒฝ์‹œํ‚ค๋ ค๋ฉด? DOM์œผ๋กœ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ‘๊ทผํ•ด์•ผํ•จ useRef ์‚ฌ์šฉ usdRef : ํŠน์ • DOM ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ - ๋ฐ”๋‹๋ผJS์—์„œ๋Š” getElementById, querySelector ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • DOM ์š”์†Œ์— ์ ‘๊ทผํ•˜์˜€์Œ - React..

Study/React 2023. 5. 24. 16:13
[React] To-do List ๋งŒ๋“ค๊ธฐ (2023.05.23)

๐ŸŽˆ ๊ตฌ์„ฑํ•˜๊ธฐ ๐Ÿ“– ์ปดํฌ๋„ŒํŠธ 1. TodoList 2. TodoItem 3. TodoInput ๐Ÿ“– ์ปจํ…์ŠคํŠธ - TodoContext ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฐ’ 1. todos : ๋‚ด์šฉ, ์™„๋ฃŒ์—ฌ๋ถ€ (๊ฐ์ฒด๋กœ ์ €์žฅ) 2. newTodo : ๋‚ด์šฉ ๐ŸŽˆ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ (์ˆœ์„œ) 1) ํ™”๋ฉด์— ์ฒซ Todo ๋ณด์ด๊ฒŒ ํ•˜๊ธฐ ์ปดํฌ๋„ŒํŠธ ์—ฐ๊ฒฐ ์ปจํ…์ŠคํŠธ ์—ฐ๊ฒฐ ์ปจํ…์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•  ๊ฐ’ state๋กœ ์ €์žฅ ํ›„ ์ดˆ๊นƒ๊ฐ’ ์ง€์ •ํ•˜์—ฌ ์ถœ๋ ฅ๋˜๋„๋ก 2) ์ž…๋ ฅ์ฐฝ์— ๊ธ€์”จ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด newTodo์— ์ €์žฅ handleNewTodo() 3) Add ๋ฒ„ํŠผํด๋ฆญ์‹œ Todos์— newTodo ๊ฐ์ฒด ์ถ”๊ฐ€, input ํ…์ŠคํŠธ ์ฐฝ ๊ณต๋ฐฑ์œผ๋กœ addNewTodo() 4) add ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์ถ”๊ฐ€๋œ ๊ฐ์ฒด ํ™”๋ฉด์— ๋„์šฐ๊ธฐ addNewTodo() 5) delete ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ๋ฆฌ์ŠคํŠธ ์‚ญ์ œ d..

Study/React 2023. 5. 24. 00:25
[React] context API (2023.05.22)

๐ŸŽˆ context API ์“ฐ๋Š” ์ด์œ  ๐Ÿ“– props์˜ ๋‹จ์  ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„ ์œ„์™€ ๊ฐ™์€ ๋ฐ์ดํŠธ ํ๋ฆ„์„ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„ (one-way reactive data flow)์ด๋ผํ•˜๊ณ  react๋Š” ์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์žฅ์  1. ๊ด€๋ฆฌ์— ์šฉ์ดํ•จ 2. DOM๊ณผ์˜ ๊ถํ•ฉ - tree๊ตฌ์กฐ์˜ dom ๊ตฌ์กฐ์— ์œ ๋ฆฌํ•จ ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ๋‹จ์  ์ž์‹์š”์†Œ์—์„œ ๋ถ€๋ชจ์š”์†Œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Œ โš™๏ธ ๋ถ€๋ชจ์š”์†Œ๊ฐ€ ์ž์‹์š”์†Œ์˜ ๊ฐ’์„ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ท€์ฐฎ๋‹ค >> contextAPI๋ฅผ ์‚ฌ์šฉํ•จ ๐ŸŽˆ context API ๐Ÿ“– context API ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  props๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉํ•ด์•ผ ํ•จ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋ณด๊ด€ํ•˜์—ฌ ๋Œ์–ด๋‹ค ์“ฐ๋Š” ๋ฒ• >> Context API ์žฅ์  : ์ „์—ญ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜..

Study/React 2023. 5. 22. 19:53
[React] React ๋ณต์Šต (๊ฐœ๋… ~ context API๊นŒ์ง€) (2023.05.22)

์ง€๋‚œ์ฃผ๋ถ€ํ„ฐ ๋ฆฌ์•กํŠธ๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๊ตฌ์กฐ์™€ ๋ฌธ๋ฒ•, ์“ฐ๋Š” ์ด์œ ์— ๋Œ€ํ•˜์—ฌ ์ดํ•ด๊ฐ€ ์•ˆ๋˜์–ด ๋”ฐ๋กœ ์ •๋ฆฌํ•œ ๋‚ด์šฉ! 1. ๋ฆฌ์•กํŠธ(React)๋ž€? ๋ฆฌ์•กํŠธ๋ž€, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ meta(๊ตฌ facebook)์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฃผ๋กœ SPA(Single Page Application)์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ React๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ 1-1. ๊ธฐ์กด ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์˜ ๋‹จ์  1) HTML๊ณผ JS๊ฐ€ ๊ฐ€์ง„ ๋ถ„๋ฆฌ๊ฐ & ์ง๊ด€์ ์ด์ง€๋งŒ ๋„ˆ๋ฌด ๊ธด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ HTML ์š”์†Œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” document.getElementById ๋“ฑ ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ธด ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ†ตํ•ด ์š”์†Œ๋ฅผ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์žˆ์Œ ๋ฆฌ์•กํŠธ๋Š” HTML๊ณผ JS ๋ฌธ์„œ๋ฅผ ํ•ฉ..

Study/React 2023. 5. 22. 19:48
[React] Component, Props, State (2023.05.16)

terminal ๋ช…๋ น์–ด npm : ์ด๋ฏธ ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์„ ์•„์ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ (ex. terminal start) npx : ์„ค์น˜๊ฐ€ ๋˜์–ด์žˆ์ง€์•Š๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ (ex. npx create-react-app project02) ์ข…๋ฃŒ : ctrl + C โš™ project ํด๋” ๊ตฌ์„ฑ node_modules : ํ•„์š”ํ•œ ์žฅ์น˜๋“ค public : ์ •์ ์ธ ํŒŒ์ผ / ์ด๋ฏธ์ง€, html, json, text ๋“ฑ src : js, css ๋“ฑ ๋™์ ์œผ๋กœ ๋™์ ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์นœ๊ตฌ๋“ค ๐ŸŽˆ ์ปดํฌ๋„ŒํŠธ ๋ฆฌ์•กํŠธ๋Š” ํ™”๋ฉด์—์„œ UI ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•  ๋•Œ '์ปดํฌ๋„ŒํŠธ'๋ผ๋Š” ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉํ•จ ์ปค๋‹ค๋ž€ ๋‹จ์œ„, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋‹จ์œ„ (๊ธฐ๋Šฅ๋ณ„ ํ˜น์€ ํŽ˜์ด์ง€๋ณ„๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ) ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํƒœ๊ทธ๋“ค์„ ๋ชจ์•„์„œ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. react ๋ฌธ๋ฒ•..

Study/React 2023. 5. 16. 18:04
[React] React ๊ฐœ์š” ๋ฐ ์„ค์น˜, JSX ๋ฌธ๋ฒ• (2023.05.15)

๐ŸŽˆ ๋ฆฌ์•กํŠธ๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์ ์ธ ์„ฑ๊ฒฉ์„ ๋„๊ณ  ์žˆ์Œ ๐ŸŽˆ ๋ฆฌ์•กํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•˜๋‹ˆ๊นŒ! ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋‹จ์  1. HTML๊ณผ JS๊ฐ€ ๊ฐ€์ง„ ๋ถ„๋ฆฌ๊ฐ - JS์—์„œ HTML์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” document. ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ•จ > ๊ด€๋ จ์žˆ๋Š” HTML, JS ๋ฌธ์„œ๋“ค์„ JSX๋กœ ํ•ฉ์ณ์คŒ! 2. ์ง๊ด€์ ์ด์ง€๋งŒ ๋„ˆ๋ฌด ๊ธด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ• 3. ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ๋“ค์–ด๊ฐˆ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ๊ณ ์นจ - ์‚ฌ์šฉ์ž๊ฐ€ ํ”ผ๋กœ๋„๋ฅผ ๋Š๋ผ๊ฒŒ ๋จ > ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋‚˜ ๋ฉ”๋‰ด๋ฅผ ๋“ค์–ด๊ฐˆ๋–„ ์ƒˆ๋กœ๊ณ ์นจ์ด ๋˜์ง€ ์•Š์•„ ์‚ฌ์šฉ์ž์˜ ํ”ผ๋กœ๋„๋ฅผ ์ค„์—ฌ์คŒ : Single Page Application(SPA) ๐ŸŽˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ vs ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ์„ ๋„์™€์ฃผ๋Š” ์—ญํ• ์ด์ง€๋งŒ ๊ฐœ๋ฐœ์˜ ์ฃผ์ฒด๊ฐ€ ๋‹ค๋ฆ„ ๐Ÿ“– ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ๋ฐœ์˜ ์ฃผ์ฒด๋Š” ๋‚˜! ๊ธฐ๋Šฅ๋งŒ ๊ฐ€์ ธ๋‹ค ์‚ฌ..

Study/React 2023. 5. 16. 01:53